1// SPDX-License-Identifier: GPL-2.0
2#include "tegra186.dtsi"
3
4#include <dt-bindings/mfd/max77620.h>
5
6/ {
7	model = "NVIDIA Jetson TX2";
8	compatible = "nvidia,p3310", "nvidia,tegra186";
9
10	aliases {
11		sdhci0 = "/sdhci@3460000";
12		sdhci1 = "/sdhci@3400000";
13		serial0 = &uarta;
14		i2c0 = "/bpmp/i2c";
15		i2c1 = "/i2c@3160000";
16		i2c2 = "/i2c@c240000";
17		i2c3 = "/i2c@3180000";
18		i2c4 = "/i2c@3190000";
19		i2c5 = "/i2c@31c0000";
20		i2c6 = "/i2c@c250000";
21		i2c7 = "/i2c@31e0000";
22	};
23
24	chosen {
25		bootargs = "earlycon console=ttyS0,115200n8";
26		stdout-path = "serial0:115200n8";
27	};
28
29	memory {
30		device_type = "memory";
31		reg = <0x0 0x80000000 0x2 0x00000000>;
32	};
33
34	ethernet@2490000 {
35		status = "okay";
36
37		phy-reset-gpios = <&gpio TEGRA186_MAIN_GPIO(M, 4)
38					 GPIO_ACTIVE_LOW>;
39		phy-handle = <&phy>;
40		phy-mode = "rgmii";
41
42		mdio {
43			#address-cells = <1>;
44			#size-cells = <0>;
45
46			phy: phy@0 {
47				compatible = "ethernet-phy-ieee802.3-c22";
48				reg = <0x0>;
49				interrupt-parent = <&gpio>;
50				interrupts = <TEGRA186_MAIN_GPIO(M, 5)
51					      IRQ_TYPE_LEVEL_LOW>;
52			};
53		};
54	};
55
56	memory-controller@2c00000 {
57		status = "okay";
58	};
59
60	serial@3100000 {
61		status = "okay";
62	};
63
64	i2c@3160000 {
65		status = "okay";
66
67		power-monitor@40 {
68			compatible = "ti,ina3221";
69			reg = <0x40>;
70			#address-cells = <1>;
71			#size-cells = <0>;
72
73			channel@0 {
74				reg = <0x0>;
75				label = "VDD_SYS_GPU";
76				shunt-resistor-micro-ohms = <10000>;
77			};
78
79			channel@1 {
80				reg = <0x1>;
81				label = "VDD_SYS_SOC";
82				shunt-resistor-micro-ohms = <10000>;
83			};
84
85			channel@2 {
86				reg = <0x2>;
87				label = "VDD_3V8_WIFI";
88				shunt-resistor-micro-ohms = <10000>;
89			};
90		};
91
92		power-monitor@41 {
93			compatible = "ti,ina3221";
94			reg = <0x41>;
95			#address-cells = <1>;
96			#size-cells = <0>;
97
98			channel@0 {
99				reg = <0x0>;
100				label = "VDD_IN";
101				shunt-resistor-micro-ohms = <5000>;
102			};
103
104			channel@1 {
105				reg = <0x1>;
106				label = "VDD_SYS_CPU";
107				shunt-resistor-micro-ohms = <10000>;
108			};
109
110			channel@2 {
111				reg = <0x2>;
112				label = "VDD_5V0_DDR";
113				shunt-resistor-micro-ohms = <10000>;
114			};
115		};
116	};
117
118	i2c@3180000 {
119		status = "okay";
120	};
121
122	ddc: i2c@3190000 {
123		status = "okay";
124	};
125
126	i2c@31c0000 {
127		status = "okay";
128	};
129
130	i2c@31e0000 {
131		status = "okay";
132	};
133
134	/* SDMMC1 (SD/MMC) */
135	sdhci@3400000 {
136		cd-gpios = <&gpio TEGRA186_MAIN_GPIO(P, 5) GPIO_ACTIVE_LOW>;
137		wp-gpios = <&gpio TEGRA186_MAIN_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
138
139		vqmmc-supply = <&vddio_sdmmc1>;
140	};
141
142	/* SDMMC3 (SDIO) */
143	sdhci@3440000 {
144		status = "okay";
145	};
146
147	/* SDMMC4 (eMMC) */
148	sdhci@3460000 {
149		status = "okay";
150		bus-width = <8>;
151		non-removable;
152
153		vqmmc-supply = <&vdd_1v8_ap>;
154		vmmc-supply = <&vdd_3v3_sys>;
155	};
156
157	hsp@3c00000 {
158		status = "okay";
159	};
160
161	i2c@c240000 {
162		status = "okay";
163	};
164
165	i2c@c250000 {
166		status = "okay";
167
168		/* module ID EEPROM */
169		eeprom@50 {
170			compatible = "atmel,24c02";
171			reg = <0x50>;
172
173			address-bits = <8>;
174			page-size = <8>;
175			size = <256>;
176			read-only;
177		};
178	};
179
180	rtc@c2a0000 {
181		status = "okay";
182	};
183
184	pmc@c360000 {
185		nvidia,invert-interrupt;
186	};
187
188	cpus {
189		cpu@0 {
190			enable-method = "psci";
191		};
192
193		cpu@1 {
194			enable-method = "psci";
195		};
196
197		cpu@2 {
198			enable-method = "psci";
199		};
200
201		cpu@3 {
202			enable-method = "psci";
203		};
204
205		cpu@4 {
206			enable-method = "psci";
207		};
208
209		cpu@5 {
210			enable-method = "psci";
211		};
212	};
213
214	bpmp {
215		i2c {
216			status = "okay";
217
218			pmic: pmic@3c {
219				compatible = "maxim,max77620";
220				reg = <0x3c>;
221
222				interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
223				#interrupt-cells = <2>;
224				interrupt-controller;
225
226				#gpio-cells = <2>;
227				gpio-controller;
228
229				pinctrl-names = "default";
230				pinctrl-0 = <&max77620_default>;
231
232				max77620_default: pinmux {
233					gpio0 {
234						pins = "gpio0";
235						function = "gpio";
236					};
237
238					gpio1 {
239						pins = "gpio1";
240						function = "fps-out";
241						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
242					};
243
244					gpio2 {
245						pins = "gpio2";
246						function = "fps-out";
247						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
248					};
249
250					gpio3 {
251						pins = "gpio3";
252						function = "fps-out";
253						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
254					};
255
256					gpio4 {
257						pins = "gpio4";
258						function = "32k-out1";
259						drive-push-pull = <1>;
260					};
261
262					gpio5 {
263						pins = "gpio5";
264						function = "gpio";
265						drive-push-pull = <0>;
266					};
267
268					gpio6 {
269						pins = "gpio6";
270						function = "gpio";
271						drive-push-pull = <1>;
272					};
273
274					gpio7 {
275						pins = "gpio7";
276						function = "gpio";
277						drive-push-pull = <0>;
278					};
279				};
280
281				fps {
282					fps0 {
283						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
284						maxim,shutdown-fps-time-period-us = <640>;
285					};
286
287					fps1 {
288						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
289						maxim,shutdown-fps-time-period-us = <640>;
290					};
291
292					fps2 {
293						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
294						maxim,shutdown-fps-time-period-us = <640>;
295					};
296				};
297
298				regulators {
299					in-sd0-supply = <&vdd_5v0_sys>;
300					in-sd1-supply = <&vdd_5v0_sys>;
301					in-sd2-supply = <&vdd_5v0_sys>;
302					in-sd3-supply = <&vdd_5v0_sys>;
303
304					in-ldo0-1-supply = <&vdd_5v0_sys>;
305					in-ldo2-supply = <&vdd_5v0_sys>;
306					in-ldo3-5-supply = <&vdd_5v0_sys>;
307					in-ldo4-6-supply = <&vdd_1v8>;
308					in-ldo7-8-supply = <&avdd_dsi_csi>;
309
310					sd0 {
311						regulator-name = "VDD_DDR_1V1_PMIC";
312						regulator-min-microvolt = <1100000>;
313						regulator-max-microvolt = <1100000>;
314						regulator-always-on;
315						regulator-boot-on;
316					};
317
318					avdd_dsi_csi: sd1 {
319						regulator-name = "AVDD_DSI_CSI_1V2";
320						regulator-min-microvolt = <1200000>;
321						regulator-max-microvolt = <1200000>;
322					};
323
324					vdd_1v8: sd2 {
325						regulator-name = "VDD_1V8";
326						regulator-min-microvolt = <1800000>;
327						regulator-max-microvolt = <1800000>;
328					};
329
330					vdd_3v3_sys: sd3 {
331						regulator-name = "VDD_3V3_SYS";
332						regulator-min-microvolt = <3300000>;
333						regulator-max-microvolt = <3300000>;
334					};
335
336					vdd_1v8_pll: ldo0 {
337						regulator-name = "VDD_1V8_AP_PLL";
338						regulator-min-microvolt = <1800000>;
339						regulator-max-microvolt = <1800000>;
340					};
341
342					ldo2 {
343						regulator-name = "VDDIO_3V3_AOHV";
344						regulator-min-microvolt = <3300000>;
345						regulator-max-microvolt = <3300000>;
346						regulator-always-on;
347						regulator-boot-on;
348					};
349
350					vddio_sdmmc1: ldo3 {
351						regulator-name = "VDDIO_SDMMC1_AP";
352						regulator-min-microvolt = <1800000>;
353						regulator-max-microvolt = <3300000>;
354					};
355
356					ldo4 {
357						regulator-name = "VDD_RTC";
358						regulator-min-microvolt = <1000000>;
359						regulator-max-microvolt = <1000000>;
360					};
361
362					vddio_sdmmc3: ldo5 {
363						regulator-name = "VDDIO_SDMMC3_AP";
364						regulator-min-microvolt = <2800000>;
365						regulator-max-microvolt = <2800000>;
366					};
367
368					vdd_hdmi_1v05: ldo7 {
369						regulator-name = "VDD_HDMI_1V05";
370						regulator-min-microvolt = <1050000>;
371						regulator-max-microvolt = <1050000>;
372					};
373
374					vdd_pex: ldo8 {
375						regulator-name = "VDD_PEX_1V05";
376						regulator-min-microvolt = <1050000>;
377						regulator-max-microvolt = <1050000>;
378					};
379				};
380			};
381		};
382	};
383
384	psci {
385		compatible = "arm,psci-1.0";
386		status = "okay";
387		method = "smc";
388	};
389
390	regulators {
391		compatible = "simple-bus";
392		#address-cells = <1>;
393		#size-cells = <0>;
394
395		gnd: regulator@0 {
396			compatible = "regulator-fixed";
397			reg = <0>;
398
399			regulator-name = "GND";
400			regulator-min-microvolt = <0>;
401			regulator-max-microvolt = <0>;
402			regulator-always-on;
403			regulator-boot-on;
404		};
405
406		vdd_5v0_sys: regulator@1 {
407			compatible = "regulator-fixed";
408			reg = <1>;
409
410			regulator-name = "VDD_5V0_SYS";
411			regulator-min-microvolt = <5000000>;
412			regulator-max-microvolt = <5000000>;
413			regulator-always-on;
414			regulator-boot-on;
415		};
416
417		vdd_1v8_ap: regulator@2 {
418			compatible = "regulator-fixed";
419			reg = <2>;
420
421			regulator-name = "VDD_1V8_AP";
422			regulator-min-microvolt = <1800000>;
423			regulator-max-microvolt = <1800000>;
424
425			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
426			enable-active-high;
427
428			vin-supply = <&vdd_1v8>;
429		};
430	};
431};
432