]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: tegra: Support Jetson Orin NX
authorThierry Reding <treding@nvidia.com>
Fri, 31 Mar 2023 16:29:13 +0000 (18:29 +0200)
committerThierry Reding <treding@nvidia.com>
Tue, 4 Apr 2023 11:19:40 +0000 (13:19 +0200)
This adds a device tree for the Jetson Orin NX module, which is Jetson
AGX Orin's little sibling with 6 or 8 ARM Cortex-A78AE cores, an Ampere
GPU (1024 GPU and 32 tensor cores) and a number of accelerators for
machine learning, image processing and more.

The Jetson Orin NX comes with either 8 or 16 GiB of 128-bit LPDDR5 and
supports NVME for mass storage.

Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm64/boot/dts/nvidia/tegra234-p3767-0000.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi [new file with mode: 0644]

diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3767-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3767-0000.dtsi
new file mode 100644 (file)
index 0000000..baf4f69
--- /dev/null
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "tegra234-p3767.dtsi"
+
+/ {
+       compatible = "nvidia,p3767-0000", "nvidia,tegra234";
+       model = "NVIDIA Jetson Orin NX";
+
+       bus@0 {
+               hda@3510000 {
+                       nvidia,model = "NVIDIA Jetson Orin NX HDA";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi
new file mode 100644 (file)
index 0000000..bd60478
--- /dev/null
@@ -0,0 +1,172 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "tegra234.dtsi"
+
+/ {
+       compatible = "nvidia,p3767", "nvidia,tegra234";
+
+       bus@0 {
+               i2c@3160000 {
+                       status = "okay";
+
+                       eeprom@50 {
+                               compatible = "atmel,24c02";
+                               reg = <0x50>;
+
+                               label = "module";
+                               vcc-supply = <&vdd_1v8_hs>;
+                               address-width = <8>;
+                               pagesize = <8>;
+                               size = <256>;
+                               read-only;
+                       };
+               };
+
+               spi@3270000 {
+                       status = "okay";
+
+                       flash@0 {
+                               compatible = "jedec,spi-nor";
+                               reg = <0>;
+                               spi-max-frequency = <136000000>;
+                               spi-tx-bus-width = <4>;
+                               spi-rx-bus-width = <4>;
+                       };
+               };
+
+               /*
+                * This only exists on Jetson Orin Nano Developer Kit (SKU 5)
+                * but UEFI needs this and will remove it on devices where it
+                * doesn't exist.
+                */
+               mmc@3400000 {
+                       status = "okay";
+                       bus-width = <4>;
+                       cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_HIGH>;
+                       disable-wp;
+               };
+
+               hda@3510000 {
+                       status = "okay";
+               };
+
+               padctl@3520000 {
+                       vclamp-usb-supply = <&vdd_1v8_ao>;
+                       avdd-usb-supply = <&vdd_3v3_ao>;
+               };
+
+               rtc@c2a0000 {
+                       status = "okay";
+               };
+
+               pmc@c360000 {
+                       nvidia,invert-interrupt;
+               };
+       };
+
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_5V0_SYS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       vdd_1v8_hs: regulator-vdd-1v8-hs {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_HS";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       vdd_1v8_ao: regulator-vdd-1v8-ao {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_AO";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       vdd_3v3_ao: regulator-vdd-3v3-ao {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_AO";
+               regulator-min-microvolt = <33000000>;
+               regulator-max-microvolt = <33000000>;
+               regulator-always-on;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       thermal-zones {
+               /*
+                * This monitoring is far from optimal, but it's good enough
+                * at this stage.
+                */
+               cpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <1000>;
+                       status = "okay";
+
+                       trips {
+                               critical {
+                                       temperature = <104500>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+
+                               hot {
+                                       temperature = <99000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               board_trip_passive: passive {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               board_trip_active2: active-2 {
+                                       temperature = <80000>;
+                                       hysteresis = <4000>;
+                                       type = "active";
+                               };
+
+                               board_trip_active1: active-1 {
+                                       temperature = <65000>;
+                                       hysteresis = <4000>;
+                                       type = "active";
+                               };
+
+                               board_trip_active0: active-0 {
+                                       temperature = <50000>;
+                                       hysteresis = <4000>;
+                                       type = "active";
+                               };
+                       };
+
+                       cooling-maps {
+                               passive {
+                                       cooling-device = <&fan 3 3>;
+                                       trip = <&board_trip_passive>;
+                               };
+
+                               active2 {
+                                       cooling-device = <&fan 2 3>;
+                                       trip = <&board_trip_active2>;
+                               };
+
+                               active1 {
+                                       cooling-device = <&fan 1 2>;
+                                       trip = <&board_trip_active1>;
+                               };
+
+                               active0 {
+                                       cooling-device = <&fan 0 1>;
+                                       trip = <&board_trip_active0>;
+                               };
+                       };
+               };
+       };
+};