Commit Graph
1459373 Commits
Author SHA1 Message Date
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
Aaron Kling cd3c3cf242 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>
2026-08-22 11:35:35 -05:00
Aaron Kling 647f86bba1 arm64: tegra: Enable DFLL clock on P2530
Using pwm regulator

Change-Id: Id41340bcfc4e12df74b579ec34e61ebba857d81c
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:35 -05:00
Aaron Kling 437e4a400b 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>
2026-08-22 11:35:35 -05:00
Aaron Kling 7c3cd07474 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>
2026-08-22 11:35:35 -05:00
Aaron Kling bb93b387d4 arm64: tegra: Add power supplies to emmc on P2530
Change-Id: I3ddf282a9a4cf7b407897f8e7af073c1852704b7
2026-08-22 11:35:35 -05:00
Aaron Kling 81d1dce523 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>
2026-08-22 11:35:35 -05:00
Aaron Kling f486fc5941 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>
2026-08-22 11:35:35 -05:00
Aaron Kling 3ab48113d2 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>
2026-08-22 11:35:35 -05:00
Aaron Kling ba6ce716c5 arm64: tegra: Add PMIC support on P2530
Based on the p2180 pmic config, modified to match p2530

Change-Id: Ic7baa787b8e9633da72622a4562258860c05fca6
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling a7e6c6791e arm64: tegra: Enable CPU idle support for P2530
Enable CPU idle support for the P2530 module

Change-Id: Ia73f192b3450fe9c143fbaaea03d6a50527927a7
2026-08-22 11:35:34 -05:00
Aaron Kling 2a5e63e580 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>
2026-08-22 11:35:34 -05:00
Aaron Kling 0ac45d0c32 dt-bindings: tegra: Document SHIELD TV 2015
The SHIELD TV 2015 is a consumer media Android device that is based on
P2571

Change-Id: Ib981728d277f7daca812223ec3534d98555d43a1
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling 7d1c80a51c 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>
2026-08-22 11:35:34 -05:00
Aaron Kling b00eb938cb arm64: tegra: Enable wifi on P3310
The p3310 som has a BCM4354 module with wifi on sdio.

Change-Id: Ie4b42165fb81a129a7afe58c1c632261d13eca53
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling eb678f0a0d 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>
2026-08-22 11:35:34 -05:00
Aaron Kling 04b2767faa arm64: tegra: Add CPU OPP tables for Tegra194
Add OPP table and interconnects property to scale DDR frequency with
CPU frequency for better performance. Each operating point entry of
the OPP table has CPU freq to per MC channel bandwidth mapping.
One table is added for each cluster even though the table data is
same because the bandwidth request is per cluster. This is done
because the OPP framework creates a single icc path and hence single
bandwidth request if the table is marked as 'opp-shared' and shared
among all clusters. For us, the OPP table data is same but the MC
Client ID argument to interconnects property is different for each
cluster. So, having per cluster tables makes different icc paths for
each cluster and helps to make per cluster BW requests.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling df06f3327d arm64: tegra: Add CPU OPP tables for Tegra186
Add OPP table and interconnects property to scale DDR frequency with
CPU frequency for better performance. Each operating point entry of
the OPP table has CPU freq to per MC channel bandwidth mapping. One
table is added for each cluster because the different cpu types have
different scaling curves.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling 68b9da0d69 memory: tegra194: Support icc scaling
Add Interconnect framework support to dynamically set the DRAM
bandwidth from different clients. The MC driver is added as an ICC
provider and the EMC driver is already a provider.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling e1700d2895 memory: tegra186: Support icc scaling
Add Interconnect framework support to dynamically set the DRAM
bandwidth from different clients. The MC driver is added as an ICC
provider and the EMC driver is already a provider.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling 979ef9969f memory: tegra186-emc: Support non-bpmp icc scaling
This adds support for dynamic frequency scaling of external memory on
devices with bpmp firmware that does not support bwmgr.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:34 -05:00
Aaron Kling 0b691900f2 memory: tegra186-emc: Register rates with opp
This will be used in the upcoming non-bpmp icc support, which will use
the common tegra emc rate support which uses the opp framework.

Change-Id: If4a3efaae0ad06de029ffd34c2b11faea5044d58
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling fd1455c178 dt-bindings: memory: tegra194-mc: Add dummy client IDs for Tegra194
Add ICC IDs for dummy software clients representing CCPLEX clusters.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling 4633bb55f6 dt-bindings: memory: tegra186-mc: Add dummy client IDs for Tegra186
Add ICC IDs for dummy software clients representing CCPLEX clusters.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling 8fb5c8bd3e arm64: tegra: Fix P2371 pcie lane assignments
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling f4efe632f0 arm64: tegra: Enable interconnect for MC and EMC on Tegra210
These are being referenced by actmon, but are not currently enabled.

Fixes: 654427e0b9 ("arm64: tegra: Add OPP tables on Tegra210")
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling 99603f7dff memory: tegra210: Support interconnect framework
This makes mc and emc interconnect providers and allows for dynamic
memory clock scaling.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Mikko Perttunen 7297c37213 memory: tegra: Deduplicate rate request management code
As is, the EMC drivers for each 32-bit platform contain almost
identical duplicated code for aggregating rate requests. Move this
code out to a shared tegra-emc-common file to reduce duplication,
and add kerneldoc comments.

Based on code from the tegra20-emc driver.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Link: https://patch.msgid.link/20260501-memory-refactor-v3-1-69fb1ae1a7ca@nvidia.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-08-22 11:35:33 -05:00
Aaron Kling 167dcb6d3d arm64: tegra: Enable mmu on Tegra194 display controllers
These use a separate mmu instance compared to everything else currently
enabled for the soc.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling 10be68dc0b Revert "arm64: tegra: Disable ISO SMMU for Tegra194"
This reverts commit ebea268ea5.

Mmu is now being enabled for the display controllers.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2026-08-22 11:35:33 -05:00
Aaron Kling 8364f53f1e drm/tegra: Enable cmu for Tegra186 and Tegra194
Without the cmu, nvdisplay will display colors that are notably darker
than intended. The vendor bootloader and the downstream display driver
enable the cmu and sets a sRGB table. Loading that table here results in
the intended colors.

Co-developed-by: Kurt Kiefer <kekiefer@gmail.com>
Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Tested-by: Jasper Korten <jja2000@gmail.com>
2026-08-22 11:35:33 -05:00