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				status = "okay";
198			};
199		};
200	};
201
202	usb@3530000 {
203		status = "okay";
204
205		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
206		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
207		       <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>;
208		phy-names = "usb2-0", "usb2-1", "usb3-0";
209	};
210
211	usb@3550000 {
212		status = "okay";
213
214		phys = <&micro_b>;
215		phy-names = "usb2-0";
216	};
217
218	i2c@c250000 {
219		/* carrier board ID EEPROM */
220		eeprom@57 {
221			compatible = "atmel,24c02";
222			reg = <0x57>;
223
224			vcc-supply = <&vdd_1v8>;
225			address-bits = <8>;
226			page-size = <8>;
227			size = <256>;
228			read-only;
229		};
230	};
231
232	pcie@10003000 {
233		status = "okay";
234
235		dvdd-pex-supply = <&vdd_pex>;
236		hvdd-pex-pll-supply = <&vdd_1v8>;
237		hvdd-pex-supply = <&vdd_1v8>;
238		vddio-pexctl-aud-supply = <&vdd_1v8>;
239
240		pci@1,0 {
241			nvidia,num-lanes = <4>;
242			status = "okay";
243		};
244
245		pci@2,0 {
246			nvidia,num-lanes = <0>;
247			status = "disabled";
248		};
249
250		pci@3,0 {
251			nvidia,num-lanes = <1>;
252			status = "disabled";
253		};
254	};
255
256	host1x@13e00000 {
257		status = "okay";
258
259		dpaux@15040000 {
260			status = "okay";
261		};
262
263		display-hub@15200000 {
264			status = "okay";
265		};
266
267		dsi@15300000 {
268			status = "disabled";
269		};
270
271		/* DP on E3320 */
272		sor@15540000 {
273			status = "okay";
274
275			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
276			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
277
278			nvidia,dpaux = <&dpaux>;
279		};
280
281		sor@15580000 {
282			status = "okay";
283
284			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
285			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
286			hdmi-supply = <&vdd_hdmi>;
287
288			nvidia,ddc-i2c-bus = <&ddc>;
289			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
290						 GPIO_ACTIVE_LOW>;
291		};
292
293		dpaux@155c0000 {
294			status = "okay";
295		};
296	};
297
298	gpio-keys {
299		compatible = "gpio-keys";
300
301		power {
302			label = "Power";
303			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
304					   GPIO_ACTIVE_LOW>;
305			linux,input-type = <EV_KEY>;
306			linux,code = <KEY_POWER>;
307			debounce-interval = <10>;
308			wakeup-event-action = <EV_ACT_ASSERTED>;
309			wakeup-source;
310		};
311
312		volume-up {
313			label = "Volume Up";
314			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
315					   GPIO_ACTIVE_LOW>;
316			linux,input-type = <EV_KEY>;
317			linux,code = <KEY_VOLUMEUP>;
318			debounce-interval = <10>;
319		};
320
321		volume-down {
322			label = "Volume Down";
323			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
324					   GPIO_ACTIVE_LOW>;
325			linux,input-type = <EV_KEY>;
326			linux,code = <KEY_VOLUMEDOWN>;
327			debounce-interval = <10>;
328		};
329	};
330
331	vdd_sd: regulator@100 {
332		compatible = "regulator-fixed";
333		regulator-name = "SD_CARD_SW_PWR";
334		regulator-min-microvolt = <3300000>;
335		regulator-max-microvolt = <3300000>;
336
337		gpio = <&gpio TEGRA186_MAIN_GPIO(P, 6) GPIO_ACTIVE_HIGH>;
338		enable-active-high;
339
340		vin-supply = <&vdd_3v3_sys>;
341	};
342
343	vdd_hdmi: regulator@101 {
344		compatible = "regulator-fixed";
345		regulator-name = "VDD_HDMI_5V0";
346		regulator-min-microvolt = <5000000>;
347		regulator-max-microvolt = <5000000>;
348
349		gpio = <&exp1 14 GPIO_ACTIVE_HIGH>;
350		enable-active-high;
351
352		vin-supply = <&vdd_5v0_sys>;
353	};
354
355	vdd_usb0: regulator@102 {
356		compatible = "regulator-fixed";
357		regulator-name = "VDD_USB0";
358		regulator-min-microvolt = <5000000>;
359		regulator-max-microvolt = <5000000>;
360
361		gpio = <&gpio TEGRA186_MAIN_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
362		enable-active-high;
363
364		vin-supply = <&vdd_5v0_sys>;
365	};
366
367	vdd_usb1: regulator@103 {
368		compatible = "regulator-fixed";
369		regulator-name = "VDD_USB1";
370		regulator-min-microvolt = <5000000>;
371		regulator-max-microvolt = <5000000>;
372
373		gpio = <&gpio TEGRA186_MAIN_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
374		enable-active-high;
375
376		vin-supply = <&vdd_5v0_sys>;
377	};
378};
379