Commit 13b0aca3 authored by Thierry Reding's avatar Thierry Reding
Browse files

arm64: tegra: Support Jetson Orin NX



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: default avatarThierry Reding <treding@nvidia.com>
parent d89baa52
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
// 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";
		};
	};
};
+172 −0
Original line number Diff line number Diff line
// 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>;
				};
			};
		};
	};
};