Commit Graph
1311346 Commits
Author SHA1 Message Date
Aaron Kling 8daf4ee46f arm64: tegra: tegra210: Add actmon
This enables the action monitor to facilitate dynamic frequency scaling.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling 343e60550d soc: tegra: fuse: speedo-tegra210: Add soc speedo 2
The Jetson Nano series of modules only have 2 emc table entries,
different from other soc sku's. As the emc driver uses the soc speedo to
populate the emc opp tables, add a new speedo id to uniquely identify
this.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling 091bffaf7e 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>
2025-11-11 15:15:05 +00:00
Aaron Kling 50699fa40a memory: tegra210: Use bindings for client ids
Since the related binding is being added, use that for the client ids
instead of hardcoded magic numbers.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling e95129a161 dt-bindings: memory: tegra210: Add memory client IDs
Each memory client has unique hardware ID, add these IDs.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling b75fae54c9 soc: tegra: fuse: speedo-tegra210: Update speedo ids
Existing code only sets cpu and gpu speedo ids 0 and 1. The cpu dvfs
code supports 11 ids and nouveau supports 5. This aligns with what the
downstream vendor kernel supports. Align skus with the downstream list.

The Tegra210 CVB tables were added in the first referenced fixes commit.
Since then, all Tegra210 socs have tried to scale to 1.9 GHz, when the
supported devkits are only supposed to scale to 1.5 or 1.7 GHZ.
Overclocking should not be the default state.

Fixes: 2b2dbc2f94 ("clk: tegra: dfll: add CVB tables for Tegra210")
Fixes: 579db6e5d9 ("arm64: tegra: Enable DFLL support on Jetson Nano")
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling 16e7bf68b1 drm/nouveau: Support devfreq for Tegra
Using pmu counters for usage stats. This enables dynamic frequency
scaling on all of the currently supported Tegra gpus.

The register offsets are valid for gk20a, gm20b, gp10b, and gv11b. If
support is added for ga10b, this will need rearchitected.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Aaron Kling 06ba4c8e65 drm/nouveau: Support reclocking on gp10b
Starting with Tegra186, gpu clock handling is done by the bpmp and there
is little to be done by the kernel. The only thing necessary for
reclocking is to set the gpcclk to the desired rate and the bpmp handles
the rest. The pstate list is based on the downstream driver generates.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:05 +00:00
Ard Biesheuvel 21164c1535 efistub: Lower default log level
Change-Id: I4d4f6e5a93669ca2a99a79f5f760ced2f000a3c2
2025-11-11 15:15:04 +00:00
Aaron Kling cc70760341 WIP: drm/tegra: Add devfreq support to media engines
TODO: Better limit frequency count

Change-Id: If86527dc4985d9afd9d510430d1f3c137ca7f220
2025-11-11 15:15:04 +00:00
Aaron Kling 1ef6885568 drm/tegra: Support Tegra186+ in NVJPG
Change-Id: I7bf2c200d4ad9690c4f21a004ecc6dea8065f93e
2025-11-11 15:15:04 +00:00
Aaron Kling b66348d05a 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
2025-11-11 15:15:04 +00:00
Aaron Kling 77a33fa2f7 arm64: tegra: Enable NVDEC and NVENC on Tegra210
The other engines are already enabled, finish filling out the media
engine nodes and power domains.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:04 +00:00
Diogo Ivo 5de5a7b521 arm64: tegra: Add NVJPG node for Tegra210 platforms
The Tegra X1 chip contains a NVJPG accelerator capable of
encoding/decoding JPEG files in hardware. Complete its DT node
and enable it.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
2025-11-11 15:15:04 +00:00
Diogo Ivo bd9ce31a9a arm64: tegra: Add Tegra210 NVJPG power-domain node
Add the NVJPG power-domain node in order to support the NVJPG
accelerator in Tegra210 platforms.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
2025-11-11 15:15:04 +00:00
Diogo Ivo 17c9b0eac7 drm/tegra: Add NVJPG driver
Add support for booting and using NVJPG on Tegra210 to the Host1x
and TegraDRM drivers. This driver only supports the new TegraDRM uAPI.

Acked-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
2025-11-11 15:15:04 +00:00
Mikko Perttunen 796fc53eb5 gpu: host1x: Add MLOCK recovery for rest of engines
Add class IDs / MLOCKs for MLOCK recovery for rest of engines
present on Tegra234.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240425050238.2943404-4-cyndis@kapsi.fi
2025-11-11 15:15:04 +00:00
Mikko Perttunen 9490ce4c50 gpu: host1x: Complete stream ID entry tables
These tables contain fixed values to program the host1x hardware
with, so fill in the missing entries.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240425050238.2943404-3-cyndis@kapsi.fi
2025-11-11 15:15:04 +00:00
Aaron Kling 18f020320f 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 is very basic, intended for checking initial Tegra210B01 support.
More complete support for the device will be added later.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
2025-11-11 15:15:04 +00:00
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