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