1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/input/linux-event-codes.h>
5#include <dt-bindings/input/gpio-keys.h>
6
7#include "tegra186-p3310.dtsi"
8
9/ {
10	model = "NVIDIA Jetson TX2 Developer Kit";
11	compatible = "nvidia,p2771-0000", "nvidia,tegra186";
12
13	aconnect {
14		status = "okay";
15
16		dma-controller@2930000 {
17			status = "okay";
18		};
19
20		interrupt-controller@2a40000 {
21			status = "okay";
22		};
23	};
24
25	i2c@3160000 {
26		power-monitor@42 {
27			compatible = "ti,ina3221";
28			reg = <0x42>;
29			#address-cells = <1>;
30			#size-cells = <0>;
31
32			channel@0 {
33				reg = <0x0>;
34				label = "VDD_MUX";
35				shunt-resistor-micro-ohms = <20000>;
36			};
37
38			channel@1 {
39				reg = <0x1>;
40				label = "VDD_5V0_IO_SYS";
41				shunt-resistor-micro-ohms = <5000>;
42			};
43
44			channel@2 {
45				reg = <0x2>;
46				label = "VDD_3V3_SYS";
47				shunt-resistor-micro-ohms = <10000>;
48			};
49		};
50
51		power-monitor@43 {
52			compatible = "ti,ina3221";
53			reg = <0x43>;
54			#address-cells = <1>;
55			#size-cells = <0>;
56
57			channel@0 {
58				reg = <0x0>;
59				label = "VDD_3V3_IO_SLP";
60				shunt-resistor-micro-ohms = <10000>;
61			};
62
63			channel@1 {
64				reg = <0x1>;
65				label = "VDD_1V8_IO";
66				shunt-resistor-micro-ohms = <10000>;
67			};
68
69			channel@2 {
70				reg = <0x2>;
71				label = "VDD_M2_IN";
72				shunt-resistor-micro-ohms = <10000>;
73			};
74		};
75
76		exp1: gpio@74 {
77			compatible = "ti,tca9539";
78			reg = <0x74>;
79
80			interrupt-parent = <&gpio>;
81			interrupts = <TEGRA186_MAIN_GPIO(Y, 0)
82				      GPIO_ACTIVE_LOW>;
83
84			#gpio-cells = <2>;
85			gpio-controller;
86
87			vcc-supply = <&vdd_3v3_sys>;
88		};
89
90		exp2: gpio@77 {
91			compatible = "ti,tca9539";
92			reg = <0x77>;
93
94			interrupt-parent = <&gpio>;
95			interrupts = <TEGRA186_MAIN_GPIO(Y, 6)
96				      GPIO_ACTIVE_LOW>;
97
98			#gpio-cells = <2>;
99			gpio-controller;
100
101			vcc-supply = <&vdd_1v8>;
102		};
103	};
104
105	/* SDMMC1 (SD/MMC) */
106	mmc@3400000 {
107		status = "okay";
108
109		vmmc-supply = <&vdd_sd>;
110	};
111
112	hda@3510000 {
113		nvidia,model = "jetson-tx2-hda";
114		status = "okay";
115	};
116
117	padctl@3520000 {
118		status = "okay";
119
120		avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
121		avdd-usb-supply = <&vdd_3v3_sys>;
122		vclamp-usb-supply = <&vdd_1v8>;
123		vddio-hsic-supply = <&gnd>;
124
125		pads {
126			usb2 {
127				status = "okay";
128
129				lanes {
130					micro_b: usb2-0 {
131						nvidia,function = "xusb";
132						status = "okay";
133					};
134
135					usb2-1 {
136						nvidia,function = "xusb";
137						status = "okay";
138					};
139
140					usb2-2 {
141						nvidia,function = "xusb";
142						status = "okay";
143					};
144				};
145			};
146
147			usb3 {
148				status = "okay";
149
150				lanes {
151					usb3-0 {
152						nvidia,function = "xusb";
153						status = "okay";
154					};
155
156					usb3-1 {
157						nvidia,function = "xusb";
158						status = "okay";
159					};
160
161					usb3-2 {
162						nvidia,function = "xusb";
163						status = "okay";
164					};
165				};
166			};
167		};
168
169		ports {
170			usb2-0 {
171				status = "okay";
172				mode = "otg";
173				vbus-supply = <&vdd_usb0>;
174				usb-role-switch;
175
176				connector {
177					compatible = "gpio-usb-b-connector",
178						     "usb-b-connector";
179					label = "micro-USB";
180					type = "micro";
181					vbus-gpios = <&gpio
182						      TEGRA186_MAIN_GPIO(X, 7)
183						      GPIO_ACTIVE_LOW>;
184					id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>;
185				};
186			};
187
188			usb2-1 {
189				status = "okay";
190				mode = "host";
191
192				vbus-supply = <&vdd_usb1>;
193			};
194
195			usb3-0 {
196				nvidia,usb2-companion = <1>;
197				vbus-supply = <&vdd_usb1>;
198				status = "okay";
199			};
200		};
201	};
202
203	usb@3530000 {
204		status = "okay";
205
206		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
207		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
208		       <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>;
209		phy-names = "usb2-0", "usb2-1", "usb3-0";
210	};
211
212	usb@3550000 {
213		status = "okay";
214
215		phys = <&micro_b>;
216		phy-names = "usb2-0";
217	};
218
219	i2c@c250000 {
220		/* carrier board ID EEPROM */
221		eeprom@57 {
222			compatible = "atmel,24c02";
223			reg = <0x57>;
224
225			label = "system";
226			vcc-supply = <&vdd_1v8>;
227			address-width = <8>;
228			pagesize = <8>;
229			size = <256>;
230			read-only;
231		};
232	};
233
234	pcie@10003000 {
235		status = "okay";
236
237		dvdd-pex-supply = <&vdd_pex>;
238		hvdd-pex-pll-supply = <&vdd_1v8>;
239		hvdd-pex-supply = <&vdd_1v8>;
240		vddio-pexctl-aud-supply = <&vdd_1v8>;
241
242		pci@1,0 {
243			nvidia,num-lanes = <4>;
244			status = "okay";
245		};
246
247		pci@2,0 {
248			nvidia,num-lanes = <0>;
249			status = "disabled";
250		};
251
252		pci@3,0 {
253			nvidia,num-lanes = <1>;
254			status = "disabled";
255		};
256	};
257
258	host1x@13e00000 {
259		status = "okay";
260
261		dpaux@15040000 {
262			status = "okay";
263		};
264
265		display-hub@15200000 {
266			status = "okay";
267		};
268
269		dsi@15300000 {
270			status = "disabled";
271		};
272
273		/* DP on E3320 */
274		sor@15540000 {
275			status = "okay";
276
277			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
278			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
279
280			nvidia,dpaux = <&dpaux>;
281		};
282
283		sor@15580000 {
284			status = "okay";
285
286			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
287			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
288			hdmi-supply = <&vdd_hdmi>;
289
290			nvidia,ddc-i2c-bus = <&ddc>;
291			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
292						 GPIO_ACTIVE_LOW>;
293		};
294
295		dpaux@155c0000 {
296			status = "okay";
297		};
298	};
299
300	sata@3507000 {
301		status = "okay";
302	};
303
304	gpio-keys {
305		compatible = "gpio-keys";
306
307		power {
308			label = "Power";
309			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
310					   GPIO_ACTIVE_LOW>;
311			linux,input-type = <EV_KEY>;
312			linux,code = <KEY_POWER>;
313			debounce-interval = <10>;
314			wakeup-event-action = <EV_ACT_ASSERTED>;
315			wakeup-source;
316		};
317
318		volume-up {
319			label = "Volume Up";
320			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
321					   GPIO_ACTIVE_LOW>;
322			linux,input-type = <EV_KEY>;
323			linux,code = <KEY_VOLUMEUP>;
324			debounce-interval = <10>;
325		};
326
327		volume-down {
328			label = "Volume Down";
329			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
330					   GPIO_ACTIVE_LOW>;
331			linux,input-type = <EV_KEY>;
332			linux,code = <KEY_VOLUMEDOWN>;
333			debounce-interval = <10>;
334		};
335	};
336
337	vdd_sd: regulator@100 {
338		compatible = "regulator-fixed";
339		regulator-name = "SD_CARD_SW_PWR";
340		regulator-min-microvolt = <3300000>;
341		regulator-max-microvolt = <3300000>;
342
343		gpio = <&gpio TEGRA186_MAIN_GPIO(P, 6) GPIO_ACTIVE_HIGH>;
344		enable-active-high;
345
346		vin-supply = <&vdd_3v3_sys>;
347	};
348
349	vdd_hdmi: regulator@101 {
350		compatible = "regulator-fixed";
351		regulator-name = "VDD_HDMI_5V0";
352		regulator-min-microvolt = <5000000>;
353		regulator-max-microvolt = <5000000>;
354
355		gpio = <&exp1 14 GPIO_ACTIVE_HIGH>;
356		enable-active-high;
357
358		vin-supply = <&vdd_5v0_sys>;
359	};
360
361	vdd_usb0: regulator@102 {
362		compatible = "regulator-fixed";
363		regulator-name = "VDD_USB0";
364		regulator-min-microvolt = <5000000>;
365		regulator-max-microvolt = <5000000>;
366
367		gpio = <&gpio TEGRA186_MAIN_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
368		enable-active-high;
369
370		vin-supply = <&vdd_5v0_sys>;
371	};
372
373	vdd_usb1: regulator@103 {
374		compatible = "regulator-fixed";
375		regulator-name = "VDD_USB1";
376		regulator-min-microvolt = <5000000>;
377		regulator-max-microvolt = <5000000>;
378
379		gpio = <&gpio TEGRA186_MAIN_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
380		enable-active-high;
381
382		vin-supply = <&vdd_5v0_sys>;
383	};
384};
385