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