Commit Graph
1311327 Commits
Author SHA1 Message Date
Aaron Klingandtmakin 52dedf079c arm64: tegra: Add Tegra210B01 support
Also known as Tegra X1+, the Tegra210B01 has higher CPU and GPU clocks
than the original Tegra210.

Add a SoC-level device tree file that describes most of the hardware
available on the SoC. This is derived from the Tegra210 dtsi, as they
share a lot.

Co-authored-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:04 +00:00
Aaron Kling e8eeb3dd61 arm64: tegra: Add BPMP node for Tegra210
The Tegra210 soc supports bpmp offload for power management among other
things. This was considered insecure partway through the soc's lifecycle
and support was removed in the bootloader. However, Tegra210B01 returned
to using the bpmp. Plus old bootloaders on the original Tegra210 still
work with the existing driver. So add the node to the common Tegra210
soc dtsi, but disabled by default.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:04 +00:00
tmakin 99c38e06b6 memory: tegra186-emc: support Tegra210B01
Tegra210B01 uses Tegra186 style emc management, as in it is
offloaded to BPMP. This driver already implements this, so no
reason to shoehorn in elsewhere.

Signed-off-by: Thomas Makin <halorocker89@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Klingandtmakin d5fb30731c clk: tegra: Add Tegra210B01 support
This is based on the downstream Nvidia 5.10 kernel. That version was
semi-integrated into the Tegra210 clock driver. Looking at the existing
Tegra210 support, it made more sense to make this a fully independent
driver, so that is implemented here.

Co-authored-by: Thomas Makin <halorocker89@gmail.com>
Change-Id: Iadee08494eff823155e228063bee8f7a280cbcef
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling 07ed2fb23b thermal: tegra: Add Tegra210B01 Support
Add Tegra210B01 SOC_THERM configuration

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling 47ce25d2c5 usb: gadget: tegra-xudc: Add Tegra210B01 Support
It doesn't need some of the workarounds that the original Tegra210 does.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling dff5ed4c9a usb: xhci: tegra: Add Tegra210B01 support
This uses a different firmware, but is otherwise compatible with
Tegra210.
2025-11-11 15:15:03 +00:00
Aaron Kling cce56005b7 phy: tegra: xusb: Add Tegra201B01 Support
It has slightly different lanes compared to the original Tegra210.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
azkaliandtmakin 16de65709b soc/tegra: pmc: Add Tegra210B01 support
Co-authored-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Azkali Manad <a.ffcc7@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling fab2cba2df dt-bindings: clock: tegra: Document Tegra210B01
* Add the compatible string for Tegra210B01 clock and reset
* Add Tegra210B01 specific clock bindings

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Venkat Reddy Talla ec0d70298b regulator: max77812: add max77812 regulator driver
Adding regulator driver for MAX77812 device which is
used in t210b01 based platforms for powering cpu,gpu
and dram io

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling 412e4e172e power: supply: bq24190_charger: Support usb role switching
Change-Id: Ia1e650f15ae55bb0972612b378d093a20d8a8a98
2025-11-11 15:15:03 +00:00
Aaron Kling e24dd8dceb power: supply: bq24190_charger: Export current regulator
Change-Id: I3958896da66740d503aec5ed93e14a7d743a43ac
2025-11-11 15:15:03 +00:00
Aaron Kling 5145442e1e power: bq24190: support bq24193
Change-Id: I66f665af1913a6bf92fa28f10afd9bae845d8867
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling a5c7fa6a90 memory: tegra210-emc: Support Device Tree EMC Tables
These are generated by the Tegra210 Android bootloader. This is similar
to the Tegra124 handling, so the support is based on that and modified
to match Tegra210 by referencing the downstream Nvidia 4.9 kernel.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:03 +00:00
Aaron Kling ffe7238665 arm64: tegra: Add EMC timings to P2180
These entries are imported from the downstream Nvidia Linux4Tegra
kernel. They are expected to be updated with the trained values by the
bootloader. This is done by the Nvidia Android bootloader, which is
different from the handling by the Nvidia Linux bootloader which places
these values in a reserved memory location. P2180 is supported by both
bootloaders, so lets support initializing emc on both.

It should be noted that the bootloader will not create these nodes in
the kernel dtb if they do not exist. It will only set in place existing
properties.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Svyatoslav Ryhel ed8702254a ARM: tegra: Add DSI-A and DSI-B nodes on Tegra124
Bind DSI devices and MIPI calibration.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Link: https://lore.kernel.org/r/20250226105615.61087-6-clamor95@gmail.com
Signed-off-by: Thierry Reding <treding@nvidia.com>
2025-11-11 15:15:02 +00:00
Aaron Kling 07b857abe5 gpio: palmas: Allow building as a module
The driver works fine as a module, so allowing building as such. This
adds an exit handler to support module unload.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling 49a0bd6704 arm64: tegra: Add Tegra186 pin controllers
Add the device tree nodes for the MAIN and AON pin controllers found on
the Tegra186 family of SoCs.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling c1548709ab pinctrl: tegra: Add Tegra186 pinmux driver
This is based on Nvidia's downstream 5.10 driver, rewritten to match the
mainline Tegra194 pinmux driver.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling 6aed033f53 dt-bindings: gpio: tegra186: Add gpio-ranges
Add optional gpio-ranges property.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling dec2ac6aff dt-bindings: pinctrl: Document Tegra186 pin controllers
Tegra186 contains two pin controllers. Document their compatible strings
and describe the list of pins and functions that they provide.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling 78b406880f cpuidle: tegra: Export tegra_cpuidle_pcie_irqs_in_use
Add export for tegra_cpuidle_pcie_irqs_in_use() so that drivers like
pci-tegra can be loaded as a module.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling b70766325d irqdomain: Export irq_domain_free_irqs
Export irq_domain_free_irqs() to allow PCI/MSI drivers like pci-tegra to
be built as a module.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling 65aa274d15 arm64: tegra: Enable HDA controller on P2894
The HDA controller can be used for audio playback over HDMI.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling b715036d9c arm64: tegra: Enable HDMI on P2894
Add regulators and enable the host1x nodes necessary to attain video
output via hdmi.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling d271e4e311 WIP: arm64: tegra: Enable APE on P2894
TODO: Drop usused external codecs

Enable support for audio-graph based sound card on P2894. Required I/O
interfaces are enabled.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:02 +00:00
Aaron Kling a4ac4e98a5 arm64: tegra: Enable DFLL clock on P2894
Add pinmux for PWM-based DFLL support.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling b603d035b1 arm64: tegra: Enable PWM fan on P2894
This is based on 6f78a94, which enabled added the fan and thermal zones
for the Jetson Nano Devkit. The fan and thermal characteristics of the
two devices are similar, so using the same configuration.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling d66de87b6b arm64: tegra: Enable PCIe on P2894
The p2894 product has a PCIe ethernet adapter

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 9e4030a477 WIP: arm64: tegra: Enable XUSB controller on P2894
TODO: Correct otg connector for full size A port

Enable the XUSB controller on P2894. One of the USB 3.0 lanes goes to a
switchable USB-A port, while the second USB 3.0 lane supports the normal
USB-A port.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 7a04b9bc51 arm64: tegra: Add Wifi node for P2894
The p2894 product has a BCM4354 module with wifi on sdio.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 0455ca103d arm64: tegra: Wire up Bluetooth for P2894
The p2894 product contains a BCM4354 module with bluetooth on uart.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 169c7531b2 arm64: tegra: Enable gpu on P2894
This adds the gpu regulator and enables the gpu node.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 6c03bcbfb3 arm64: tegra: Add support for NVIDIA Shield TV 2015
Add initial device-tree support for NVIDIA Shield TV (a.k.a. Foster)
based upon Tegra210 SoC with 3 GiB of LPDDR4 RAM. It is based on P2571.

Change-Id: Ideeeb15f835ebf7f7617d3989908d245aff4b316
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling e6e75e0cc4 arm64: tegra: Enable HDA controller on P2571
The HDA controller can be used for audio playback over HDMI.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling c5fc330ec4 arm64: tegra: Enable HDMI on P2571
Add regulators and enable the host1x nodes necessary to attain video
output via hdmi.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling 7816b529c5 WIP: arm64: tegra: Enable APE on P2571
TODO: Drop unused external codec references

Enable support for audio-graph based sound card on P2571. Required I/O
interfaces are enabled.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling c01c8b6b14 arm64: tegra: Enable DFLL clock on P2571
Add pinmux for PWM-based DFLL support.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling db2ded908b arm64: tegra: Enable XUSB controller on P2571
Enable the XUSB controller on P2571. One of the USB 3.0 lanes goes to an
internal ethernet interface, while two other USB 3.0 lanes support the
the USB-A receptacles on the I/O board.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:01 +00:00
Aaron Kling fca2d7886c arm64: tegra: Enable PWM fan on P2571
This is based on 6f78a94, which enabled added the fan and thermal zones
for the Jetson Nano Devkit. The fan and thermal characteristics of the
two devices are similar, so using the same configuration.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 0af726c616 arm64: tegra: Add Wifi node for P2530
The p2530 som has a BCM4354 module with wifi on sdio.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling e99e8cac91 arm64: tegra: Wire up Bluetooth for P2530
The p2530 som contains a BCM4354 module with bluetooth on uart.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 381fdbc5a5 arm64: tegra: Enable gpu on P2530
This adds the gpu regulator and enables the gpu node.

Change-Id: I8a0f580fa600d8f37fb3fa497cf657abf2905d5f
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 888868a8e9 arm64: tegra: Add PMIC support on P2530
Based on the p2180 pmic config, modified to match p2530

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 7a7de6ab35 arm64: tegra: Add P2530 SC7 timings
Same as 106f7a0 and 47b4e12. Without these, the pmc driver locks up
during boot.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 3549513b0d arm64: tegra: Enable bluetooth on P3310
The p3310 som contains a BCM4354 module with bluetooth on uart.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 30d99c8fd7 arm64: tegra: Enable wifi on P3310
The p3310 som has a BCM4354 module with wifi on sdio.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 3d7de18141 arm64: tegra: Fix ldo5 voltage on P3310
This appears to be a typo. The voltage input to the wireless module is
expected to be 1.8V-3.3V, per the downstream device tree.

Fixes: 02df3f03a8 ("arm64: tegra: Add initial power tree for P3310")
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00
Aaron Kling 6f188fca32 arm64: tegra: Add NVIDIA Jetson Nano 2GB Developer Kit support
This devkit is very similar to P3450, except it has less ram, no display
port, and only 3 usb host ports. Derive from P3450 and disable the
hardware that is unavailable.

Gpio PA6 is used to control the hdmi power rail and needs to be on for
hotplug detect to work. This is mapped to the 3.3V usb hub on P3450.
That usb rail is not used here, so delete the regulator to avoid
conflicts.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:00 +00:00