// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include #include #include "tegra186-p3310.dtsi" / { model = "NVIDIA Jetson TX2 Developer Kit"; compatible = "nvidia,p2771-0000", "nvidia,tegra186"; aconnect { 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_i2s3_port: port@16 { reg = <0x16>; xbar_i2s3_ep: endpoint { remote-endpoint = <&i2s3_cif_ep>; }; }; xbar_i2s4_port: port@17 { reg = <0x17>; xbar_i2s4_ep: endpoint { remote-endpoint = <&i2s4_cif_ep>; }; }; xbar_i2s5_port: port@18 { reg = <0x18>; xbar_i2s5_ep: endpoint { remote-endpoint = <&i2s5_cif_ep>; }; }; xbar_i2s6_port: port@19 { reg = <0x19>; xbar_i2s6_ep: endpoint { remote-endpoint = <&i2s6_cif_ep>; }; }; xbar_dmic1_port: port@1a { reg = <0x1a>; xbar_dmic1_ep: endpoint { remote-endpoint = <&dmic1_cif_ep>; }; }; xbar_dmic2_port: port@1b { reg = <0x1b>; xbar_dmic2_ep: endpoint { remote-endpoint = <&dmic2_cif_ep>; }; }; xbar_dmic3_port: port@1c { reg = <0x1c>; xbar_dmic3_ep: endpoint { remote-endpoint = <&dmic3_cif_ep>; }; }; xbar_dspk1_port: port@1e { reg = <0x1e>; xbar_dspk1_ep: endpoint { remote-endpoint = <&dspk1_cif_ep>; }; }; xbar_dspk2_port: port@1f { reg = <0x1f>; xbar_dspk2_ep: endpoint { remote-endpoint = <&dspk2_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"; /* Placeholder for external Codec */ }; }; }; }; 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"; /* Placeholder for external Codec */ }; }; }; }; i2s@2901200 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; i2s3_cif_ep: endpoint { remote-endpoint = <&xbar_i2s3_ep>; }; }; i2s3_port: port@1 { reg = <1>; i2s3_dap_ep: endpoint { dai-format = "i2s"; /* Placeholder 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"; /* Placeholder for external Codec */ }; }; }; }; i2s@2901400 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; i2s5_cif_ep: endpoint { remote-endpoint = <&xbar_i2s5_ep>; }; }; i2s5_port: port@1 { reg = <1>; i2s5_dap_ep: endpoint { dai-format = "i2s"; /* Placeholder 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 { dai-format = "i2s"; /* Placeholder for external Codec */ }; }; }; }; dmic@2904000 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dmic1_cif_ep: endpoint { remote-endpoint = <&xbar_dmic1_ep>; }; }; dmic1_port: port@1 { reg = <1>; dmic1_dap_ep: endpoint { /* Place holder for external Codec */ }; }; }; }; dmic@2904100 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dmic2_cif_ep: endpoint { remote-endpoint = <&xbar_dmic2_ep>; }; }; dmic2_port: port@1 { reg = <1>; dmic2_dap_ep: endpoint { /* 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 */ }; }; }; }; dspk@2905000 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dspk1_cif_ep: endpoint { remote-endpoint = <&xbar_dspk1_ep>; }; }; dspk1_port: port@1 { reg = <1>; dspk1_dap_ep: endpoint { /* Place holder for external Codec */ }; }; }; }; dspk@2905100 { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dspk2_cif_ep: endpoint { remote-endpoint = <&xbar_dspk2_ep>; }; }; dspk2_port: port@1 { reg = <1>; dspk2_dap_ep: endpoint { /* Place holder for external Codec */ }; }; }; }; }; }; i2c@3160000 { power-monitor@42 { compatible = "ti,ina3221"; reg = <0x42>; #address-cells = <1>; #size-cells = <0>; channel@0 { reg = <0x0>; label = "VDD_MUX"; shunt-resistor-micro-ohms = <20000>; }; channel@1 { reg = <0x1>; label = "VDD_5V0_IO_SYS"; shunt-resistor-micro-ohms = <5000>; }; channel@2 { reg = <0x2>; label = "VDD_3V3_SYS"; shunt-resistor-micro-ohms = <10000>; }; }; power-monitor@43 { compatible = "ti,ina3221"; reg = <0x43>; #address-cells = <1>; #size-cells = <0>; channel@0 { reg = <0x0>; label = "VDD_3V3_IO_SLP"; shunt-resistor-micro-ohms = <10000>; }; channel@1 { reg = <0x1>; label = "VDD_1V8_IO"; shunt-resistor-micro-ohms = <10000>; }; channel@2 { reg = <0x2>; label = "VDD_M2_IN"; shunt-resistor-micro-ohms = <10000>; }; }; exp1: gpio@74 { compatible = "ti,tca9539"; reg = <0x74>; interrupt-parent = <&gpio>; interrupts = ; #gpio-cells = <2>; gpio-controller; vcc-supply = <&vdd_3v3_sys>; }; exp2: gpio@77 { compatible = "ti,tca9539"; reg = <0x77>; interrupt-parent = <&gpio>; interrupts = ; #gpio-cells = <2>; gpio-controller; vcc-supply = <&vdd_1v8>; }; }; /* SDMMC1 (SD/MMC) */ mmc@3400000 { status = "okay"; vmmc-supply = <&vdd_sd>; }; hda@3510000 { nvidia,model = "jetson-tx2-hda"; status = "okay"; }; padctl@3520000 { status = "okay"; avdd-pll-erefeut-supply = <&vdd_1v8_pll>; avdd-usb-supply = <&vdd_3v3_sys>; vclamp-usb-supply = <&vdd_1v8>; vddio-hsic-supply = <&gnd>; pads { usb2 { status = "okay"; lanes { micro_b: usb2-0 { nvidia,function = "xusb"; status = "okay"; }; usb2-1 { nvidia,function = "xusb"; status = "okay"; }; usb2-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; usb3 { status = "okay"; lanes { usb3-0 { nvidia,function = "xusb"; status = "okay"; }; usb3-1 { nvidia,function = "xusb"; status = "okay"; }; usb3-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; }; ports { usb2-0 { status = "okay"; mode = "otg"; vbus-supply = <&vdd_usb0>; usb-role-switch; connector { compatible = "gpio-usb-b-connector", "usb-b-connector"; label = "micro-USB"; type = "micro"; vbus-gpios = <&gpio TEGRA186_MAIN_GPIO(X, 7) GPIO_ACTIVE_LOW>; id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>; }; }; usb2-1 { status = "okay"; mode = "host"; vbus-supply = <&vdd_usb1>; }; usb3-0 { nvidia,usb2-companion = <1>; vbus-supply = <&vdd_usb1>; status = "okay"; }; }; }; usb@3530000 { status = "okay"; phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>, <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>; phy-names = "usb2-0", "usb2-1", "usb3-0"; }; usb@3550000 { status = "okay"; phys = <µ_b>; phy-names = "usb2-0"; }; i2c@c250000 { /* carrier board ID EEPROM */ eeprom@57 { compatible = "atmel,24c02"; reg = <0x57>; label = "system"; vcc-supply = <&vdd_1v8>; address-width = <8>; pagesize = <8>; size = <256>; read-only; }; }; pcie@10003000 { status = "okay"; dvdd-pex-supply = <&vdd_pex>; hvdd-pex-pll-supply = <&vdd_1v8>; hvdd-pex-supply = <&vdd_1v8>; vddio-pexctl-aud-supply = <&vdd_1v8>; pci@1,0 { nvidia,num-lanes = <4>; status = "okay"; }; pci@2,0 { nvidia,num-lanes = <0>; status = "disabled"; }; pci@3,0 { nvidia,num-lanes = <1>; status = "disabled"; }; }; host1x@13e00000 { status = "okay"; dpaux@15040000 { status = "okay"; }; display-hub@15200000 { status = "okay"; }; dsi@15300000 { status = "disabled"; }; /* DP on E3320 */ sor@15540000 { status = "okay"; avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>; vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>; nvidia,dpaux = <&dpaux>; }; sor@15580000 { status = "okay"; avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>; vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>; hdmi-supply = <&vdd_hdmi>; nvidia,ddc-i2c-bus = <&ddc>; nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1) GPIO_ACTIVE_LOW>; }; dpaux@155c0000 { status = "okay"; }; }; sata@3507000 { status = "okay"; }; gpio-keys { compatible = "gpio-keys"; power { label = "Power"; gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0) GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; debounce-interval = <10>; wakeup-event-action = ; wakeup-source; }; volume-up { label = "Volume Up"; gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1) GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; debounce-interval = <10>; }; volume-down { label = "Volume Down"; gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2) GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; debounce-interval = <10>; }; }; vdd_sd: regulator@100 { compatible = "regulator-fixed"; regulator-name = "SD_CARD_SW_PWR"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio TEGRA186_MAIN_GPIO(P, 6) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_3v3_sys>; }; vdd_hdmi: regulator@101 { compatible = "regulator-fixed"; regulator-name = "VDD_HDMI_5V0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&exp1 14 GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_5v0_sys>; }; vdd_usb0: regulator@102 { compatible = "regulator-fixed"; regulator-name = "VDD_USB0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio TEGRA186_MAIN_GPIO(L, 4) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_5v0_sys>; }; vdd_usb1: regulator@103 { compatible = "regulator-fixed"; regulator-name = "VDD_USB1"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio TEGRA186_MAIN_GPIO(L, 5) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_5v0_sys>; }; sound { compatible = "nvidia,tegra186-audio-graph-card"; status = "okay"; dais = /* FE */ <&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>, /* Router */ <&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s3_port>, <&xbar_i2s4_port>, <&xbar_i2s5_port>, <&xbar_i2s6_port>, <&xbar_dmic1_port>, <&xbar_dmic2_port>, <&xbar_dmic3_port>, <&xbar_dspk1_port>, <&xbar_dspk2_port>, /* I/O */ <&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>, <&i2s5_port>, <&i2s6_port>, <&dmic1_port>, <&dmic2_port>, <&dmic3_port>, <&dspk1_port>, <&dspk2_port>; label = "jetson-tx2-ape"; }; };