blob: 96bd01cadb187d4b3f50a847e644fc6d3fbc075c [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/input/gpio-keys.h>
#include "tegra194-p2888.dtsi"
/ {
model = "NVIDIA Jetson AGX Xavier Developer Kit";
compatible = "nvidia,p2972-0000", "nvidia,tegra194";
bus@0 {
aconnect@2900000 {
status = "okay";
dma-controller@2930000 {
status = "okay";
};
interrupt-controller@2a40000 {
status = "okay";
};
ahub@2900800 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0x0>;
xbar_admaif0_ep: endpoint {
remote-endpoint = <&admaif0_ep>;
};
};
port@1 {
reg = <0x1>;
xbar_admaif1_ep: endpoint {
remote-endpoint = <&admaif1_ep>;
};
};
port@2 {
reg = <0x2>;
xbar_admaif2_ep: endpoint {
remote-endpoint = <&admaif2_ep>;
};
};
port@3 {
reg = <0x3>;
xbar_admaif3_ep: endpoint {
remote-endpoint = <&admaif3_ep>;
};
};
port@4 {
reg = <0x4>;
xbar_admaif4_ep: endpoint {
remote-endpoint = <&admaif4_ep>;
};
};
port@5 {
reg = <0x5>;
xbar_admaif5_ep: endpoint {
remote-endpoint = <&admaif5_ep>;
};
};
port@6 {
reg = <0x6>;
xbar_admaif6_ep: endpoint {
remote-endpoint = <&admaif6_ep>;
};
};
port@7 {
reg = <0x7>;
xbar_admaif7_ep: endpoint {
remote-endpoint = <&admaif7_ep>;
};
};
port@8 {
reg = <0x8>;
xbar_admaif8_ep: endpoint {
remote-endpoint = <&admaif8_ep>;
};
};
port@9 {
reg = <0x9>;
xbar_admaif9_ep: endpoint {
remote-endpoint = <&admaif9_ep>;
};
};
port@a {
reg = <0xa>;
xbar_admaif10_ep: endpoint {
remote-endpoint = <&admaif10_ep>;
};
};
port@b {
reg = <0xb>;
xbar_admaif11_ep: endpoint {
remote-endpoint = <&admaif11_ep>;
};
};
port@c {
reg = <0xc>;
xbar_admaif12_ep: endpoint {
remote-endpoint = <&admaif12_ep>;
};
};
port@d {
reg = <0xd>;
xbar_admaif13_ep: endpoint {
remote-endpoint = <&admaif13_ep>;
};
};
port@e {
reg = <0xe>;
xbar_admaif14_ep: endpoint {
remote-endpoint = <&admaif14_ep>;
};
};
port@f {
reg = <0xf>;
xbar_admaif15_ep: endpoint {
remote-endpoint = <&admaif15_ep>;
};
};
port@10 {
reg = <0x10>;
xbar_admaif16_ep: endpoint {
remote-endpoint = <&admaif16_ep>;
};
};
port@11 {
reg = <0x11>;
xbar_admaif17_ep: endpoint {
remote-endpoint = <&admaif17_ep>;
};
};
port@12 {
reg = <0x12>;
xbar_admaif18_ep: endpoint {
remote-endpoint = <&admaif18_ep>;
};
};
port@13 {
reg = <0x13>;
xbar_admaif19_ep: endpoint {
remote-endpoint = <&admaif19_ep>;
};
};
xbar_i2s1_port: port@14 {
reg = <0x14>;
xbar_i2s1_ep: endpoint {
remote-endpoint = <&i2s1_cif_ep>;
};
};
xbar_i2s2_port: port@15 {
reg = <0x15>;
xbar_i2s2_ep: endpoint {
remote-endpoint = <&i2s2_cif_ep>;
};
};
xbar_i2s4_port: port@17 {
reg = <0x17>;
xbar_i2s4_ep: endpoint {
remote-endpoint = <&i2s4_cif_ep>;
};
};
xbar_i2s6_port: port@19 {
reg = <0x19>;
xbar_i2s6_ep: endpoint {
remote-endpoint = <&i2s6_cif_ep>;
};
};
xbar_dmic3_port: port@1c {
reg = <0x1c>;
xbar_dmic3_ep: endpoint {
remote-endpoint = <&dmic3_cif_ep>;
};
};
};
admaif@290f000 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
admaif0_port: port@0 {
reg = <0x0>;
admaif0_ep: endpoint {
remote-endpoint = <&xbar_admaif0_ep>;
};
};
admaif1_port: port@1 {
reg = <0x1>;
admaif1_ep: endpoint {
remote-endpoint = <&xbar_admaif1_ep>;
};
};
admaif2_port: port@2 {
reg = <0x2>;
admaif2_ep: endpoint {
remote-endpoint = <&xbar_admaif2_ep>;
};
};
admaif3_port: port@3 {
reg = <0x3>;
admaif3_ep: endpoint {
remote-endpoint = <&xbar_admaif3_ep>;
};
};
admaif4_port: port@4 {
reg = <0x4>;
admaif4_ep: endpoint {
remote-endpoint = <&xbar_admaif4_ep>;
};
};
admaif5_port: port@5 {
reg = <0x5>;
admaif5_ep: endpoint {
remote-endpoint = <&xbar_admaif5_ep>;
};
};
admaif6_port: port@6 {
reg = <0x6>;
admaif6_ep: endpoint {
remote-endpoint = <&xbar_admaif6_ep>;
};
};
admaif7_port: port@7 {
reg = <0x7>;
admaif7_ep: endpoint {
remote-endpoint = <&xbar_admaif7_ep>;
};
};
admaif8_port: port@8 {
reg = <0x8>;
admaif8_ep: endpoint {
remote-endpoint = <&xbar_admaif8_ep>;
};
};
admaif9_port: port@9 {
reg = <0x9>;
admaif9_ep: endpoint {
remote-endpoint = <&xbar_admaif9_ep>;
};
};
admaif10_port: port@a {
reg = <0xa>;
admaif10_ep: endpoint {
remote-endpoint = <&xbar_admaif10_ep>;
};
};
admaif11_port: port@b {
reg = <0xb>;
admaif11_ep: endpoint {
remote-endpoint = <&xbar_admaif11_ep>;
};
};
admaif12_port: port@c {
reg = <0xc>;
admaif12_ep: endpoint {
remote-endpoint = <&xbar_admaif12_ep>;
};
};
admaif13_port: port@d {
reg = <0xd>;
admaif13_ep: endpoint {
remote-endpoint = <&xbar_admaif13_ep>;
};
};
admaif14_port: port@e {
reg = <0xe>;
admaif14_ep: endpoint {
remote-endpoint = <&xbar_admaif14_ep>;
};
};
admaif15_port: port@f {
reg = <0xf>;
admaif15_ep: endpoint {
remote-endpoint = <&xbar_admaif15_ep>;
};
};
admaif16_port: port@10 {
reg = <0x10>;
admaif16_ep: endpoint {
remote-endpoint = <&xbar_admaif16_ep>;
};
};
admaif17_port: port@11 {
reg = <0x11>;
admaif17_ep: endpoint {
remote-endpoint = <&xbar_admaif17_ep>;
};
};
admaif18_port: port@12 {
reg = <0x12>;
admaif18_ep: endpoint {
remote-endpoint = <&xbar_admaif18_ep>;
};
};
admaif19_port: port@13 {
reg = <0x13>;
admaif19_ep: endpoint {
remote-endpoint = <&xbar_admaif19_ep>;
};
};
};
};
i2s@2901000 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
i2s1_cif_ep: endpoint {
remote-endpoint = <&xbar_i2s1_ep>;
};
};
i2s1_port: port@1 {
reg = <1>;
i2s1_dap_ep: endpoint {
dai-format = "i2s";
remote-endpoint = <&rt5658_ep>;
};
};
};
};
i2s@2901100 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
i2s2_cif_ep: endpoint {
remote-endpoint = <&xbar_i2s2_ep>;
};
};
i2s2_port: port@1 {
reg = <1>;
i2s2_dap_ep: endpoint {
dai-format = "i2s";
/* Place holder for external Codec */
};
};
};
};
i2s@2901300 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
i2s4_cif_ep: endpoint {
remote-endpoint = <&xbar_i2s4_ep>;
};
};
i2s4_port: port@1 {
reg = <1>;
i2s4_dap_ep: endpoint {
dai-format = "i2s";
/* Place holder for external Codec */
};
};
};
};
i2s@2901500 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
i2s6_cif_ep: endpoint {
remote-endpoint = <&xbar_i2s6_ep>;
};
};
i2s6_port: port@1 {
reg = <1>;
i2s6_dap_ep: endpoint@0 {
dai-format = "i2s";
/* Place holder for external Codec */
};
};
};
};
dmic@2904200 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dmic3_cif_ep: endpoint {
remote-endpoint = <&xbar_dmic3_ep>;
};
};
dmic3_port: port@1 {
reg = <1>;
dmic3_dap_ep: endpoint {
/* Place holder for external Codec */
};
};
};
};
};
};
i2c@3160000 {
eeprom@56 {
compatible = "atmel,24c02";
reg = <0x56>;
label = "system";
vcc-supply = <&vdd_1v8ls>;
address-width = <8>;
pagesize = <8>;
size = <256>;
read-only;
};
};
ddc: i2c@31c0000 {
status = "okay";
};
/* SDMMC1 (SD/MMC) */
mmc@3400000 {
status = "okay";
};
hda@3510000 {
nvidia,model = "NVIDIA Jetson AGX Xavier HDA";
status = "okay";
};
padctl@3520000 {
status = "okay";
pads {
usb2 {
lanes {
usb2-0 {
status = "okay";
};
usb2-1 {
status = "okay";
};
usb2-3 {
status = "okay";
};
};
};
usb3 {
lanes {
usb3-0 {
status = "okay";
};
usb3-2 {
status = "okay";
};
usb3-3 {
status = "okay";
};
};
};
};
ports {
usb2-0 {
mode = "host";
status = "okay";
};
usb2-1 {
mode = "host";
status = "okay";
};
usb2-3 {
mode = "host";
status = "okay";
};
usb3-0 {
nvidia,usb2-companion = <1>;
status = "okay";
};
usb3-2 {
nvidia,usb2-companion = <0>;
status = "okay";
};
usb3-3 {
nvidia,usb2-companion = <3>;
maximum-speed = "super-speed";
status = "okay";
};
};
};
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-3}>,
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>,
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-3}>;
phy-names = "usb2-0", "usb2-1", "usb2-3", "usb3-0", "usb3-2", "usb3-3";
};
i2c@c250000 {
status = "okay";
rt5658: audio-codec@1a {
status = "okay";
compatible = "realtek,rt5658";
reg = <0x1a>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA194_MAIN_GPIO(S, 5) GPIO_ACTIVE_HIGH>;
clocks = <&bpmp TEGRA194_CLK_AUD_MCLK>;
clock-names = "mclk";
realtek,jd-src = <2>;
sound-name-prefix = "CVB-RT";
port {
rt5658_ep: endpoint {
remote-endpoint = <&i2s1_dap_ep>;
mclk-fs = <256>;
};
};
};
};
pwm@c340000 {
status = "okay";
};
host1x@13e00000 {
display-hub@15200000 {
status = "okay";
};
dpaux@155c0000 {
status = "okay";
};
dpaux@155d0000 {
status = "okay";
};
dpaux@155e0000 {
status = "okay";
};
/* DP0 */
sor@15b00000 {
status = "okay";
avdd-io-hdmi-dp-supply = <&vdd_1v0>;
vdd-hdmi-dp-pll-supply = <&vdd_1v8hs>;
nvidia,dpaux = <&dpaux0>;
};
/* DP1 */
sor@15b40000 {
status = "okay";
avdd-io-hdmi-dp-supply = <&vdd_1v0>;
vdd-hdmi-dp-pll-supply = <&vdd_1v8hs>;
nvidia,dpaux = <&dpaux1>;
};
/* HDMI */
sor@15b80000 {
status = "okay";
avdd-io-hdmi-dp-supply = <&vdd_1v0>;
vdd-hdmi-dp-pll-supply = <&vdd_1v8hs>;
hdmi-supply = <&vdd_hdmi>;
nvidia,ddc-i2c-bus = <&ddc>;
nvidia,hpd-gpio = <&gpio TEGRA194_MAIN_GPIO(M, 2)
GPIO_ACTIVE_LOW>;
};
};
};
pcie@14100000 {
status = "okay";
vddio-pex-ctl-supply = <&vdd_1v8ao>;
phys = <&p2u_hsio_0>;
phy-names = "p2u-0";
};
pcie@14140000 {
status = "okay";
vddio-pex-ctl-supply = <&vdd_1v8ao>;
phys = <&p2u_hsio_7>;
phy-names = "p2u-0";
};
pcie@14180000 {
status = "okay";
vddio-pex-ctl-supply = <&vdd_1v8ao>;
phys = <&p2u_hsio_2>, <&p2u_hsio_3>, <&p2u_hsio_4>,
<&p2u_hsio_5>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
};
pcie@141a0000 {
status = "okay";
vddio-pex-ctl-supply = <&vdd_1v8ao>;
vpcie3v3-supply = <&vdd_3v3_pcie>;
vpcie12v-supply = <&vdd_12v_pcie>;
phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
<&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
<&p2u_nvhs_6>, <&p2u_nvhs_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
"p2u-5", "p2u-6", "p2u-7";
};
pcie_ep@141a0000 {
status = "disabled";
vddio-pex-ctl-supply = <&vdd_1v8ao>;
reset-gpios = <&gpio TEGRA194_MAIN_GPIO(GG, 1) GPIO_ACTIVE_LOW>;
nvidia,refclk-select-gpios = <&gpio_aon TEGRA194_AON_GPIO(AA, 5)
GPIO_ACTIVE_HIGH>;
phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
<&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
<&p2u_nvhs_6>, <&p2u_nvhs_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
"p2u-5", "p2u-6", "p2u-7";
};
fan: fan {
compatible = "pwm-fan";
pwms = <&pwm4 0 45334>;
cooling-levels = <0 64 128 255>;
#cooling-cells = <2>;
};
gpio-keys {
compatible = "gpio-keys";
force-recovery {
label = "Force Recovery";
gpios = <&gpio TEGRA194_MAIN_GPIO(G, 0)
GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
linux,code = <KEY_SLEEP>;
debounce-interval = <10>;
};
power {
label = "Power";
gpios = <&gpio_aon TEGRA194_AON_GPIO(EE, 4)
GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
linux,code = <KEY_POWER>;
debounce-interval = <10>;
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source;
};
};
sound {
compatible = "nvidia,tegra186-audio-graph-card";
status = "okay";
dais = /* ADMAIF (FE) Ports */
<&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
<&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>,
<&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>,
<&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>,
<&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>,
/* XBAR Ports */
<&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s4_port>,
<&xbar_i2s6_port>, <&xbar_dmic3_port>,
/* BE I/O Ports */
<&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
<&dmic3_port>;
label = "NVIDIA Jetson AGX Xavier APE";
widgets =
"Microphone", "CVB-RT MIC Jack",
"Microphone", "CVB-RT MIC",
"Headphone", "CVB-RT HP Jack",
"Speaker", "CVB-RT SPK";
routing =
/* I2S1 <-> RT5658 */
"CVB-RT AIF1 Playback", "I2S1 DAP-Playback",
"I2S1 DAP-Capture", "CVB-RT AIF1 Capture",
/* RT5658 Codec controls */
"CVB-RT HP Jack", "CVB-RT HPO L Playback",
"CVB-RT HP Jack", "CVB-RT HPO R Playback",
"CVB-RT IN1P", "CVB-RT MIC Jack",
"CVB-RT IN2P", "CVB-RT MIC Jack",
"CVB-RT SPK", "CVB-RT SPO Playback",
"CVB-RT DMIC L1", "CVB-RT MIC",
"CVB-RT DMIC L2", "CVB-RT MIC",
"CVB-RT DMIC R1", "CVB-RT MIC",
"CVB-RT DMIC R2", "CVB-RT MIC";
};
thermal-zones {
cpu {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
cpu_trip_critical: critical {
temperature = <96500>;
hysteresis = <0>;
type = "critical";
};
cpu_trip_hot: hot {
temperature = <70000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active: active {
temperature = <50000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_passive: passive {
temperature = <30000>;
hysteresis = <2000>;
type = "passive";
};
};
cooling-maps {
cpu-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
cpu-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
cpu-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
cpu-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
};
};
gpu {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
gpu_alert0: critical {
temperature = <99000>;
hysteresis = <0>;
type = "critical";
};
};
};
aux {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
aux_alert0: critical {
temperature = <90000>;
hysteresis = <0>;
type = "critical";
};
};
};
};
};