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: Thierry Reding <treding@nvidia.com>
This commit is contained in:
Thierry Reding 2023-03-31 18:29:13 +02:00
parent d89baa5292
commit 13b0aca303
2 changed files with 186 additions and 0 deletions

View file

@ -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";
};
};
};

View file

@ -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>;
};
};
};
};
};