xref: /openbmc/linux/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi (revision b0e55fef624e511e060fa05e4ca96cae6d902f04)
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			address-bits = <8>;
175			page-size = <8>;
176			size = <256>;
177			read-only;
178		};
179	};
180
181	rtc@c2a0000 {
182		status = "okay";
183	};
184
185	pmc@c360000 {
186		nvidia,invert-interrupt;
187	};
188
189	cpus {
190		cpu@0 {
191			enable-method = "psci";
192		};
193
194		cpu@1 {
195			enable-method = "psci";
196		};
197
198		cpu@2 {
199			enable-method = "psci";
200		};
201
202		cpu@3 {
203			enable-method = "psci";
204		};
205
206		cpu@4 {
207			enable-method = "psci";
208		};
209
210		cpu@5 {
211			enable-method = "psci";
212		};
213	};
214
215	bpmp {
216		i2c {
217			status = "okay";
218
219			pmic: pmic@3c {
220				compatible = "maxim,max77620";
221				reg = <0x3c>;
222
223				interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
224				#interrupt-cells = <2>;
225				interrupt-controller;
226
227				#gpio-cells = <2>;
228				gpio-controller;
229
230				pinctrl-names = "default";
231				pinctrl-0 = <&max77620_default>;
232
233				max77620_default: pinmux {
234					gpio0 {
235						pins = "gpio0";
236						function = "gpio";
237					};
238
239					gpio1 {
240						pins = "gpio1";
241						function = "fps-out";
242						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
243					};
244
245					gpio2 {
246						pins = "gpio2";
247						function = "fps-out";
248						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
249					};
250
251					gpio3 {
252						pins = "gpio3";
253						function = "fps-out";
254						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
255					};
256
257					gpio4 {
258						pins = "gpio4";
259						function = "32k-out1";
260						drive-push-pull = <1>;
261					};
262
263					gpio5 {
264						pins = "gpio5";
265						function = "gpio";
266						drive-push-pull = <0>;
267					};
268
269					gpio6 {
270						pins = "gpio6";
271						function = "gpio";
272						drive-push-pull = <1>;
273					};
274
275					gpio7 {
276						pins = "gpio7";
277						function = "gpio";
278						drive-push-pull = <0>;
279					};
280				};
281
282				fps {
283					fps0 {
284						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
285						maxim,shutdown-fps-time-period-us = <640>;
286					};
287
288					fps1 {
289						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
290						maxim,shutdown-fps-time-period-us = <640>;
291					};
292
293					fps2 {
294						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
295						maxim,shutdown-fps-time-period-us = <640>;
296					};
297				};
298
299				regulators {
300					in-sd0-supply = <&vdd_5v0_sys>;
301					in-sd1-supply = <&vdd_5v0_sys>;
302					in-sd2-supply = <&vdd_5v0_sys>;
303					in-sd3-supply = <&vdd_5v0_sys>;
304
305					in-ldo0-1-supply = <&vdd_5v0_sys>;
306					in-ldo2-supply = <&vdd_5v0_sys>;
307					in-ldo3-5-supply = <&vdd_5v0_sys>;
308					in-ldo4-6-supply = <&vdd_1v8>;
309					in-ldo7-8-supply = <&avdd_dsi_csi>;
310
311					sd0 {
312						regulator-name = "VDD_DDR_1V1_PMIC";
313						regulator-min-microvolt = <1100000>;
314						regulator-max-microvolt = <1100000>;
315						regulator-always-on;
316						regulator-boot-on;
317					};
318
319					avdd_dsi_csi: sd1 {
320						regulator-name = "AVDD_DSI_CSI_1V2";
321						regulator-min-microvolt = <1200000>;
322						regulator-max-microvolt = <1200000>;
323					};
324
325					vdd_1v8: sd2 {
326						regulator-name = "VDD_1V8";
327						regulator-min-microvolt = <1800000>;
328						regulator-max-microvolt = <1800000>;
329					};
330
331					vdd_3v3_sys: sd3 {
332						regulator-name = "VDD_3V3_SYS";
333						regulator-min-microvolt = <3300000>;
334						regulator-max-microvolt = <3300000>;
335					};
336
337					vdd_1v8_pll: ldo0 {
338						regulator-name = "VDD_1V8_AP_PLL";
339						regulator-min-microvolt = <1800000>;
340						regulator-max-microvolt = <1800000>;
341					};
342
343					ldo2 {
344						regulator-name = "VDDIO_3V3_AOHV";
345						regulator-min-microvolt = <3300000>;
346						regulator-max-microvolt = <3300000>;
347						regulator-always-on;
348						regulator-boot-on;
349					};
350
351					vddio_sdmmc1: ldo3 {
352						regulator-name = "VDDIO_SDMMC1_AP";
353						regulator-min-microvolt = <1800000>;
354						regulator-max-microvolt = <3300000>;
355					};
356
357					ldo4 {
358						regulator-name = "VDD_RTC";
359						regulator-min-microvolt = <1000000>;
360						regulator-max-microvolt = <1000000>;
361					};
362
363					vddio_sdmmc3: ldo5 {
364						regulator-name = "VDDIO_SDMMC3_AP";
365						regulator-min-microvolt = <2800000>;
366						regulator-max-microvolt = <2800000>;
367					};
368
369					vdd_hdmi_1v05: ldo7 {
370						regulator-name = "VDD_HDMI_1V05";
371						regulator-min-microvolt = <1050000>;
372						regulator-max-microvolt = <1050000>;
373					};
374
375					vdd_pex: ldo8 {
376						regulator-name = "VDD_PEX_1V05";
377						regulator-min-microvolt = <1050000>;
378						regulator-max-microvolt = <1050000>;
379					};
380				};
381			};
382		};
383	};
384
385	psci {
386		compatible = "arm,psci-1.0";
387		status = "okay";
388		method = "smc";
389	};
390
391	regulators {
392		compatible = "simple-bus";
393		#address-cells = <1>;
394		#size-cells = <0>;
395
396		gnd: regulator@0 {
397			compatible = "regulator-fixed";
398			reg = <0>;
399
400			regulator-name = "GND";
401			regulator-min-microvolt = <0>;
402			regulator-max-microvolt = <0>;
403			regulator-always-on;
404			regulator-boot-on;
405		};
406
407		vdd_5v0_sys: regulator@1 {
408			compatible = "regulator-fixed";
409			reg = <1>;
410
411			regulator-name = "VDD_5V0_SYS";
412			regulator-min-microvolt = <5000000>;
413			regulator-max-microvolt = <5000000>;
414			regulator-always-on;
415			regulator-boot-on;
416		};
417
418		vdd_1v8_ap: regulator@2 {
419			compatible = "regulator-fixed";
420			reg = <2>;
421
422			regulator-name = "VDD_1V8_AP";
423			regulator-min-microvolt = <1800000>;
424			regulator-max-microvolt = <1800000>;
425
426			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
427			enable-active-high;
428
429			vin-supply = <&vdd_1v8>;
430		};
431	};
432};
433