]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: tegra: Support Jetson Orin NX reference platform
authorThierry Reding <treding@nvidia.com>
Fri, 31 Mar 2023 16:29:14 +0000 (18:29 +0200)
committerThierry Reding <treding@nvidia.com>
Tue, 4 Apr 2023 11:19:41 +0000 (13:19 +0200)
Add support for the combination of the NVIDIA Jetson Orin NX (P3767, SKU
0) module and the P3768 carrier board.

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

index bc34c9d8846a845d64c1a127068a28f3a62004b4..1406d5d40b8f109bab58debd588cd991550c0bd4 100644 (file)
@@ -9,6 +9,7 @@ DTC_FLAGS_tegra194-p2972-0000 := -@
 DTC_FLAGS_tegra194-p3509-0000+p3668-0000 := -@
 DTC_FLAGS_tegra194-p3509-0000+p3668-0001 := -@
 DTC_FLAGS_tegra234-p3737-0000+p3701-0000 := -@
+DTC_FLAGS_tegra234-p3768-0000+p3767-0000 := -@
 
 dtb-$(CONFIG_ARCH_TEGRA_132_SOC) += tegra132-norrin.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
@@ -24,3 +25,4 @@ dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
+dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0000.dtb
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767-0000.dts b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767-0000.dts
new file mode 100644 (file)
index 0000000..7dfbc38
--- /dev/null
@@ -0,0 +1,134 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/input/gpio-keys.h>
+
+#include "tegra234-p3767-0000.dtsi"
+#include "tegra234-p3768-0000.dtsi"
+
+/ {
+       compatible = "nvidia,p3768-0000+p3767-0000", "nvidia,p3767-0000", "nvidia,tegra234";
+       model = "NVIDIA Jetson Orin NX Engineering Reference Developer Kit";
+
+       aliases {
+               serial0 = &tcu;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       bus@0 {
+               serial@31d0000 {
+                       current-speed = <115200>;
+                       status = "okay";
+               };
+
+               pwm@32a0000 {
+                       assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
+                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+                       status = "okay";
+               };
+
+               hda@3510000 {
+                       nvidia,model = "NVIDIA Jetson Orin NX HDA";
+                       status = "okay";
+               };
+
+               padctl@3520000 {
+                       status = "okay";
+               };
+
+               /* C1 - M.2 Key-E */
+               pcie@14100000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_hsio_3>;
+                       phy-names = "p2u-0";
+               };
+
+               /* C4 - M.2 Key-M */
+               pcie@14160000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
+                              <&p2u_hsio_7>;
+                       phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
+               };
+
+               /* C8 - Ethernet */
+               pcie@140a0000 {
+                       status = "okay";
+
+                       num-lanes = <2>;
+
+                       phys = <&p2u_gbe_2>, <&p2u_gbe_3>;
+                       phy-names = "p2u-0", "p2u-1";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+                       vpcie3v3-supply = <&vdd_3v3_pcie>;
+               };
+
+               /* C7 - M.2 Key-M */
+               pcie@141e0000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
+                       phy-names = "p2u-0", "p2u-1";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-force-recovery {
+                       label = "Force Recovery";
+                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_1>;
+               };
+
+               key-power {
+                       label = "Power";
+                       gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_POWER>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               key-suspend {
+                       label = "Suspend";
+                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_SLEEP>;
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               pwms = <&pwm3 0 45334>;
+               cooling-levels = <0 95 178 255>;
+               #cooling-cells = <2>;
+       };
+
+       vdd_3v3_pcie: regulator-vdd-3v3-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_PCIE";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       serial {
+               status = "okay";
+       };
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000.dtsi
new file mode 100644 (file)
index 0000000..aee2142
--- /dev/null
@@ -0,0 +1,245 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/ {
+       compatible = "nvidia,p3768-0000";
+
+       aliases {
+               serial0 = &tcu;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       bus@0 {
+               i2c@3160000 {
+                       status = "okay";
+
+                       eeprom@57 {
+                               compatible = "atmel,24c02";
+                               reg = <0x57>;
+
+                               label = "system";
+                               vcc-supply = <&vdd_1v8_sys>;
+                               address-width = <8>;
+                               pagesize = <8>;
+                               size = <256>;
+                               read-only;
+                       };
+               };
+
+               serial@31d0000 {
+                       current-speed = <115200>;
+                       status = "okay";
+               };
+
+               pwm@32a0000 {
+                       assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
+                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+                       status = "okay";
+               };
+
+               padctl@3520000 {
+                       status = "okay";
+
+                       pads {
+                               usb2 {
+                                       lanes {
+                                               usb2-0 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb2-1 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb2-2 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+                                       };
+                               };
+
+                               usb3 {
+                                       lanes {
+                                               usb3-0 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb3-1 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+                                       };
+                               };
+                       };
+
+                       ports {
+                               /* recovery port */
+                               usb2-0 {
+                                       mode = "otg";
+                                       vbus-supply = <&vdd_5v0_sys>;
+                                       status = "okay";
+                                       usb-role-switch;
+                               };
+
+                               /* hub */
+                               usb2-1 {
+                                       mode = "host";
+                                       vbus-supply = <&vdd_1v1_hub>;
+                                       status = "okay";
+                               };
+
+                               /* M.2 Key-E */
+                               usb2-2 {
+                                       mode = "host";
+                                       vbus-supply = <&vdd_5v0_sys>;
+                                       status = "okay";
+                               };
+
+                               /* hub */
+                               usb3-0 {
+                                       nvidia,usb2-companion = <1>;
+                                       status = "okay";
+                               };
+
+                               /* J5 */
+                               usb3-1 {
+                                       nvidia,usb2-companion = <0>;
+                                       status = "okay";
+                               };
+                       };
+               };
+
+               usb@3550000 {
+                       status = "okay";
+
+                       phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+                              <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
+                       phy-names = "usb2-0", "usb3-1";
+               };
+
+               usb@3610000 {
+                       status = "okay";
+
+                       phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+                              <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
+                              <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
+                              <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
+                              <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
+                       phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0",
+                                   "usb3-1";
+               };
+
+               /* C1 - M.2 Key-E */
+               pcie@14100000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_hsio_3>;
+                       phy-names = "p2u-0";
+               };
+
+               /* C4 - M.2 Key-M */
+               pcie@14160000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
+                              <&p2u_hsio_7>;
+                       phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
+               };
+
+               /* C8 - Ethernet */
+               pcie@140a0000 {
+                       status = "okay";
+
+                       num-lanes = <2>;
+
+                       phys = <&p2u_gbe_2>, <&p2u_gbe_3>;
+                       phy-names = "p2u-0", "p2u-1";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+                       vpcie3v3-supply = <&vdd_3v3_pcie>;
+               };
+
+               /* C7 - M.2 Key-M */
+               pcie@141e0000 {
+                       status = "okay";
+
+                       vddio-pex-ctl-supply = <&vdd_1v8_ao>;
+
+                       phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
+                       phy-names = "p2u-0", "p2u-1";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-force-recovery {
+                       label = "Force Recovery";
+                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_1>;
+               };
+
+               key-power {
+                       label = "Power";
+                       gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_POWER>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               key-suspend {
+                       label = "Suspend";
+                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_SLEEP>;
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               pwms = <&pwm3 0 45334>;
+               cooling-levels = <0 95 178 255>;
+               #cooling-cells = <2>;
+       };
+
+       vdd_1v8_sys: regulator-vdd-1v8-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_SYS";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       vdd_1v1_hub: regulator-vdd-1v1-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_AV10_HUB";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vdd_5v0_sys>;
+               regulator-always-on;
+       };
+
+       vdd_3v3_pcie: regulator-vdd-3v3-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_PCIE";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       serial {
+               status = "okay";
+       };
+};