1*8a9dee7eSThierry Reding// SPDX-License-Identifier: GPL-2.0
2*8a9dee7eSThierry Reding/dts-v1/;
3*8a9dee7eSThierry Reding
4*8a9dee7eSThierry Reding#include <dt-bindings/input/linux-event-codes.h>
5*8a9dee7eSThierry Reding#include <dt-bindings/input/gpio-keys.h>
6*8a9dee7eSThierry Reding#include <dt-bindings/mfd/max77620.h>
7*8a9dee7eSThierry Reding
8*8a9dee7eSThierry Reding#include "tegra186.dtsi"
9*8a9dee7eSThierry Reding
10*8a9dee7eSThierry Reding/ {
11*8a9dee7eSThierry Reding	model = "NVIDIA Jetson TX2 NX Developer Kit";
12*8a9dee7eSThierry Reding	compatible = "nvidia,p3509-0000+p3636-0001", "nvidia,tegra186";
13*8a9dee7eSThierry Reding
14*8a9dee7eSThierry Reding	aliases {
15*8a9dee7eSThierry Reding		ethernet0 = "/ethernet@2490000";
16*8a9dee7eSThierry Reding		i2c0 = "/bpmp/i2c";
17*8a9dee7eSThierry Reding		i2c1 = "/i2c@3160000";
18*8a9dee7eSThierry Reding		i2c2 = "/i2c@c240000";
19*8a9dee7eSThierry Reding		i2c3 = "/i2c@3180000";
20*8a9dee7eSThierry Reding		i2c4 = "/i2c@3190000";
21*8a9dee7eSThierry Reding		i2c5 = "/i2c@31c0000";
22*8a9dee7eSThierry Reding		i2c6 = "/i2c@c250000";
23*8a9dee7eSThierry Reding		i2c7 = "/i2c@31e0000";
24*8a9dee7eSThierry Reding		mmc0 = "/mmc@3460000";
25*8a9dee7eSThierry Reding		serial0 = &uarta;
26*8a9dee7eSThierry Reding	};
27*8a9dee7eSThierry Reding
28*8a9dee7eSThierry Reding	chosen {
29*8a9dee7eSThierry Reding		bootargs = "earlycon console=ttyS0,115200n8";
30*8a9dee7eSThierry Reding		stdout-path = "serial0:115200n8";
31*8a9dee7eSThierry Reding	};
32*8a9dee7eSThierry Reding
33*8a9dee7eSThierry Reding	memory@80000000 {
34*8a9dee7eSThierry Reding		device_type = "memory";
35*8a9dee7eSThierry Reding		reg = <0x0 0x80000000 0x0 0x70000000>;
36*8a9dee7eSThierry Reding	};
37*8a9dee7eSThierry Reding
38*8a9dee7eSThierry Reding	ethernet@2490000 {
39*8a9dee7eSThierry Reding		status = "okay";
40*8a9dee7eSThierry Reding
41*8a9dee7eSThierry Reding		phy-reset-gpios = <&gpio_aon TEGRA186_AON_GPIO(AA, 6) GPIO_ACTIVE_LOW>;
42*8a9dee7eSThierry Reding		phy-handle = <&phy>;
43*8a9dee7eSThierry Reding		phy-mode = "rgmii-id";
44*8a9dee7eSThierry Reding
45*8a9dee7eSThierry Reding		mdio {
46*8a9dee7eSThierry Reding			#address-cells = <1>;
47*8a9dee7eSThierry Reding			#size-cells = <0>;
48*8a9dee7eSThierry Reding
49*8a9dee7eSThierry Reding			phy: phy@0 {
50*8a9dee7eSThierry Reding				compatible = "ethernet-phy-ieee802.3-c22";
51*8a9dee7eSThierry Reding				reg = <0x0>;
52*8a9dee7eSThierry Reding				interrupt-parent = <&gpio_aon>;
53*8a9dee7eSThierry Reding				interrupts = <TEGRA186_AON_GPIO(AA, 7) IRQ_TYPE_LEVEL_LOW>;
54*8a9dee7eSThierry Reding				#phy-cells = <0>;
55*8a9dee7eSThierry Reding			};
56*8a9dee7eSThierry Reding		};
57*8a9dee7eSThierry Reding	};
58*8a9dee7eSThierry Reding
59*8a9dee7eSThierry Reding	memory-controller@2c00000 {
60*8a9dee7eSThierry Reding		status = "okay";
61*8a9dee7eSThierry Reding	};
62*8a9dee7eSThierry Reding
63*8a9dee7eSThierry Reding	timer@3010000 {
64*8a9dee7eSThierry Reding		status = "okay";
65*8a9dee7eSThierry Reding	};
66*8a9dee7eSThierry Reding
67*8a9dee7eSThierry Reding	serial@3100000 {
68*8a9dee7eSThierry Reding		status = "okay";
69*8a9dee7eSThierry Reding	};
70*8a9dee7eSThierry Reding
71*8a9dee7eSThierry Reding	i2c@3160000 {
72*8a9dee7eSThierry Reding		status = "okay";
73*8a9dee7eSThierry Reding	};
74*8a9dee7eSThierry Reding
75*8a9dee7eSThierry Reding	i2c@3180000 {
76*8a9dee7eSThierry Reding		status = "okay";
77*8a9dee7eSThierry Reding
78*8a9dee7eSThierry Reding		power-monitor@40 {
79*8a9dee7eSThierry Reding			compatible = "ti,ina3221";
80*8a9dee7eSThierry Reding			reg = <0x40>;
81*8a9dee7eSThierry Reding			#address-cells = <1>;
82*8a9dee7eSThierry Reding			#size-cells = <0>;
83*8a9dee7eSThierry Reding
84*8a9dee7eSThierry Reding			channel@0 {
85*8a9dee7eSThierry Reding				reg = <0>;
86*8a9dee7eSThierry Reding				label = "VDD_IN";
87*8a9dee7eSThierry Reding				shunt-resistor-micro-ohms = <5>;
88*8a9dee7eSThierry Reding			};
89*8a9dee7eSThierry Reding
90*8a9dee7eSThierry Reding			channel@1 {
91*8a9dee7eSThierry Reding				reg = <1>;
92*8a9dee7eSThierry Reding				label = "VDD_CPU_GPU";
93*8a9dee7eSThierry Reding				shunt-resistor-micro-ohms = <5>;
94*8a9dee7eSThierry Reding			};
95*8a9dee7eSThierry Reding
96*8a9dee7eSThierry Reding			channel@2 {
97*8a9dee7eSThierry Reding				reg = <2>;
98*8a9dee7eSThierry Reding				label = "VDD_SOC";
99*8a9dee7eSThierry Reding				shunt-resistor-micro-ohms = <>;
100*8a9dee7eSThierry Reding			};
101*8a9dee7eSThierry Reding		};
102*8a9dee7eSThierry Reding	};
103*8a9dee7eSThierry Reding
104*8a9dee7eSThierry Reding	ddc: i2c@3190000 {
105*8a9dee7eSThierry Reding		status = "okay";
106*8a9dee7eSThierry Reding	};
107*8a9dee7eSThierry Reding
108*8a9dee7eSThierry Reding	i2c@31c0000 {
109*8a9dee7eSThierry Reding		status = "okay";
110*8a9dee7eSThierry Reding	};
111*8a9dee7eSThierry Reding
112*8a9dee7eSThierry Reding	i2c@31e0000 {
113*8a9dee7eSThierry Reding		status = "okay";
114*8a9dee7eSThierry Reding	};
115*8a9dee7eSThierry Reding
116*8a9dee7eSThierry Reding	/* SDMMC4 (eMMC) */
117*8a9dee7eSThierry Reding	mmc@3460000 {
118*8a9dee7eSThierry Reding		status = "okay";
119*8a9dee7eSThierry Reding		bus-width = <8>;
120*8a9dee7eSThierry Reding		non-removable;
121*8a9dee7eSThierry Reding
122*8a9dee7eSThierry Reding		vqmmc-supply = <&vdd_1v8_ap>;
123*8a9dee7eSThierry Reding		vmmc-supply = <&vdd_3v3_sys>;
124*8a9dee7eSThierry Reding	};
125*8a9dee7eSThierry Reding
126*8a9dee7eSThierry Reding	hda@3510000 {
127*8a9dee7eSThierry Reding		nvidia,model = "jetson-tx2-hda";
128*8a9dee7eSThierry Reding		status = "okay";
129*8a9dee7eSThierry Reding	};
130*8a9dee7eSThierry Reding
131*8a9dee7eSThierry Reding	padctl@3520000 {
132*8a9dee7eSThierry Reding		status = "okay";
133*8a9dee7eSThierry Reding
134*8a9dee7eSThierry Reding		avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
135*8a9dee7eSThierry Reding		avdd-usb-supply = <&vdd_3v3_sys>;
136*8a9dee7eSThierry Reding		vclamp-usb-supply = <&vdd_1v8>;
137*8a9dee7eSThierry Reding		vddio-hsic-supply = <&gnd>;
138*8a9dee7eSThierry Reding
139*8a9dee7eSThierry Reding		pads {
140*8a9dee7eSThierry Reding			usb2 {
141*8a9dee7eSThierry Reding				status = "okay";
142*8a9dee7eSThierry Reding
143*8a9dee7eSThierry Reding				lanes {
144*8a9dee7eSThierry Reding					micro_b: usb2-0 {
145*8a9dee7eSThierry Reding						nvidia,function = "xusb";
146*8a9dee7eSThierry Reding						status = "okay";
147*8a9dee7eSThierry Reding					};
148*8a9dee7eSThierry Reding
149*8a9dee7eSThierry Reding					usb2-1 {
150*8a9dee7eSThierry Reding						nvidia,function = "xusb";
151*8a9dee7eSThierry Reding						status = "okay";
152*8a9dee7eSThierry Reding					};
153*8a9dee7eSThierry Reding
154*8a9dee7eSThierry Reding					usb2-2 {
155*8a9dee7eSThierry Reding						nvidia,function = "xusb";
156*8a9dee7eSThierry Reding						status = "okay";
157*8a9dee7eSThierry Reding					};
158*8a9dee7eSThierry Reding				};
159*8a9dee7eSThierry Reding			};
160*8a9dee7eSThierry Reding
161*8a9dee7eSThierry Reding			usb3 {
162*8a9dee7eSThierry Reding				status = "okay";
163*8a9dee7eSThierry Reding
164*8a9dee7eSThierry Reding				lanes {
165*8a9dee7eSThierry Reding					usb3-1 {
166*8a9dee7eSThierry Reding						nvidia,function = "xusb";
167*8a9dee7eSThierry Reding						status = "okay";
168*8a9dee7eSThierry Reding					};
169*8a9dee7eSThierry Reding				};
170*8a9dee7eSThierry Reding			};
171*8a9dee7eSThierry Reding		};
172*8a9dee7eSThierry Reding
173*8a9dee7eSThierry Reding		ports {
174*8a9dee7eSThierry Reding			usb2-0 {
175*8a9dee7eSThierry Reding				status = "okay";
176*8a9dee7eSThierry Reding				mode = "otg";
177*8a9dee7eSThierry Reding				vbus-supply = <&vdd_5v0_sys>;
178*8a9dee7eSThierry Reding				usb-role-switch;
179*8a9dee7eSThierry Reding
180*8a9dee7eSThierry Reding				connector {
181*8a9dee7eSThierry Reding					compatible = "gpio-usb-b-connector",
182*8a9dee7eSThierry Reding						     "usb-b-connector";
183*8a9dee7eSThierry Reding					label = "micro-USB";
184*8a9dee7eSThierry Reding					type = "micro";
185*8a9dee7eSThierry Reding					vbus-gpios = <&gpio
186*8a9dee7eSThierry Reding						      TEGRA186_MAIN_GPIO(L, 4)
187*8a9dee7eSThierry Reding						      GPIO_ACTIVE_LOW>;
188*8a9dee7eSThierry Reding					id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>;
189*8a9dee7eSThierry Reding				};
190*8a9dee7eSThierry Reding			};
191*8a9dee7eSThierry Reding
192*8a9dee7eSThierry Reding			usb2-1 {
193*8a9dee7eSThierry Reding				status = "okay";
194*8a9dee7eSThierry Reding				mode = "host";
195*8a9dee7eSThierry Reding
196*8a9dee7eSThierry Reding				vbus-supply = <&vdd_5v0_sys>;
197*8a9dee7eSThierry Reding			};
198*8a9dee7eSThierry Reding
199*8a9dee7eSThierry Reding			usb2-2 {
200*8a9dee7eSThierry Reding				status = "okay";
201*8a9dee7eSThierry Reding				mode = "host";
202*8a9dee7eSThierry Reding
203*8a9dee7eSThierry Reding				vbus-supply = <&vdd_5v0_sys>;
204*8a9dee7eSThierry Reding			};
205*8a9dee7eSThierry Reding
206*8a9dee7eSThierry Reding			usb3-1 {
207*8a9dee7eSThierry Reding				nvidia,usb2-companion = <1>;
208*8a9dee7eSThierry Reding				vbus-supply = <&vdd_5v0_sys>;
209*8a9dee7eSThierry Reding				status = "okay";
210*8a9dee7eSThierry Reding			};
211*8a9dee7eSThierry Reding		};
212*8a9dee7eSThierry Reding	};
213*8a9dee7eSThierry Reding
214*8a9dee7eSThierry Reding	usb@3530000 {
215*8a9dee7eSThierry Reding		status = "okay";
216*8a9dee7eSThierry Reding
217*8a9dee7eSThierry Reding		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
218*8a9dee7eSThierry Reding		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
219*8a9dee7eSThierry Reding		       <&{/padctl@3520000/pads/usb2/lanes/usb2-2}>,
220*8a9dee7eSThierry Reding		       <&{/padctl@3520000/pads/usb3/lanes/usb3-1}>;
221*8a9dee7eSThierry Reding		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-1";
222*8a9dee7eSThierry Reding	};
223*8a9dee7eSThierry Reding
224*8a9dee7eSThierry Reding	usb@3550000 {
225*8a9dee7eSThierry Reding		status = "okay";
226*8a9dee7eSThierry Reding
227*8a9dee7eSThierry Reding		phys = <&micro_b>;
228*8a9dee7eSThierry Reding		phy-names = "usb2-0";
229*8a9dee7eSThierry Reding	};
230*8a9dee7eSThierry Reding
231*8a9dee7eSThierry Reding	hsp@3c00000 {
232*8a9dee7eSThierry Reding		status = "okay";
233*8a9dee7eSThierry Reding	};
234*8a9dee7eSThierry Reding
235*8a9dee7eSThierry Reding	i2c@c240000 {
236*8a9dee7eSThierry Reding		status = "okay";
237*8a9dee7eSThierry Reding	};
238*8a9dee7eSThierry Reding
239*8a9dee7eSThierry Reding	i2c@c250000 {
240*8a9dee7eSThierry Reding		status = "okay";
241*8a9dee7eSThierry Reding
242*8a9dee7eSThierry Reding		/* module ID EEPROM */
243*8a9dee7eSThierry Reding		eeprom@50 {
244*8a9dee7eSThierry Reding			compatible = "atmel,24c02";
245*8a9dee7eSThierry Reding			reg = <0x50>;
246*8a9dee7eSThierry Reding
247*8a9dee7eSThierry Reding			label = "module";
248*8a9dee7eSThierry Reding			vcc-supply = <&vdd_1v8>;
249*8a9dee7eSThierry Reding			address-width = <8>;
250*8a9dee7eSThierry Reding			pagesize = <8>;
251*8a9dee7eSThierry Reding			size = <256>;
252*8a9dee7eSThierry Reding			read-only;
253*8a9dee7eSThierry Reding		};
254*8a9dee7eSThierry Reding
255*8a9dee7eSThierry Reding		/* carrier board ID EEPROM */
256*8a9dee7eSThierry Reding		eeprom@57 {
257*8a9dee7eSThierry Reding			compatible = "atmel,24c02";
258*8a9dee7eSThierry Reding			reg = <0x57>;
259*8a9dee7eSThierry Reding
260*8a9dee7eSThierry Reding			label = "system";
261*8a9dee7eSThierry Reding			vcc-supply = <&vdd_1v8>;
262*8a9dee7eSThierry Reding			address-width = <8>;
263*8a9dee7eSThierry Reding			pagesize = <8>;
264*8a9dee7eSThierry Reding			size = <256>;
265*8a9dee7eSThierry Reding			read-only;
266*8a9dee7eSThierry Reding		};
267*8a9dee7eSThierry Reding	};
268*8a9dee7eSThierry Reding
269*8a9dee7eSThierry Reding	rtc@c2a0000 {
270*8a9dee7eSThierry Reding		status = "okay";
271*8a9dee7eSThierry Reding	};
272*8a9dee7eSThierry Reding
273*8a9dee7eSThierry Reding	pwm@c340000 {
274*8a9dee7eSThierry Reding		status = "okay";
275*8a9dee7eSThierry Reding	};
276*8a9dee7eSThierry Reding
277*8a9dee7eSThierry Reding	pmc@c360000 {
278*8a9dee7eSThierry Reding		nvidia,invert-interrupt;
279*8a9dee7eSThierry Reding	};
280*8a9dee7eSThierry Reding
281*8a9dee7eSThierry Reding	pcie@10003000 {
282*8a9dee7eSThierry Reding		status = "okay";
283*8a9dee7eSThierry Reding
284*8a9dee7eSThierry Reding		dvdd-pex-supply = <&vdd_pex>;
285*8a9dee7eSThierry Reding		hvdd-pex-pll-supply = <&vdd_1v8>;
286*8a9dee7eSThierry Reding		hvdd-pex-supply = <&vdd_1v8>;
287*8a9dee7eSThierry Reding		vddio-pexctl-aud-supply = <&vdd_1v8>;
288*8a9dee7eSThierry Reding
289*8a9dee7eSThierry Reding		pci@1,0 {
290*8a9dee7eSThierry Reding			nvidia,num-lanes = <2>;
291*8a9dee7eSThierry Reding			status = "okay";
292*8a9dee7eSThierry Reding		};
293*8a9dee7eSThierry Reding
294*8a9dee7eSThierry Reding		pci@2,0 {
295*8a9dee7eSThierry Reding			nvidia,num-lanes = <1>;
296*8a9dee7eSThierry Reding			status = "disabled";
297*8a9dee7eSThierry Reding		};
298*8a9dee7eSThierry Reding
299*8a9dee7eSThierry Reding		pci@3,0 {
300*8a9dee7eSThierry Reding			nvidia,num-lanes = <1>;
301*8a9dee7eSThierry Reding			status = "okay";
302*8a9dee7eSThierry Reding		};
303*8a9dee7eSThierry Reding	};
304*8a9dee7eSThierry Reding
305*8a9dee7eSThierry Reding	host1x@13e00000 {
306*8a9dee7eSThierry Reding		status = "okay";
307*8a9dee7eSThierry Reding
308*8a9dee7eSThierry Reding		dpaux@15040000 {
309*8a9dee7eSThierry Reding			status = "okay";
310*8a9dee7eSThierry Reding		};
311*8a9dee7eSThierry Reding
312*8a9dee7eSThierry Reding		display-hub@15200000 {
313*8a9dee7eSThierry Reding			status = "okay";
314*8a9dee7eSThierry Reding		};
315*8a9dee7eSThierry Reding
316*8a9dee7eSThierry Reding		dsi@15300000 {
317*8a9dee7eSThierry Reding			status = "disabled";
318*8a9dee7eSThierry Reding		};
319*8a9dee7eSThierry Reding
320*8a9dee7eSThierry Reding		/* DP */
321*8a9dee7eSThierry Reding		sor@15540000 {
322*8a9dee7eSThierry Reding			status = "okay";
323*8a9dee7eSThierry Reding
324*8a9dee7eSThierry Reding			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
325*8a9dee7eSThierry Reding			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
326*8a9dee7eSThierry Reding
327*8a9dee7eSThierry Reding			nvidia,dpaux = <&dpaux>;
328*8a9dee7eSThierry Reding		};
329*8a9dee7eSThierry Reding
330*8a9dee7eSThierry Reding		/* HDMI */
331*8a9dee7eSThierry Reding		sor@15580000 {
332*8a9dee7eSThierry Reding			status = "okay";
333*8a9dee7eSThierry Reding
334*8a9dee7eSThierry Reding			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
335*8a9dee7eSThierry Reding			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
336*8a9dee7eSThierry Reding			hdmi-supply = <&vdd_hdmi>;
337*8a9dee7eSThierry Reding
338*8a9dee7eSThierry Reding			nvidia,ddc-i2c-bus = <&ddc>;
339*8a9dee7eSThierry Reding			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
340*8a9dee7eSThierry Reding						 GPIO_ACTIVE_LOW>;
341*8a9dee7eSThierry Reding		};
342*8a9dee7eSThierry Reding
343*8a9dee7eSThierry Reding		dpaux@155c0000 {
344*8a9dee7eSThierry Reding			status = "okay";
345*8a9dee7eSThierry Reding		};
346*8a9dee7eSThierry Reding	};
347*8a9dee7eSThierry Reding
348*8a9dee7eSThierry Reding	gpu@17000000 {
349*8a9dee7eSThierry Reding		status = "okay";
350*8a9dee7eSThierry Reding	};
351*8a9dee7eSThierry Reding
352*8a9dee7eSThierry Reding	fan: fan {
353*8a9dee7eSThierry Reding		compatible = "pwm-fan";
354*8a9dee7eSThierry Reding		pwms = <&pwm4 0 45334>;
355*8a9dee7eSThierry Reding
356*8a9dee7eSThierry Reding		cooling-levels = <0 64 128 255>;
357*8a9dee7eSThierry Reding		#cooling-cells = <2>;
358*8a9dee7eSThierry Reding	};
359*8a9dee7eSThierry Reding
360*8a9dee7eSThierry Reding	gpio-keys {
361*8a9dee7eSThierry Reding		compatible = "gpio-keys";
362*8a9dee7eSThierry Reding
363*8a9dee7eSThierry Reding		power {
364*8a9dee7eSThierry Reding			label = "Power";
365*8a9dee7eSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
366*8a9dee7eSThierry Reding					   GPIO_ACTIVE_LOW>;
367*8a9dee7eSThierry Reding			linux,input-type = <EV_KEY>;
368*8a9dee7eSThierry Reding			linux,code = <KEY_POWER>;
369*8a9dee7eSThierry Reding			debounce-interval = <10>;
370*8a9dee7eSThierry Reding			wakeup-event-action = <EV_ACT_ASSERTED>;
371*8a9dee7eSThierry Reding			wakeup-source;
372*8a9dee7eSThierry Reding		};
373*8a9dee7eSThierry Reding
374*8a9dee7eSThierry Reding		volume-up {
375*8a9dee7eSThierry Reding			label = "Volume Up";
376*8a9dee7eSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
377*8a9dee7eSThierry Reding					   GPIO_ACTIVE_LOW>;
378*8a9dee7eSThierry Reding			linux,input-type = <EV_KEY>;
379*8a9dee7eSThierry Reding			linux,code = <KEY_VOLUMEUP>;
380*8a9dee7eSThierry Reding			debounce-interval = <10>;
381*8a9dee7eSThierry Reding		};
382*8a9dee7eSThierry Reding
383*8a9dee7eSThierry Reding		volume-down {
384*8a9dee7eSThierry Reding			label = "Volume Down";
385*8a9dee7eSThierry Reding			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
386*8a9dee7eSThierry Reding					   GPIO_ACTIVE_LOW>;
387*8a9dee7eSThierry Reding			linux,input-type = <EV_KEY>;
388*8a9dee7eSThierry Reding			linux,code = <KEY_VOLUMEDOWN>;
389*8a9dee7eSThierry Reding			debounce-interval = <10>;
390*8a9dee7eSThierry Reding		};
391*8a9dee7eSThierry Reding	};
392*8a9dee7eSThierry Reding
393*8a9dee7eSThierry Reding	cpus {
394*8a9dee7eSThierry Reding		cpu@0 {
395*8a9dee7eSThierry Reding			enable-method = "psci";
396*8a9dee7eSThierry Reding		};
397*8a9dee7eSThierry Reding
398*8a9dee7eSThierry Reding		cpu@1 {
399*8a9dee7eSThierry Reding			enable-method = "psci";
400*8a9dee7eSThierry Reding		};
401*8a9dee7eSThierry Reding
402*8a9dee7eSThierry Reding		cpu@2 {
403*8a9dee7eSThierry Reding			enable-method = "psci";
404*8a9dee7eSThierry Reding		};
405*8a9dee7eSThierry Reding
406*8a9dee7eSThierry Reding		cpu@3 {
407*8a9dee7eSThierry Reding			enable-method = "psci";
408*8a9dee7eSThierry Reding		};
409*8a9dee7eSThierry Reding
410*8a9dee7eSThierry Reding		cpu@4 {
411*8a9dee7eSThierry Reding			enable-method = "psci";
412*8a9dee7eSThierry Reding		};
413*8a9dee7eSThierry Reding
414*8a9dee7eSThierry Reding		cpu@5 {
415*8a9dee7eSThierry Reding			enable-method = "psci";
416*8a9dee7eSThierry Reding		};
417*8a9dee7eSThierry Reding	};
418*8a9dee7eSThierry Reding
419*8a9dee7eSThierry Reding	bpmp {
420*8a9dee7eSThierry Reding		i2c {
421*8a9dee7eSThierry Reding			status = "okay";
422*8a9dee7eSThierry Reding
423*8a9dee7eSThierry Reding			pmic: pmic@3c {
424*8a9dee7eSThierry Reding				compatible = "maxim,max77620";
425*8a9dee7eSThierry Reding				reg = <0x3c>;
426*8a9dee7eSThierry Reding
427*8a9dee7eSThierry Reding				interrupt-parent = <&pmc>;
428*8a9dee7eSThierry Reding				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
429*8a9dee7eSThierry Reding				#interrupt-cells = <2>;
430*8a9dee7eSThierry Reding				interrupt-controller;
431*8a9dee7eSThierry Reding
432*8a9dee7eSThierry Reding				#gpio-cells = <2>;
433*8a9dee7eSThierry Reding				gpio-controller;
434*8a9dee7eSThierry Reding
435*8a9dee7eSThierry Reding				pinctrl-names = "default";
436*8a9dee7eSThierry Reding				pinctrl-0 = <&max77620_default>;
437*8a9dee7eSThierry Reding
438*8a9dee7eSThierry Reding				max77620_default: pinmux {
439*8a9dee7eSThierry Reding					gpio0 {
440*8a9dee7eSThierry Reding						pins = "gpio0";
441*8a9dee7eSThierry Reding						function = "gpio";
442*8a9dee7eSThierry Reding					};
443*8a9dee7eSThierry Reding
444*8a9dee7eSThierry Reding					gpio1 {
445*8a9dee7eSThierry Reding						pins = "gpio1";
446*8a9dee7eSThierry Reding						function = "fps-out";
447*8a9dee7eSThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
448*8a9dee7eSThierry Reding					};
449*8a9dee7eSThierry Reding
450*8a9dee7eSThierry Reding					gpio2 {
451*8a9dee7eSThierry Reding						pins = "gpio2";
452*8a9dee7eSThierry Reding						function = "fps-out";
453*8a9dee7eSThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
454*8a9dee7eSThierry Reding					};
455*8a9dee7eSThierry Reding
456*8a9dee7eSThierry Reding					gpio3 {
457*8a9dee7eSThierry Reding						pins = "gpio3";
458*8a9dee7eSThierry Reding						function = "fps-out";
459*8a9dee7eSThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
460*8a9dee7eSThierry Reding					};
461*8a9dee7eSThierry Reding
462*8a9dee7eSThierry Reding					gpio4 {
463*8a9dee7eSThierry Reding						pins = "gpio4";
464*8a9dee7eSThierry Reding						function = "32k-out1";
465*8a9dee7eSThierry Reding						drive-push-pull = <1>;
466*8a9dee7eSThierry Reding					};
467*8a9dee7eSThierry Reding
468*8a9dee7eSThierry Reding					gpio5 {
469*8a9dee7eSThierry Reding						pins = "gpio5";
470*8a9dee7eSThierry Reding						function = "gpio";
471*8a9dee7eSThierry Reding						drive-push-pull = <0>;
472*8a9dee7eSThierry Reding					};
473*8a9dee7eSThierry Reding
474*8a9dee7eSThierry Reding					gpio6 {
475*8a9dee7eSThierry Reding						pins = "gpio6";
476*8a9dee7eSThierry Reding						function = "gpio";
477*8a9dee7eSThierry Reding						drive-push-pull = <1>;
478*8a9dee7eSThierry Reding					};
479*8a9dee7eSThierry Reding
480*8a9dee7eSThierry Reding					gpio7 {
481*8a9dee7eSThierry Reding						pins = "gpio7";
482*8a9dee7eSThierry Reding						function = "gpio";
483*8a9dee7eSThierry Reding						drive-push-pull = <1>;
484*8a9dee7eSThierry Reding					};
485*8a9dee7eSThierry Reding				};
486*8a9dee7eSThierry Reding
487*8a9dee7eSThierry Reding				fps {
488*8a9dee7eSThierry Reding					fps0 {
489*8a9dee7eSThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
490*8a9dee7eSThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
491*8a9dee7eSThierry Reding					};
492*8a9dee7eSThierry Reding
493*8a9dee7eSThierry Reding					fps1 {
494*8a9dee7eSThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
495*8a9dee7eSThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
496*8a9dee7eSThierry Reding					};
497*8a9dee7eSThierry Reding
498*8a9dee7eSThierry Reding					fps2 {
499*8a9dee7eSThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
500*8a9dee7eSThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
501*8a9dee7eSThierry Reding					};
502*8a9dee7eSThierry Reding				};
503*8a9dee7eSThierry Reding
504*8a9dee7eSThierry Reding				regulators {
505*8a9dee7eSThierry Reding					in-sd0-supply = <&vdd_5v0_sys>;
506*8a9dee7eSThierry Reding					in-sd1-supply = <&vdd_5v0_sys>;
507*8a9dee7eSThierry Reding					in-sd2-supply = <&vdd_5v0_sys>;
508*8a9dee7eSThierry Reding					in-sd3-supply = <&vdd_5v0_sys>;
509*8a9dee7eSThierry Reding
510*8a9dee7eSThierry Reding					in-ldo0-1-supply = <&vdd_5v0_sys>;
511*8a9dee7eSThierry Reding					in-ldo2-supply = <&vdd_5v0_sys>;
512*8a9dee7eSThierry Reding					in-ldo3-5-supply = <&vdd_5v0_sys>;
513*8a9dee7eSThierry Reding					in-ldo4-6-supply = <&vdd_1v8>;
514*8a9dee7eSThierry Reding					in-ldo7-8-supply = <&avdd_dsi_csi>;
515*8a9dee7eSThierry Reding
516*8a9dee7eSThierry Reding					sd0 {
517*8a9dee7eSThierry Reding						regulator-name = "VDD_DDR_1V1_PMIC";
518*8a9dee7eSThierry Reding						regulator-min-microvolt = <1100000>;
519*8a9dee7eSThierry Reding						regulator-max-microvolt = <1100000>;
520*8a9dee7eSThierry Reding						regulator-always-on;
521*8a9dee7eSThierry Reding						regulator-boot-on;
522*8a9dee7eSThierry Reding					};
523*8a9dee7eSThierry Reding
524*8a9dee7eSThierry Reding					avdd_dsi_csi: sd1 {
525*8a9dee7eSThierry Reding						regulator-name = "AVDD_DSI_CSI_1V2";
526*8a9dee7eSThierry Reding						regulator-min-microvolt = <1200000>;
527*8a9dee7eSThierry Reding						regulator-max-microvolt = <1200000>;
528*8a9dee7eSThierry Reding					};
529*8a9dee7eSThierry Reding
530*8a9dee7eSThierry Reding					vdd_1v8: sd2 {
531*8a9dee7eSThierry Reding						regulator-name = "VDD_1V8";
532*8a9dee7eSThierry Reding						regulator-min-microvolt = <1800000>;
533*8a9dee7eSThierry Reding						regulator-max-microvolt = <1800000>;
534*8a9dee7eSThierry Reding					};
535*8a9dee7eSThierry Reding
536*8a9dee7eSThierry Reding					vdd_3v3_sys: sd3 {
537*8a9dee7eSThierry Reding						regulator-name = "VDD_3V3_SYS";
538*8a9dee7eSThierry Reding						regulator-min-microvolt = <3300000>;
539*8a9dee7eSThierry Reding						regulator-max-microvolt = <3300000>;
540*8a9dee7eSThierry Reding					};
541*8a9dee7eSThierry Reding
542*8a9dee7eSThierry Reding					vdd_1v8_pll: ldo0 {
543*8a9dee7eSThierry Reding						regulator-name = "VDD_1V8_AP_PLL";
544*8a9dee7eSThierry Reding						regulator-min-microvolt = <1800000>;
545*8a9dee7eSThierry Reding						regulator-max-microvolt = <1800000>;
546*8a9dee7eSThierry Reding					};
547*8a9dee7eSThierry Reding
548*8a9dee7eSThierry Reding					ldo2 {
549*8a9dee7eSThierry Reding						regulator-name = "VDDIO_3V3_AOHV";
550*8a9dee7eSThierry Reding						regulator-min-microvolt = <3300000>;
551*8a9dee7eSThierry Reding						regulator-max-microvolt = <3300000>;
552*8a9dee7eSThierry Reding						regulator-always-on;
553*8a9dee7eSThierry Reding						regulator-boot-on;
554*8a9dee7eSThierry Reding					};
555*8a9dee7eSThierry Reding
556*8a9dee7eSThierry Reding					vddio_sdmmc1: ldo3 {
557*8a9dee7eSThierry Reding						regulator-name = "VDDIO_SDMMC1_AP";
558*8a9dee7eSThierry Reding						regulator-min-microvolt = <1800000>;
559*8a9dee7eSThierry Reding						regulator-max-microvolt = <3300000>;
560*8a9dee7eSThierry Reding					};
561*8a9dee7eSThierry Reding
562*8a9dee7eSThierry Reding					ldo4 {
563*8a9dee7eSThierry Reding						regulator-name = "VDD_RTC";
564*8a9dee7eSThierry Reding						regulator-min-microvolt = <1000000>;
565*8a9dee7eSThierry Reding						regulator-max-microvolt = <1000000>;
566*8a9dee7eSThierry Reding					};
567*8a9dee7eSThierry Reding
568*8a9dee7eSThierry Reding					vddio_sdmmc3: ldo5 {
569*8a9dee7eSThierry Reding						regulator-name = "VDDIO_SDMMC3_AP";
570*8a9dee7eSThierry Reding						regulator-min-microvolt = <2800000>;
571*8a9dee7eSThierry Reding						regulator-max-microvolt = <2800000>;
572*8a9dee7eSThierry Reding					};
573*8a9dee7eSThierry Reding
574*8a9dee7eSThierry Reding					vdd_hdmi_1v05: ldo7 {
575*8a9dee7eSThierry Reding						regulator-name = "VDD_HDMI_1V05";
576*8a9dee7eSThierry Reding						regulator-min-microvolt = <1050000>;
577*8a9dee7eSThierry Reding						regulator-max-microvolt = <1050000>;
578*8a9dee7eSThierry Reding					};
579*8a9dee7eSThierry Reding
580*8a9dee7eSThierry Reding					vdd_pex: ldo8 {
581*8a9dee7eSThierry Reding						regulator-name = "VDD_PEX_1V05";
582*8a9dee7eSThierry Reding						regulator-min-microvolt = <1050000>;
583*8a9dee7eSThierry Reding						regulator-max-microvolt = <1050000>;
584*8a9dee7eSThierry Reding					};
585*8a9dee7eSThierry Reding				};
586*8a9dee7eSThierry Reding			};
587*8a9dee7eSThierry Reding		};
588*8a9dee7eSThierry Reding	};
589*8a9dee7eSThierry Reding
590*8a9dee7eSThierry Reding	psci {
591*8a9dee7eSThierry Reding		compatible = "arm,psci-1.0";
592*8a9dee7eSThierry Reding		status = "okay";
593*8a9dee7eSThierry Reding		method = "smc";
594*8a9dee7eSThierry Reding	};
595*8a9dee7eSThierry Reding
596*8a9dee7eSThierry Reding	gnd: regulator@0 {
597*8a9dee7eSThierry Reding		compatible = "regulator-fixed";
598*8a9dee7eSThierry Reding		regulator-name = "GND";
599*8a9dee7eSThierry Reding		regulator-min-microvolt = <0>;
600*8a9dee7eSThierry Reding		regulator-max-microvolt = <0>;
601*8a9dee7eSThierry Reding		regulator-always-on;
602*8a9dee7eSThierry Reding		regulator-boot-on;
603*8a9dee7eSThierry Reding	};
604*8a9dee7eSThierry Reding
605*8a9dee7eSThierry Reding	vdd_5v0_sys: regulator@1 {
606*8a9dee7eSThierry Reding		compatible = "regulator-fixed";
607*8a9dee7eSThierry Reding		regulator-name = "VDD_5V0_SYS";
608*8a9dee7eSThierry Reding		regulator-min-microvolt = <5000000>;
609*8a9dee7eSThierry Reding		regulator-max-microvolt = <5000000>;
610*8a9dee7eSThierry Reding		regulator-always-on;
611*8a9dee7eSThierry Reding		regulator-boot-on;
612*8a9dee7eSThierry Reding	};
613*8a9dee7eSThierry Reding
614*8a9dee7eSThierry Reding	vdd_1v8_ap: regulator@2 {
615*8a9dee7eSThierry Reding		compatible = "regulator-fixed";
616*8a9dee7eSThierry Reding		regulator-name = "VDD_1V8_AP";
617*8a9dee7eSThierry Reding		regulator-min-microvolt = <1800000>;
618*8a9dee7eSThierry Reding		regulator-max-microvolt = <1800000>;
619*8a9dee7eSThierry Reding
620*8a9dee7eSThierry Reding		gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
621*8a9dee7eSThierry Reding		enable-active-high;
622*8a9dee7eSThierry Reding
623*8a9dee7eSThierry Reding		vin-supply = <&vdd_1v8>;
624*8a9dee7eSThierry Reding	};
625*8a9dee7eSThierry Reding
626*8a9dee7eSThierry Reding	vdd_hdmi: regulator@3 {
627*8a9dee7eSThierry Reding		compatible = "regulator-fixed";
628*8a9dee7eSThierry Reding		regulator-name = "VDD_5V0_HDMI_CON";
629*8a9dee7eSThierry Reding		regulator-min-microvolt = <5000000>;
630*8a9dee7eSThierry Reding		regulator-max-microvolt = <5000000>;
631*8a9dee7eSThierry Reding
632*8a9dee7eSThierry Reding		vin-supply = <&vdd_5v0_sys>;
633*8a9dee7eSThierry Reding	};
634*8a9dee7eSThierry Reding
635*8a9dee7eSThierry Reding	thermal-zones {
636*8a9dee7eSThierry Reding		cpu {
637*8a9dee7eSThierry Reding			polling-delay = <0>;
638*8a9dee7eSThierry Reding			polling-delay-passive = <500>;
639*8a9dee7eSThierry Reding			status = "okay";
640*8a9dee7eSThierry Reding
641*8a9dee7eSThierry Reding			trips {
642*8a9dee7eSThierry Reding				cpu_trip_critical: critical {
643*8a9dee7eSThierry Reding					temperature = <96500>;
644*8a9dee7eSThierry Reding					hysteresis = <0>;
645*8a9dee7eSThierry Reding					type = "critical";
646*8a9dee7eSThierry Reding				};
647*8a9dee7eSThierry Reding
648*8a9dee7eSThierry Reding				cpu_trip_hot: hot {
649*8a9dee7eSThierry Reding					temperature = <79000>;
650*8a9dee7eSThierry Reding					hysteresis = <2000>;
651*8a9dee7eSThierry Reding					type = "hot";
652*8a9dee7eSThierry Reding				};
653*8a9dee7eSThierry Reding
654*8a9dee7eSThierry Reding				cpu_trip_active: active {
655*8a9dee7eSThierry Reding					temperature = <62000>;
656*8a9dee7eSThierry Reding					hysteresis = <2000>;
657*8a9dee7eSThierry Reding					type = "active";
658*8a9dee7eSThierry Reding				};
659*8a9dee7eSThierry Reding
660*8a9dee7eSThierry Reding				cpu_trip_passive: passive {
661*8a9dee7eSThierry Reding					temperature = <45000>;
662*8a9dee7eSThierry Reding					hysteresis = <2000>;
663*8a9dee7eSThierry Reding					type = "passive";
664*8a9dee7eSThierry Reding				};
665*8a9dee7eSThierry Reding			};
666*8a9dee7eSThierry Reding
667*8a9dee7eSThierry Reding			cooling-maps {
668*8a9dee7eSThierry Reding				cpu-critical {
669*8a9dee7eSThierry Reding					cooling-device = <&fan 3 3>;
670*8a9dee7eSThierry Reding					trip = <&cpu_trip_critical>;
671*8a9dee7eSThierry Reding				};
672*8a9dee7eSThierry Reding
673*8a9dee7eSThierry Reding				cpu-hot {
674*8a9dee7eSThierry Reding					cooling-device = <&fan 2 2>;
675*8a9dee7eSThierry Reding					trip = <&cpu_trip_hot>;
676*8a9dee7eSThierry Reding				};
677*8a9dee7eSThierry Reding
678*8a9dee7eSThierry Reding				cpu-active {
679*8a9dee7eSThierry Reding					cooling-device = <&fan 1 1>;
680*8a9dee7eSThierry Reding					trip = <&cpu_trip_active>;
681*8a9dee7eSThierry Reding				};
682*8a9dee7eSThierry Reding
683*8a9dee7eSThierry Reding				cpu-passive {
684*8a9dee7eSThierry Reding					cooling-device = <&fan 0 0>;
685*8a9dee7eSThierry Reding					trip = <&cpu_trip_passive>;
686*8a9dee7eSThierry Reding				};
687*8a9dee7eSThierry Reding			};
688*8a9dee7eSThierry Reding		};
689*8a9dee7eSThierry Reding
690*8a9dee7eSThierry Reding		gpu {
691*8a9dee7eSThierry Reding			polling-delay = <0>;
692*8a9dee7eSThierry Reding			polling-delay-passive = <500>;
693*8a9dee7eSThierry Reding			status = "okay";
694*8a9dee7eSThierry Reding
695*8a9dee7eSThierry Reding			trips {
696*8a9dee7eSThierry Reding				gpu_alert0: critical {
697*8a9dee7eSThierry Reding					temperature = <99000>;
698*8a9dee7eSThierry Reding					hysteresis = <0>;
699*8a9dee7eSThierry Reding					type = "critical";
700*8a9dee7eSThierry Reding				};
701*8a9dee7eSThierry Reding			};
702*8a9dee7eSThierry Reding		};
703*8a9dee7eSThierry Reding
704*8a9dee7eSThierry Reding		aux {
705*8a9dee7eSThierry Reding			polling-delay = <0>;
706*8a9dee7eSThierry Reding			polling-delay-passive = <500>;
707*8a9dee7eSThierry Reding			status = "okay";
708*8a9dee7eSThierry Reding
709*8a9dee7eSThierry Reding			trips {
710*8a9dee7eSThierry Reding				aux_alert0: critical {
711*8a9dee7eSThierry Reding					temperature = <90000>;
712*8a9dee7eSThierry Reding					hysteresis = <0>;
713*8a9dee7eSThierry Reding					type = "critical";
714*8a9dee7eSThierry Reding				};
715*8a9dee7eSThierry Reding			};
716*8a9dee7eSThierry Reding		};
717*8a9dee7eSThierry Reding	};
718*8a9dee7eSThierry Reding};
719