Commit Graph
1459403 Commits
Author SHA1 Message Date
Aaron Kling fa3635b142 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>
2026-10-05 12:47:01 -05:00
Aaron Kling 7fc6394176 arm64: tegra: Enable DFLL clock on P2894
Add pinmux for PWM-based DFLL support.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:47:01 -05:00
Aaron Kling 156132864e 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>
2026-10-05 12:47:01 -05:00
Aaron Kling 523114b93c arm64: tegra: Add Wifi node for Tegra210B01 P2894
The Tegra210B01 p2894 product has a BCM4356 module with wifi on pcie.
Enable the pcie port it is plugged into add a node for the wifi card,
and add a gpio-hog to enable power to the card. Attempts to tie the gpio
to power sequencing has not worked.

Change-Id: I7236fa1a3eabeb7fbb5b94af05f951b922955a38
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:47:00 -05:00
Aaron Kling 0fd3f43820 arm64: tegra: Add Wifi node for Tegra210 P2894
The Tegra210 p2894 product has a BCM4354 module with wifi on sdio.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:47:00 -05:00
Aaron Kling d56c180dba 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>
2026-10-05 12:46:59 -05:00
Aaron Kling 1789b75e32 arm64: tegra: Enable PCIe Ethernet on P2894
The P2894 product has a Realtek r6168 PCIe ethernet adapter. Enable the
pcie port the adapter is attached to.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:59 -05:00
Aaron Kling 1df0cc2a82 arm64: tegra: Enable XUSB controller on P2894
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.

The padctl layout is different between the Tegra210 and Tegra210B01
variants. The latter is overridden in the device specific dts.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:58 -05:00
Aaron Kling 34e509d5e5 arm64: tegra: Enable gpu on P2894
This adds the gpu regulator and enables the gpu node.

Change-Id: I7d9580967edf9af4c31d500608f880eeb9d1e0b5
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:58 -05:00
Aaron Kling 3d913d9051 arm64: tegra: Add support for NVIDIA Shield TV Pro 2019
Add initial device-tree support for NVIDIA Shield TV Pro 2019 (a.k.a
MDarcy) based up the Tegra210B01 SoC with 3 GiB of LPDDR4 RAM.

This device is very similar to the Tegra210 p2894 device, so this shares
the p2894 dtsi with a few overrides to the pinmux and power tree.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:58 -05:00
Aaron Kling f06e70573e arm64: tegra: tegra210-p2894: Move arch dtsi include
In preparation for support of the Tegra210B01 p2894 variant, move the
arch dtsi include to the Tegra210 revision specific dts. This will allow
the p2894 dtsi to be shared across archs, as the variants share a
majority of the hardware design.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:57 -05:00
Aaron Kling 62729c112f 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-developed-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:57 -05:00
Aaron Kling 9bbaf832bb 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>
2026-10-05 12:46:56 -05:00
tmakin c7465408be mmc: sdhci-tegra: add support for Tegra210B01
Tegra210B01 is basically the same as Tegra210 but uses different tap
delays.

Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:56 -05:00
tmakin 08c08b7b32 pci: tegra: add t210b01 support
This commit also fixes configuration checks

Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Co-developed-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:56 -05:00
Aaron Kling 9e79aefb8f 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>
2026-10-05 12:46:54 -05:00
Aaron Kling 10fc7db687 usb: xhci: tegra: Add Tegra210B01 support
This uses a different firmware, but is otherwise compatible with
Tegra210.

Co-developed-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:54 -05:00
Aaron Kling 935ca443cb phy: tegra: xusb: Add Tegra201B01 Support
This covers a few differences:
* Lanes compared to the original Tegra210
* The soc has a different clock driver and thus callbacks
* The soc has an extra clock for uphy management

Co-developed-by: Thomas Makin <halorocker89@gmail.com>
Change-Id: I455358267b3a700461caa8f9f9963d33596dd189
Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:54 -05:00
tmakin 5c743de761 memory: tegra: populate dt subnodes
Tegra210b01 uses tegra186-emc driver as emc clock is controlled by BPMP.
However, this driver expects emc as subnode of mc. Adjust Tegra30 mc
probe routine to populate subnodes.
2026-10-05 12:46:53 -05:00
Alexandre Hamamdjian 0df5550822 soc/tegra: pmc: Add Tegra210B01 support
The PMC in Tegra210B01 is very similar to the one in the original
Tegra210, but has a few powergate differences. Specifically sata and ve2
are removed.

Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com>
Co-developed-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Co-developed-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:51 -05:00
tmakin a797a11437 nouveau: add gm20b c1 variant for t210b01
This is a revision of the GM20B chipset with some minor changes.
- Support new ID for b01 variant
- Support C1 PLL revision
- Differentiate DVFS parameters between B1 (t210) and C1 (t210b01)
- Add pstates for t210b01 (start with NA table for now)

Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Co-developed-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-10-05 12:46:49 -05:00
Aaron Kling 7ae0f074ca thermal: tegra: Add Tegra210B01 Support
Add Tegra210B01 SOC_THERM configuration

Change-Id: Ib094bedbe13dd0e3ff750e7c4da025b46e033ddc
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:15 -05:00
tmakin a40b5b1e34 tegra: clk: correct divider algo
Negative divider_ux1 values previously were resolved by extra checks and
caused undefined behavior with div1_5_not_allowed
2026-08-22 16:55:15 -05:00
Aaron Kling 24598d43da clk: tegra: dfll: add CVB tables for Tegra210B01
To generate OPP tables for the soc

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:15 -05:00
Aaron Kling 34e09d4ed5 soc/tegra: fuse: speedo-tegra210: Support revision b01
Tegra210B01 has a separate set of skus and speedo tables

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:15 -05:00
Aaron Kling cdae45b395 soc/tegra: fuse: Support revision B01
Previously, all supported SoCs only used the A major revision. The
Tegra210B01 SoC incremented the major revision. Add support for this.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:14 -05:00
Aaron Klingandtmakin 0a63d792ed 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>
Signed-off-by: Thomas Makin <halorocker89@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:14 -05:00
Aaron Kling e4282a0488 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>
2026-08-22 16:55:14 -05:00
Aaron Kling 11710dff52 drm/tegra: Create switch class for primary hdmi
Change-Id: I353b1c5ad98bcd69b4827b0c74327511b4d8222d
2026-08-22 16:55:14 -05:00
Faith Ekstrand da5e6625ff drm/nouveau: Use write-combined maps for coherent
On Tegra devices, uncached maps traslate to device memory, causing
unaligned accesses by userspace resulting in a SIGBUS. Instead, use
write-combined maps to ensure proper access.

It was also determined that discrete cards should also use
write-combined maps for coherent. Thus this change is made for all gpu
types.

Signed-off-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Co-developed-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:14 -05:00
Aaron Kling c11c7e2e06 ANDROID: GKI: Add tegra gki hacks
* Enable xz ramdisk for small t210 recovery partitions

Change-Id: I3bb0f7277722305d0498776d4494c8f60a322343
2026-08-22 16:55:14 -05:00
Vishwaroop A bd38a3247b drivers: spi: add support for prod framework
Add support for prod framework in spi core

Change-Id: Iaa70f8b3bb3efb3a3b13aa7f2d43562b9fff9e51
Signed-off-by: Vishwaroop A <va@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Abhilash G <abhilashg@nvidia.com>
2026-08-22 16:55:14 -05:00
Shardar Shariff Md 8571fe0acf i2c: core: skip prod-settings node during i2c device registration
skip prod-settings node during i2c device registration as
prod-settings is not i2c device

Change-Id: Iaeff454cf17ffd68a7273aeb8afcce6e2c8894c6
Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com>
Reviewed-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Tested-by: Akhil R <akhilrajeev@nvidia.com>
Signed-off-by: Abhilash G <abhilashg@nvidia.com>
2026-08-22 16:55:14 -05:00
David Ng 1a60ba4e2a arm64: Add 32-bit sigcontext definition to uapi signcontext.h
The arm64 uapi sigcontext.h can be included by 32-bit userspace
modules.  Since arm and arm64 sigcontext definition are not
compatible, add arm sigcontext definition to arm64 sigcontext.h.

Signed-off-by: David Ng <dave@codeaurora.org>
Signed-off-by: Divya Sharma <c_shard@codeaurora.org>
Signed-off-by: Anh Nguyen <anguyen@codeaurora.org>
Change-Id: Iaed58045fd345e4ca66e8a6981c6b4f80c4bdfca
2026-08-22 16:55:14 -05:00
Aaron Kling 2a2508ba6a arm64: Disable some cpu feature sanity checks
On t186, these differ between denver and a57

Change-Id: I65b1515ef9f5d42b0da1dfa605e51536eb902ca5
2026-08-22 16:55:13 -05:00
Aaron Kling ff46377110 ANDROID: gki_defconfig: Normalize Tegra SoC Support
Since commit ece67f4758 ("soc/tegra: Make ARCH_TEGRA_SOC_FOO defaults
for NVIDIA Tegra"), all Tegra arm64 archs are enabled for GKI. Commit
eb5e5c1f62 ("ANDROID: gki_defconfig: Enable Tegra SoCs") disabled
options related to Tegra archs older than Tegra234 since that was the
only one supported at the time. Now that all archs are supported, these
options can be used.

* SERIAL_8250_TEGRA is used by Tegra210 and Tegra186 for UART serial
* TEGRA186_TIMER is used by Tegra186 and newer for watchdog timers
* TEGRA_IOMMU_SMMU is required by Tegra210 for mmu
* TEGRA210_EMC can be a module, but depends on an additional built-in
  config; plus all other Tegra emc support is built-in already
* TEGRA_AHB is used by Tegra210
* ARM_TEGRA20_CPUFREQ and ARM_TEGRA124_CPUFREQ Kconfig changes are reset
  to match mainline. New vendor snippets enabling CPUFREQ_DT can disable
  as needed. The rockpi4 target is updated as an example of this.

Change-Id: I05541c6e1fc1ccd9ab430451a66f0d5cc3c7b0e1
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:13 -05:00
Ahmad Chaudhry 2db895055c ANDROID: GKI: Enable Tegra Host1x
Select hidden config CONFIG_TEGRA_HOST1X_CONTEXT_BUS.
This config is needed as it adds host1x_context_device_bus_type
to iommu_buses private array, needed for host1x.ko module

Bug: 418986815
Change-Id: Icbc697638e39a08a648b2a3dbf7947d6107ac310
Signed-off-by: Ahmad Chaudhry <ahmadc@nvidia.com>
2026-08-22 16:55:13 -05:00
Aaron Kling 9e066aa60a HACK: Revert "UPSTREAM: drm/nouveau: select FW caching"
This reverts commit cf4c97db94.

Commit knowingly breaks building the nouveau module. As the issue only
affects full gsp devices, revert to keep builds going.
https://patchwork.freedesktop.org/patch/635827/#comment_1165994

Change-Id: I67d544b433f4a2dc047ed07088eda73466594cc6
2026-08-22 16:55:13 -05:00
Venkat Reddy Talla 71e3e94861 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>
2026-08-22 16:55:13 -05:00
Aaron Kling 249af64b93 power: supply: bq24190_charger: Support usb role switching
Change-Id: Ia1e650f15ae55bb0972612b378d093a20d8a8a98
2026-08-22 16:55:13 -05:00
Aaron Kling 87a623ba79 power: supply: bq24190_charger: Export current regulator
Change-Id: I3958896da66740d503aec5ed93e14a7d743a43ac
2026-08-22 16:55:13 -05:00
Aaron Kling b4b5ddc195 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>
2026-08-22 16:55:13 -05:00
Aaron Kling 1168324549 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>
2026-08-22 16:55:13 -05:00
Aaron Kling 17dc25fde0 WIP: drm/tegra: Add devfreq support to media engines
TODO: Better limit frequency count

Change-Id: If86527dc4985d9afd9d510430d1f3c137ca7f220
2026-08-22 16:55:12 -05:00
Aaron Kling 6665fa0e0e drm/tegra: Support Tegra186+ in NVJPG
Change-Id: I7bf2c200d4ad9690c4f21a004ecc6dea8065f93e
2026-08-22 16:55:12 -05:00
Aaron Kling e2b7c0d630 drm/tegra: Add NVENC driver
Add support for booting and using NVENC on Tegra210+ to the Host1x
and TegraDRM drivers. This driver only supports the new TegraDRM uAPI.

Change-Id: I07e1386604d7638ba43381c3f289688d7c5cb12b
2026-08-22 16:55:12 -05:00
Aaron Kling f107dd13fc arm64: tegra: Add tegra210 p2523
Change-Id: I0922c192477436ecb3f509c1cc1ce8b0f3e6f391
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 16:55:12 -05:00
Aaron Kling 5f4c18cff4 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>
2026-08-22 11:35:35 -05:00
Aaron Kling 706902a2c8 arm64: tegra: Enable sd card on P2571
Change-Id: I2320654ef9fc15dad901b516bd22379329e5ab88
2026-08-22 11:35:35 -05:00
Aaron Kling 5c071bf1e5 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>
2026-08-22 11:35:35 -05:00