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