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				interrupt-parent = <&pmc>;
225				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
226				#interrupt-cells = <2>;
227				interrupt-controller;
228
229				#gpio-cells = <2>;
230				gpio-controller;
231
232				pinctrl-names = "default";
233				pinctrl-0 = <&max77620_default>;
234
235				max77620_default: pinmux {
236					gpio0 {
237						pins = "gpio0";
238						function = "gpio";
239					};
240
241					gpio1 {
242						pins = "gpio1";
243						function = "fps-out";
244						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
245					};
246
247					gpio2 {
248						pins = "gpio2";
249						function = "fps-out";
250						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
251					};
252
253					gpio3 {
254						pins = "gpio3";
255						function = "fps-out";
256						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
257					};
258
259					gpio4 {
260						pins = "gpio4";
261						function = "32k-out1";
262						drive-push-pull = <1>;
263					};
264
265					gpio5 {
266						pins = "gpio5";
267						function = "gpio";
268						drive-push-pull = <0>;
269					};
270
271					gpio6 {
272						pins = "gpio6";
273						function = "gpio";
274						drive-push-pull = <1>;
275					};
276
277					gpio7 {
278						pins = "gpio7";
279						function = "gpio";
280						drive-push-pull = <0>;
281					};
282				};
283
284				fps {
285					fps0 {
286						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
287						maxim,shutdown-fps-time-period-us = <640>;
288					};
289
290					fps1 {
291						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
292						maxim,shutdown-fps-time-period-us = <640>;
293					};
294
295					fps2 {
296						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
297						maxim,shutdown-fps-time-period-us = <640>;
298					};
299				};
300
301				regulators {
302					in-sd0-supply = <&vdd_5v0_sys>;
303					in-sd1-supply = <&vdd_5v0_sys>;
304					in-sd2-supply = <&vdd_5v0_sys>;
305					in-sd3-supply = <&vdd_5v0_sys>;
306
307					in-ldo0-1-supply = <&vdd_5v0_sys>;
308					in-ldo2-supply = <&vdd_5v0_sys>;
309					in-ldo3-5-supply = <&vdd_5v0_sys>;
310					in-ldo4-6-supply = <&vdd_1v8>;
311					in-ldo7-8-supply = <&avdd_dsi_csi>;
312
313					sd0 {
314						regulator-name = "VDD_DDR_1V1_PMIC";
315						regulator-min-microvolt = <1100000>;
316						regulator-max-microvolt = <1100000>;
317						regulator-always-on;
318						regulator-boot-on;
319					};
320
321					avdd_dsi_csi: sd1 {
322						regulator-name = "AVDD_DSI_CSI_1V2";
323						regulator-min-microvolt = <1200000>;
324						regulator-max-microvolt = <1200000>;
325					};
326
327					vdd_1v8: sd2 {
328						regulator-name = "VDD_1V8";
329						regulator-min-microvolt = <1800000>;
330						regulator-max-microvolt = <1800000>;
331					};
332
333					vdd_3v3_sys: sd3 {
334						regulator-name = "VDD_3V3_SYS";
335						regulator-min-microvolt = <3300000>;
336						regulator-max-microvolt = <3300000>;
337					};
338
339					vdd_1v8_pll: ldo0 {
340						regulator-name = "VDD_1V8_AP_PLL";
341						regulator-min-microvolt = <1800000>;
342						regulator-max-microvolt = <1800000>;
343					};
344
345					ldo2 {
346						regulator-name = "VDDIO_3V3_AOHV";
347						regulator-min-microvolt = <3300000>;
348						regulator-max-microvolt = <3300000>;
349						regulator-always-on;
350						regulator-boot-on;
351					};
352
353					vddio_sdmmc1: ldo3 {
354						regulator-name = "VDDIO_SDMMC1_AP";
355						regulator-min-microvolt = <1800000>;
356						regulator-max-microvolt = <3300000>;
357					};
358
359					ldo4 {
360						regulator-name = "VDD_RTC";
361						regulator-min-microvolt = <1000000>;
362						regulator-max-microvolt = <1000000>;
363					};
364
365					vddio_sdmmc3: ldo5 {
366						regulator-name = "VDDIO_SDMMC3_AP";
367						regulator-min-microvolt = <2800000>;
368						regulator-max-microvolt = <2800000>;
369					};
370
371					vdd_hdmi_1v05: ldo7 {
372						regulator-name = "VDD_HDMI_1V05";
373						regulator-min-microvolt = <1050000>;
374						regulator-max-microvolt = <1050000>;
375					};
376
377					vdd_pex: ldo8 {
378						regulator-name = "VDD_PEX_1V05";
379						regulator-min-microvolt = <1050000>;
380						regulator-max-microvolt = <1050000>;
381					};
382				};
383			};
384		};
385	};
386
387	psci {
388		compatible = "arm,psci-1.0";
389		status = "okay";
390		method = "smc";
391	};
392
393	regulators {
394		compatible = "simple-bus";
395		#address-cells = <1>;
396		#size-cells = <0>;
397
398		gnd: regulator@0 {
399			compatible = "regulator-fixed";
400			reg = <0>;
401
402			regulator-name = "GND";
403			regulator-min-microvolt = <0>;
404			regulator-max-microvolt = <0>;
405			regulator-always-on;
406			regulator-boot-on;
407		};
408
409		vdd_5v0_sys: regulator@1 {
410			compatible = "regulator-fixed";
411			reg = <1>;
412
413			regulator-name = "VDD_5V0_SYS";
414			regulator-min-microvolt = <5000000>;
415			regulator-max-microvolt = <5000000>;
416			regulator-always-on;
417			regulator-boot-on;
418		};
419
420		vdd_1v8_ap: regulator@2 {
421			compatible = "regulator-fixed";
422			reg = <2>;
423
424			regulator-name = "VDD_1V8_AP";
425			regulator-min-microvolt = <1800000>;
426			regulator-max-microvolt = <1800000>;
427
428			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
429			enable-active-high;
430
431			vin-supply = <&vdd_1v8>;
432		};
433	};
434};
435