1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
299575bceSJoseph Lo/dts-v1/;
399575bceSJoseph Lo
459686a92SThierry Reding#include <dt-bindings/input/linux-event-codes.h>
56f13f10bSThierry Reding#include <dt-bindings/input/gpio-keys.h>
659686a92SThierry Reding
799575bceSJoseph Lo#include "tegra186-p3310.dtsi"
899575bceSJoseph Lo
999575bceSJoseph Lo/ {
10a0c0cdc9SThierry Reding	model = "NVIDIA Jetson TX2 Developer Kit";
1199575bceSJoseph Lo	compatible = "nvidia,p2771-0000", "nvidia,tegra186";
12b0ddea85SThierry Reding
139a182db4SSameer Pujar	aconnect {
149a182db4SSameer Pujar		status = "okay";
159a182db4SSameer Pujar
169a182db4SSameer Pujar		dma-controller@2930000 {
179a182db4SSameer Pujar			status = "okay";
189a182db4SSameer Pujar		};
199a182db4SSameer Pujar
209a182db4SSameer Pujar		interrupt-controller@2a40000 {
219a182db4SSameer Pujar			status = "okay";
229a182db4SSameer Pujar		};
239a182db4SSameer Pujar	};
249a182db4SSameer Pujar
25b693b3d7SThierry Reding	i2c@3160000 {
26b693b3d7SThierry Reding		power-monitor@42 {
27b693b3d7SThierry Reding			compatible = "ti,ina3221";
28b693b3d7SThierry Reding			reg = <0x42>;
2908c7c74bSNicolin Chen			#address-cells = <1>;
3008c7c74bSNicolin Chen			#size-cells = <0>;
3108c7c74bSNicolin Chen
3208c7c74bSNicolin Chen			channel@0 {
3308c7c74bSNicolin Chen				reg = <0x0>;
3408c7c74bSNicolin Chen				label = "VDD_MUX";
3508c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <20000>;
3608c7c74bSNicolin Chen			};
3708c7c74bSNicolin Chen
3808c7c74bSNicolin Chen			channel@1 {
3908c7c74bSNicolin Chen				reg = <0x1>;
4008c7c74bSNicolin Chen				label = "VDD_5V0_IO_SYS";
4108c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <5000>;
4208c7c74bSNicolin Chen			};
4308c7c74bSNicolin Chen
4408c7c74bSNicolin Chen			channel@2 {
4508c7c74bSNicolin Chen				reg = <0x2>;
4608c7c74bSNicolin Chen				label = "VDD_3V3_SYS";
4708c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <10000>;
4808c7c74bSNicolin Chen			};
49b693b3d7SThierry Reding		};
50b693b3d7SThierry Reding
51b693b3d7SThierry Reding		power-monitor@43 {
52b693b3d7SThierry Reding			compatible = "ti,ina3221";
53b693b3d7SThierry Reding			reg = <0x43>;
5408c7c74bSNicolin Chen			#address-cells = <1>;
5508c7c74bSNicolin Chen			#size-cells = <0>;
5608c7c74bSNicolin Chen
5708c7c74bSNicolin Chen			channel@0 {
5808c7c74bSNicolin Chen				reg = <0x0>;
5908c7c74bSNicolin Chen				label = "VDD_3V3_IO_SLP";
6008c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <10000>;
6108c7c74bSNicolin Chen			};
6208c7c74bSNicolin Chen
6308c7c74bSNicolin Chen			channel@1 {
6408c7c74bSNicolin Chen				reg = <0x1>;
6508c7c74bSNicolin Chen				label = "VDD_1V8_IO";
6608c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <10000>;
6708c7c74bSNicolin Chen			};
6808c7c74bSNicolin Chen
6908c7c74bSNicolin Chen			channel@2 {
7008c7c74bSNicolin Chen				reg = <0x2>;
7108c7c74bSNicolin Chen				label = "VDD_M2_IN";
7208c7c74bSNicolin Chen				shunt-resistor-micro-ohms = <10000>;
7308c7c74bSNicolin Chen			};
74b693b3d7SThierry Reding		};
75b27d5250SThierry Reding
76b27d5250SThierry Reding		exp1: gpio@74 {
77b27d5250SThierry Reding			compatible = "ti,tca9539";
78b27d5250SThierry Reding			reg = <0x74>;
79b27d5250SThierry Reding
80b27d5250SThierry Reding			interrupt-parent = <&gpio>;
81d428f35dSThierry Reding			interrupts = <TEGRA186_MAIN_GPIO(Y, 0)
82d428f35dSThierry Reding				      GPIO_ACTIVE_LOW>;
83b27d5250SThierry Reding
84b27d5250SThierry Reding			#gpio-cells = <2>;
85b27d5250SThierry Reding			gpio-controller;
86c4502cc3SThierry Reding
87c4502cc3SThierry Reding			vcc-supply = <&vdd_3v3_sys>;
88b27d5250SThierry Reding		};
89b27d5250SThierry Reding
90b27d5250SThierry Reding		exp2: gpio@77 {
91b27d5250SThierry Reding			compatible = "ti,tca9539";
92b27d5250SThierry Reding			reg = <0x77>;
93b27d5250SThierry Reding
94b27d5250SThierry Reding			interrupt-parent = <&gpio>;
95d428f35dSThierry Reding			interrupts = <TEGRA186_MAIN_GPIO(Y, 6)
96d428f35dSThierry Reding				      GPIO_ACTIVE_LOW>;
97b27d5250SThierry Reding
98b27d5250SThierry Reding			#gpio-cells = <2>;
99b27d5250SThierry Reding			gpio-controller;
100c4502cc3SThierry Reding
101c4502cc3SThierry Reding			vcc-supply = <&vdd_1v8>;
102b27d5250SThierry Reding		};
103b693b3d7SThierry Reding	};
104b693b3d7SThierry Reding
105b0ddea85SThierry Reding	/* SDMMC1 (SD/MMC) */
10667bb17f6SThierry Reding	mmc@3400000 {
107b0ddea85SThierry Reding		status = "okay";
108b0ddea85SThierry Reding
109b0ddea85SThierry Reding		vmmc-supply = <&vdd_sd>;
110b0ddea85SThierry Reding	};
111b0ddea85SThierry Reding
1127c3adf12SThierry Reding	hda@3510000 {
11311ce4308SSameer Pujar		nvidia,model = "jetson-tx2-hda";
1147c3adf12SThierry Reding		status = "okay";
1157c3adf12SThierry Reding	};
1167c3adf12SThierry Reding
11772f8ae3fSThierry Reding	padctl@3520000 {
118ca2b8ee4SNagarjuna Kristam		status = "okay";
11972f8ae3fSThierry Reding
12072f8ae3fSThierry Reding		avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
12172f8ae3fSThierry Reding		avdd-usb-supply = <&vdd_3v3_sys>;
12272f8ae3fSThierry Reding		dvdd-pex-supply = <&vdd_pex>;
12372f8ae3fSThierry Reding		dvdd-pex-pll-supply = <&vdd_pex>;
12472f8ae3fSThierry Reding		hvdd-pex-supply = <&vdd_1v8>;
12572f8ae3fSThierry Reding		hvdd-pex-pll-supply = <&vdd_1v8>;
12672f8ae3fSThierry Reding		vclamp-usb-supply = <&vdd_1v8>;
12772f8ae3fSThierry Reding		vddio-hsic-supply = <&gnd>;
12872f8ae3fSThierry Reding
12972f8ae3fSThierry Reding		pads {
13072f8ae3fSThierry Reding			usb2 {
13172f8ae3fSThierry Reding				status = "okay";
13272f8ae3fSThierry Reding
13372f8ae3fSThierry Reding				lanes {
1340edc0202SNagarjuna Kristam					micro_b: usb2-0 {
13572f8ae3fSThierry Reding						nvidia,function = "xusb";
13672f8ae3fSThierry Reding						status = "okay";
13772f8ae3fSThierry Reding					};
13872f8ae3fSThierry Reding
13972f8ae3fSThierry Reding					usb2-1 {
14072f8ae3fSThierry Reding						nvidia,function = "xusb";
14172f8ae3fSThierry Reding						status = "okay";
14272f8ae3fSThierry Reding					};
14372f8ae3fSThierry Reding
14472f8ae3fSThierry Reding					usb2-2 {
14572f8ae3fSThierry Reding						nvidia,function = "xusb";
14672f8ae3fSThierry Reding						status = "okay";
14772f8ae3fSThierry Reding					};
14872f8ae3fSThierry Reding				};
14972f8ae3fSThierry Reding			};
15072f8ae3fSThierry Reding
15172f8ae3fSThierry Reding			usb3 {
15272f8ae3fSThierry Reding				status = "okay";
15372f8ae3fSThierry Reding
15472f8ae3fSThierry Reding				lanes {
15572f8ae3fSThierry Reding					usb3-0 {
15672f8ae3fSThierry Reding						nvidia,function = "xusb";
15772f8ae3fSThierry Reding						status = "okay";
15872f8ae3fSThierry Reding					};
15972f8ae3fSThierry Reding
16072f8ae3fSThierry Reding					usb3-1 {
16172f8ae3fSThierry Reding						nvidia,function = "xusb";
16272f8ae3fSThierry Reding						status = "okay";
16372f8ae3fSThierry Reding					};
16472f8ae3fSThierry Reding
16572f8ae3fSThierry Reding					usb3-2 {
16672f8ae3fSThierry Reding						nvidia,function = "xusb";
16772f8ae3fSThierry Reding						status = "okay";
16872f8ae3fSThierry Reding					};
16972f8ae3fSThierry Reding				};
17072f8ae3fSThierry Reding			};
17172f8ae3fSThierry Reding		};
17272f8ae3fSThierry Reding
17372f8ae3fSThierry Reding		ports {
17472f8ae3fSThierry Reding			usb2-0 {
17572f8ae3fSThierry Reding				status = "okay";
17672f8ae3fSThierry Reding				mode = "otg";
17772f8ae3fSThierry Reding				vbus-supply = <&vdd_usb0>;
1786895c83fSNagarjuna Kristam
1796895c83fSNagarjuna Kristam				usb-role-switch;
1806895c83fSNagarjuna Kristam				connector {
1816895c83fSNagarjuna Kristam					compatible = "usb-b-connector",
1826895c83fSNagarjuna Kristam						     "gpio-usb-b-connector";
1836895c83fSNagarjuna Kristam					label = "micro-USB";
1846895c83fSNagarjuna Kristam					type = "micro";
1856895c83fSNagarjuna Kristam					vbus-gpio = <&gpio
1866895c83fSNagarjuna Kristam						     TEGRA186_MAIN_GPIO(X, 7)
1876895c83fSNagarjuna Kristam						     GPIO_ACTIVE_LOW>;
1886895c83fSNagarjuna Kristam					id-gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
1896895c83fSNagarjuna Kristam				};
1906895c83fSNagarjuna Kristam
19172f8ae3fSThierry Reding			};
19272f8ae3fSThierry Reding
19372f8ae3fSThierry Reding			usb2-1 {
19472f8ae3fSThierry Reding				status = "okay";
19572f8ae3fSThierry Reding				mode = "host";
19672f8ae3fSThierry Reding
19772f8ae3fSThierry Reding				vbus-supply = <&vdd_usb1>;
19872f8ae3fSThierry Reding			};
19972f8ae3fSThierry Reding
20072f8ae3fSThierry Reding			usb3-0 {
20172f8ae3fSThierry Reding				nvidia,usb2-companion = <1>;
20272f8ae3fSThierry Reding				status = "okay";
20372f8ae3fSThierry Reding			};
20472f8ae3fSThierry Reding		};
20572f8ae3fSThierry Reding	};
20672f8ae3fSThierry Reding
20772f8ae3fSThierry Reding	usb@3530000 {
208488a04d4SNagarjuna Kristam		status = "okay";
20972f8ae3fSThierry Reding
21072f8ae3fSThierry Reding		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
21172f8ae3fSThierry Reding		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
21272f8ae3fSThierry Reding		       <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>;
21372f8ae3fSThierry Reding		phy-names = "usb2-0", "usb2-1", "usb3-0";
21472f8ae3fSThierry Reding	};
21572f8ae3fSThierry Reding
2160edc0202SNagarjuna Kristam	usb@3550000 {
2170edc0202SNagarjuna Kristam		status = "okay";
2180edc0202SNagarjuna Kristam
2190edc0202SNagarjuna Kristam		phys = <&micro_b>;
2200edc0202SNagarjuna Kristam		phy-names = "usb2-0";
2210edc0202SNagarjuna Kristam	};
2220edc0202SNagarjuna Kristam
2235205abd2SThierry Reding	i2c@c250000 {
2245205abd2SThierry Reding		/* carrier board ID EEPROM */
2255205abd2SThierry Reding		eeprom@57 {
2265205abd2SThierry Reding			compatible = "atmel,24c02";
2275205abd2SThierry Reding			reg = <0x57>;
2285205abd2SThierry Reding
229ec5fd197SJon Hunter			vcc-supply = <&vdd_1v8>;
2305205abd2SThierry Reding			address-bits = <8>;
2315205abd2SThierry Reding			page-size = <8>;
2325205abd2SThierry Reding			size = <256>;
2335205abd2SThierry Reding			read-only;
2345205abd2SThierry Reding		};
2355205abd2SThierry Reding	};
2365205abd2SThierry Reding
23789b469ccSManikanta Maddireddy	pcie@10003000 {
23889b469ccSManikanta Maddireddy		status = "okay";
23989b469ccSManikanta Maddireddy
24089b469ccSManikanta Maddireddy		dvdd-pex-supply = <&vdd_pex>;
24189b469ccSManikanta Maddireddy		hvdd-pex-pll-supply = <&vdd_1v8>;
24289b469ccSManikanta Maddireddy		hvdd-pex-supply = <&vdd_1v8>;
24389b469ccSManikanta Maddireddy		vddio-pexctl-aud-supply = <&vdd_1v8>;
24489b469ccSManikanta Maddireddy
24589b469ccSManikanta Maddireddy		pci@1,0 {
24689b469ccSManikanta Maddireddy			nvidia,num-lanes = <4>;
24789b469ccSManikanta Maddireddy			status = "okay";
24889b469ccSManikanta Maddireddy		};
24989b469ccSManikanta Maddireddy
25089b469ccSManikanta Maddireddy		pci@2,0 {
25189b469ccSManikanta Maddireddy			nvidia,num-lanes = <0>;
25289b469ccSManikanta Maddireddy			status = "disabled";
25389b469ccSManikanta Maddireddy		};
25489b469ccSManikanta Maddireddy
25589b469ccSManikanta Maddireddy		pci@3,0 {
25689b469ccSManikanta Maddireddy			nvidia,num-lanes = <1>;
25789b469ccSManikanta Maddireddy			status = "disabled";
25889b469ccSManikanta Maddireddy		};
25989b469ccSManikanta Maddireddy	};
26089b469ccSManikanta Maddireddy
26136328505SThierry Reding	host1x@13e00000 {
26236328505SThierry Reding		status = "okay";
26336328505SThierry Reding
26436328505SThierry Reding		dpaux@15040000 {
26536328505SThierry Reding			status = "okay";
26636328505SThierry Reding		};
26736328505SThierry Reding
26836328505SThierry Reding		display-hub@15200000 {
26936328505SThierry Reding			status = "okay";
27036328505SThierry Reding		};
27136328505SThierry Reding
27236328505SThierry Reding		dsi@15300000 {
27336328505SThierry Reding			status = "disabled";
27436328505SThierry Reding		};
27536328505SThierry Reding
2763fdfaf87SThierry Reding		/* DP on E3320 */
27736328505SThierry Reding		sor@15540000 {
2783fdfaf87SThierry Reding			status = "okay";
27936328505SThierry Reding
2803fdfaf87SThierry Reding			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
2815f4ade92SJon Hunter			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
2823fdfaf87SThierry Reding
2833fdfaf87SThierry Reding			nvidia,dpaux = <&dpaux>;
28436328505SThierry Reding		};
28536328505SThierry Reding
28636328505SThierry Reding		sor@15580000 {
28736328505SThierry Reding			status = "okay";
28836328505SThierry Reding
289e8931a27SThierry Reding			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
290e8931a27SThierry Reding			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
29136328505SThierry Reding			hdmi-supply = <&vdd_hdmi>;
29236328505SThierry Reding
29336328505SThierry Reding			nvidia,ddc-i2c-bus = <&ddc>;
294d428f35dSThierry Reding			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
295d428f35dSThierry Reding						 GPIO_ACTIVE_LOW>;
29636328505SThierry Reding		};
29736328505SThierry Reding
29836328505SThierry Reding		dpaux@155c0000 {
29936328505SThierry Reding			status = "okay";
30036328505SThierry Reding		};
30136328505SThierry Reding	};
30236328505SThierry Reding
30359686a92SThierry Reding	gpio-keys {
30459686a92SThierry Reding		compatible = "gpio-keys";
30559686a92SThierry Reding
30659686a92SThierry Reding		power {
30759686a92SThierry Reding			label = "Power";
308d428f35dSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
30959686a92SThierry Reding					   GPIO_ACTIVE_LOW>;
31059686a92SThierry Reding			linux,input-type = <EV_KEY>;
31159686a92SThierry Reding			linux,code = <KEY_POWER>;
31259686a92SThierry Reding			debounce-interval = <10>;
3136f13f10bSThierry Reding			wakeup-event-action = <EV_ACT_ASSERTED>;
31459686a92SThierry Reding			wakeup-source;
31559686a92SThierry Reding		};
31659686a92SThierry Reding
31759686a92SThierry Reding		volume-up {
31859686a92SThierry Reding			label = "Volume Up";
319d428f35dSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
32059686a92SThierry Reding					   GPIO_ACTIVE_LOW>;
32159686a92SThierry Reding			linux,input-type = <EV_KEY>;
32259686a92SThierry Reding			linux,code = <KEY_VOLUMEUP>;
32359686a92SThierry Reding			debounce-interval = <10>;
32459686a92SThierry Reding		};
32559686a92SThierry Reding
32659686a92SThierry Reding		volume-down {
32759686a92SThierry Reding			label = "Volume Down";
328d428f35dSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
32959686a92SThierry Reding					   GPIO_ACTIVE_LOW>;
33059686a92SThierry Reding			linux,input-type = <EV_KEY>;
33159686a92SThierry Reding			linux,code = <KEY_VOLUMEDOWN>;
33259686a92SThierry Reding			debounce-interval = <10>;
33359686a92SThierry Reding		};
33459686a92SThierry Reding	};
33559686a92SThierry Reding
336b0ddea85SThierry Reding	regulators {
337b0ddea85SThierry Reding		vdd_sd: regulator@100 {
338b0ddea85SThierry Reding			compatible = "regulator-fixed";
339b0ddea85SThierry Reding			reg = <100>;
340b0ddea85SThierry Reding
341b0ddea85SThierry Reding			regulator-name = "SD_CARD_SW_PWR";
342b0ddea85SThierry Reding			regulator-min-microvolt = <3300000>;
343b0ddea85SThierry Reding			regulator-max-microvolt = <3300000>;
344b0ddea85SThierry Reding
345d428f35dSThierry Reding			gpio = <&gpio TEGRA186_MAIN_GPIO(P, 6)
346d428f35dSThierry Reding				      GPIO_ACTIVE_HIGH>;
347b0ddea85SThierry Reding			enable-active-high;
348b0ddea85SThierry Reding
349b0ddea85SThierry Reding			vin-supply = <&vdd_3v3_sys>;
350b0ddea85SThierry Reding		};
35136328505SThierry Reding
35236328505SThierry Reding		vdd_hdmi: regulator@101 {
35336328505SThierry Reding			compatible = "regulator-fixed";
35436328505SThierry Reding			reg = <101>;
35536328505SThierry Reding
35636328505SThierry Reding			regulator-name = "VDD_HDMI_5V0";
35736328505SThierry Reding			regulator-min-microvolt = <5000000>;
35836328505SThierry Reding			regulator-max-microvolt = <5000000>;
35936328505SThierry Reding
36036328505SThierry Reding			gpio = <&exp1 14 GPIO_ACTIVE_HIGH>;
36136328505SThierry Reding			enable-active-high;
36236328505SThierry Reding
36336328505SThierry Reding			vin-supply = <&vdd_5v0_sys>;
36436328505SThierry Reding		};
36572f8ae3fSThierry Reding
36672f8ae3fSThierry Reding		vdd_usb0: regulator@102 {
36772f8ae3fSThierry Reding			compatible = "regulator-fixed";
36872f8ae3fSThierry Reding			reg = <102>;
36972f8ae3fSThierry Reding
37072f8ae3fSThierry Reding			regulator-name = "VDD_USB0";
37172f8ae3fSThierry Reding			regulator-min-microvolt = <5000000>;
37272f8ae3fSThierry Reding			regulator-max-microvolt = <5000000>;
37372f8ae3fSThierry Reding
3742db4a1a5SThierry Reding			gpio = <&gpio TEGRA186_MAIN_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
37572f8ae3fSThierry Reding			enable-active-high;
37672f8ae3fSThierry Reding
37772f8ae3fSThierry Reding			vin-supply = <&vdd_5v0_sys>;
37872f8ae3fSThierry Reding		};
37972f8ae3fSThierry Reding
38072f8ae3fSThierry Reding		vdd_usb1: regulator@103 {
38172f8ae3fSThierry Reding			compatible = "regulator-fixed";
38272f8ae3fSThierry Reding			reg = <103>;
38372f8ae3fSThierry Reding
38472f8ae3fSThierry Reding			regulator-name = "VDD_USB1";
38572f8ae3fSThierry Reding			regulator-min-microvolt = <5000000>;
38672f8ae3fSThierry Reding			regulator-max-microvolt = <5000000>;
38772f8ae3fSThierry Reding
3882db4a1a5SThierry Reding			gpio = <&gpio TEGRA186_MAIN_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
38972f8ae3fSThierry Reding			enable-active-high;
39072f8ae3fSThierry Reding
39172f8ae3fSThierry Reding			vin-supply = <&vdd_5v0_sys>;
39272f8ae3fSThierry Reding		};
393b0ddea85SThierry Reding	};
39499575bceSJoseph Lo};
395