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