xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3588-coolpi-cm5.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*8d13bc63SEmmanuel Vadot/*
3*8d13bc63SEmmanuel Vadot * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
4*8d13bc63SEmmanuel Vadot *
5*8d13bc63SEmmanuel Vadot */
6*8d13bc63SEmmanuel Vadot
7*8d13bc63SEmmanuel Vadot/dts-v1/;
8*8d13bc63SEmmanuel Vadot
9*8d13bc63SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*8d13bc63SEmmanuel Vadot#include <dt-bindings/pwm/pwm.h>
11*8d13bc63SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
12*8d13bc63SEmmanuel Vadot#include "rk3588.dtsi"
13*8d13bc63SEmmanuel Vadot
14*8d13bc63SEmmanuel Vadot/ {
15*8d13bc63SEmmanuel Vadot	compatible = "coolpi,pi-cm5", "rockchip,rk3588";
16*8d13bc63SEmmanuel Vadot
17*8d13bc63SEmmanuel Vadot	aliases {
18*8d13bc63SEmmanuel Vadot		mmc0 = &sdhci;
19*8d13bc63SEmmanuel Vadot		mmc1 = &sdmmc;
20*8d13bc63SEmmanuel Vadot		mmc2 = &sdio;
21*8d13bc63SEmmanuel Vadot		serial2 = &uart2;
22*8d13bc63SEmmanuel Vadot	};
23*8d13bc63SEmmanuel Vadot
24*8d13bc63SEmmanuel Vadot	analog-sound {
25*8d13bc63SEmmanuel Vadot		compatible = "audio-graph-card";
26*8d13bc63SEmmanuel Vadot		dais = <&i2s0_8ch_p0>;
27*8d13bc63SEmmanuel Vadot		label = "rk3588-es8316";
28*8d13bc63SEmmanuel Vadot		routing = "MIC2", "Mic Jack",
29*8d13bc63SEmmanuel Vadot			  "Headphones", "HPOL",
30*8d13bc63SEmmanuel Vadot			  "Headphones", "HPOR";
31*8d13bc63SEmmanuel Vadot		widgets = "Microphone", "Mic Jack",
32*8d13bc63SEmmanuel Vadot			  "Headphone", "Headphones";
33*8d13bc63SEmmanuel Vadot	};
34*8d13bc63SEmmanuel Vadot
35*8d13bc63SEmmanuel Vadot	chosen {
36*8d13bc63SEmmanuel Vadot		stdout-path = "serial2:1500000n8";
37*8d13bc63SEmmanuel Vadot	};
38*8d13bc63SEmmanuel Vadot
39*8d13bc63SEmmanuel Vadot	avdd0v85_pcie20: avdd0v85-pcie20-regulator {
40*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
41*8d13bc63SEmmanuel Vadot		regulator-name = "avdd0v85_pcie20";
42*8d13bc63SEmmanuel Vadot		regulator-boot-on;
43*8d13bc63SEmmanuel Vadot		regulator-always-on;
44*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <850000>;
45*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <850000>;
46*8d13bc63SEmmanuel Vadot		vin-supply = <&vdd_0v85_s0>;
47*8d13bc63SEmmanuel Vadot	};
48*8d13bc63SEmmanuel Vadot
49*8d13bc63SEmmanuel Vadot	avdd1v8_pcie20: avdd1v8-pcie20-regulator {
50*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
51*8d13bc63SEmmanuel Vadot		regulator-name = "avdd1v8_pcie20";
52*8d13bc63SEmmanuel Vadot		regulator-boot-on;
53*8d13bc63SEmmanuel Vadot		regulator-always-on;
54*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
55*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
56*8d13bc63SEmmanuel Vadot		vin-supply = <&avcc_1v8_s0>;
57*8d13bc63SEmmanuel Vadot	};
58*8d13bc63SEmmanuel Vadot
59*8d13bc63SEmmanuel Vadot	avdd0v75_pcie30: avdd0v75-pcie30-regulator {
60*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
61*8d13bc63SEmmanuel Vadot		regulator-name = "avdd0v75_pcie30";
62*8d13bc63SEmmanuel Vadot		regulator-boot-on;
63*8d13bc63SEmmanuel Vadot		regulator-always-on;
64*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <750000>;
65*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <750000>;
66*8d13bc63SEmmanuel Vadot		vin-supply = <&avdd_0v75_s0>;
67*8d13bc63SEmmanuel Vadot	};
68*8d13bc63SEmmanuel Vadot
69*8d13bc63SEmmanuel Vadot	pcie30_avdd1v8: avdd1v8-pcie30-regulator {
70*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
71*8d13bc63SEmmanuel Vadot		regulator-name = "pcie30_avdd1v8";
72*8d13bc63SEmmanuel Vadot		regulator-boot-on;
73*8d13bc63SEmmanuel Vadot		regulator-always-on;
74*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
75*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
76*8d13bc63SEmmanuel Vadot		vin-supply = <&avcc_1v8_s0>;
77*8d13bc63SEmmanuel Vadot	};
78*8d13bc63SEmmanuel Vadot};
79*8d13bc63SEmmanuel Vadot
80*8d13bc63SEmmanuel Vadot&combphy0_ps {
81*8d13bc63SEmmanuel Vadot	status = "okay";
82*8d13bc63SEmmanuel Vadot};
83*8d13bc63SEmmanuel Vadot
84*8d13bc63SEmmanuel Vadot&combphy1_ps {
85*8d13bc63SEmmanuel Vadot	status = "okay";
86*8d13bc63SEmmanuel Vadot};
87*8d13bc63SEmmanuel Vadot
88*8d13bc63SEmmanuel Vadot&combphy2_psu {
89*8d13bc63SEmmanuel Vadot	status = "okay";
90*8d13bc63SEmmanuel Vadot};
91*8d13bc63SEmmanuel Vadot
92*8d13bc63SEmmanuel Vadot&cpu_b0 {
93*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big0_s0>;
94*8d13bc63SEmmanuel Vadot};
95*8d13bc63SEmmanuel Vadot
96*8d13bc63SEmmanuel Vadot&cpu_b1 {
97*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big0_s0>;
98*8d13bc63SEmmanuel Vadot};
99*8d13bc63SEmmanuel Vadot
100*8d13bc63SEmmanuel Vadot&cpu_b2 {
101*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big1_s0>;
102*8d13bc63SEmmanuel Vadot};
103*8d13bc63SEmmanuel Vadot
104*8d13bc63SEmmanuel Vadot&cpu_b3 {
105*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big1_s0>;
106*8d13bc63SEmmanuel Vadot};
107*8d13bc63SEmmanuel Vadot
108*8d13bc63SEmmanuel Vadot&cpu_l0 {
109*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
110*8d13bc63SEmmanuel Vadot};
111*8d13bc63SEmmanuel Vadot
112*8d13bc63SEmmanuel Vadot&cpu_l1 {
113*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
114*8d13bc63SEmmanuel Vadot};
115*8d13bc63SEmmanuel Vadot
116*8d13bc63SEmmanuel Vadot&cpu_l2 {
117*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
118*8d13bc63SEmmanuel Vadot};
119*8d13bc63SEmmanuel Vadot
120*8d13bc63SEmmanuel Vadot&cpu_l3 {
121*8d13bc63SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
122*8d13bc63SEmmanuel Vadot};
123*8d13bc63SEmmanuel Vadot
124*8d13bc63SEmmanuel Vadot&gmac0 {
125*8d13bc63SEmmanuel Vadot	clock_in_out = "output";
126*8d13bc63SEmmanuel Vadot	phy-handle = <&rgmii_phy>;
127*8d13bc63SEmmanuel Vadot	phy-mode = "rgmii-rxid";
128*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&gmac0_miim
129*8d13bc63SEmmanuel Vadot		     &gmac0_tx_bus2
130*8d13bc63SEmmanuel Vadot		     &gmac0_rx_bus2
131*8d13bc63SEmmanuel Vadot		     &gmac0_rgmii_clk
132*8d13bc63SEmmanuel Vadot		     &gmac0_rgmii_bus>;
133*8d13bc63SEmmanuel Vadot	pinctrl-names = "default";
134*8d13bc63SEmmanuel Vadot	rx_delay = <0x00>;
135*8d13bc63SEmmanuel Vadot	tx_delay = <0x43>;
136*8d13bc63SEmmanuel Vadot	status = "okay";
137*8d13bc63SEmmanuel Vadot};
138*8d13bc63SEmmanuel Vadot
139*8d13bc63SEmmanuel Vadot&i2c0 {
140*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&i2c0m2_xfer>;
141*8d13bc63SEmmanuel Vadot	status = "okay";
142*8d13bc63SEmmanuel Vadot
143*8d13bc63SEmmanuel Vadot	vdd_cpu_big0_s0: regulator@42 {
144*8d13bc63SEmmanuel Vadot		compatible = "rockchip,rk8602";
145*8d13bc63SEmmanuel Vadot		reg = <0x42>;
146*8d13bc63SEmmanuel Vadot		fcs,suspend-voltage-selector = <1>;
147*8d13bc63SEmmanuel Vadot		regulator-name = "vdd_cpu_big0_s0";
148*8d13bc63SEmmanuel Vadot		regulator-always-on;
149*8d13bc63SEmmanuel Vadot		regulator-boot-on;
150*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <550000>;
151*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1050000>;
152*8d13bc63SEmmanuel Vadot		regulator-ramp-delay = <2300>;
153*8d13bc63SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
154*8d13bc63SEmmanuel Vadot
155*8d13bc63SEmmanuel Vadot		regulator-state-mem {
156*8d13bc63SEmmanuel Vadot			regulator-off-in-suspend;
157*8d13bc63SEmmanuel Vadot		};
158*8d13bc63SEmmanuel Vadot	};
159*8d13bc63SEmmanuel Vadot
160*8d13bc63SEmmanuel Vadot	vdd_cpu_big1_s0: regulator@43 {
161*8d13bc63SEmmanuel Vadot		compatible = "rockchip,rk8603", "rockchip,rk8602";
162*8d13bc63SEmmanuel Vadot		reg = <0x43>;
163*8d13bc63SEmmanuel Vadot		fcs,suspend-voltage-selector = <1>;
164*8d13bc63SEmmanuel Vadot		regulator-name = "vdd_cpu_big1_s0";
165*8d13bc63SEmmanuel Vadot		regulator-always-on;
166*8d13bc63SEmmanuel Vadot		regulator-boot-on;
167*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <550000>;
168*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1050000>;
169*8d13bc63SEmmanuel Vadot		regulator-ramp-delay = <2300>;
170*8d13bc63SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
171*8d13bc63SEmmanuel Vadot
172*8d13bc63SEmmanuel Vadot		regulator-state-mem {
173*8d13bc63SEmmanuel Vadot			regulator-off-in-suspend;
174*8d13bc63SEmmanuel Vadot		};
175*8d13bc63SEmmanuel Vadot	};
176*8d13bc63SEmmanuel Vadot};
177*8d13bc63SEmmanuel Vadot
178*8d13bc63SEmmanuel Vadot&i2c2 {
179*8d13bc63SEmmanuel Vadot	status = "okay";
180*8d13bc63SEmmanuel Vadot
181*8d13bc63SEmmanuel Vadot	vdd_npu_s0: regulator@42 {
182*8d13bc63SEmmanuel Vadot		compatible = "rockchip,rk8602";
183*8d13bc63SEmmanuel Vadot		reg = <0x42>;
184*8d13bc63SEmmanuel Vadot		fcs,suspend-voltage-selector = <1>;
185*8d13bc63SEmmanuel Vadot		regulator-name = "vdd_npu_s0";
186*8d13bc63SEmmanuel Vadot		regulator-always-on;
187*8d13bc63SEmmanuel Vadot		regulator-boot-on;
188*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <550000>;
189*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <950000>;
190*8d13bc63SEmmanuel Vadot		regulator-ramp-delay = <2300>;
191*8d13bc63SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
192*8d13bc63SEmmanuel Vadot
193*8d13bc63SEmmanuel Vadot		regulator-state-mem {
194*8d13bc63SEmmanuel Vadot			regulator-off-in-suspend;
195*8d13bc63SEmmanuel Vadot		};
196*8d13bc63SEmmanuel Vadot	};
197*8d13bc63SEmmanuel Vadot};
198*8d13bc63SEmmanuel Vadot
199*8d13bc63SEmmanuel Vadot&i2c6 {
200*8d13bc63SEmmanuel Vadot	status = "okay";
201*8d13bc63SEmmanuel Vadot
202*8d13bc63SEmmanuel Vadot	hym8563: rtc@51 {
203*8d13bc63SEmmanuel Vadot		compatible = "haoyu,hym8563";
204*8d13bc63SEmmanuel Vadot		reg = <0x51>;
205*8d13bc63SEmmanuel Vadot		interrupt-parent = <&gpio0>;
206*8d13bc63SEmmanuel Vadot		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
207*8d13bc63SEmmanuel Vadot		#clock-cells = <0>;
208*8d13bc63SEmmanuel Vadot		clock-output-names = "hym8563";
209*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
210*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&hym8563_int>;
211*8d13bc63SEmmanuel Vadot		wakeup-source;
212*8d13bc63SEmmanuel Vadot	};
213*8d13bc63SEmmanuel Vadot};
214*8d13bc63SEmmanuel Vadot
215*8d13bc63SEmmanuel Vadot&i2c7 {
216*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&i2c7m0_xfer>;
217*8d13bc63SEmmanuel Vadot	status = "okay";
218*8d13bc63SEmmanuel Vadot
219*8d13bc63SEmmanuel Vadot	es8316: audio-codec@11 {
220*8d13bc63SEmmanuel Vadot		compatible = "everest,es8316";
221*8d13bc63SEmmanuel Vadot		reg = <0x11>;
222*8d13bc63SEmmanuel Vadot		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
223*8d13bc63SEmmanuel Vadot		assigned-clock-rates = <12288000>;
224*8d13bc63SEmmanuel Vadot		clocks = <&cru I2S0_8CH_MCLKOUT>;
225*8d13bc63SEmmanuel Vadot		clock-names = "mclk";
226*8d13bc63SEmmanuel Vadot		#sound-dai-cells = <0>;
227*8d13bc63SEmmanuel Vadot
228*8d13bc63SEmmanuel Vadot		port {
229*8d13bc63SEmmanuel Vadot			es8316_p0_0: endpoint {
230*8d13bc63SEmmanuel Vadot				remote-endpoint = <&i2s0_8ch_p0_0>;
231*8d13bc63SEmmanuel Vadot			};
232*8d13bc63SEmmanuel Vadot		};
233*8d13bc63SEmmanuel Vadot	};
234*8d13bc63SEmmanuel Vadot};
235*8d13bc63SEmmanuel Vadot
236*8d13bc63SEmmanuel Vadot&i2s0_8ch {
237*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&i2s0_lrck
238*8d13bc63SEmmanuel Vadot		     &i2s0_mclk
239*8d13bc63SEmmanuel Vadot		     &i2s0_sclk
240*8d13bc63SEmmanuel Vadot		     &i2s0_sdi0
241*8d13bc63SEmmanuel Vadot		     &i2s0_sdo0>;
242*8d13bc63SEmmanuel Vadot	status = "okay";
243*8d13bc63SEmmanuel Vadot
244*8d13bc63SEmmanuel Vadot	i2s0_8ch_p0: port {
245*8d13bc63SEmmanuel Vadot		i2s0_8ch_p0_0: endpoint {
246*8d13bc63SEmmanuel Vadot			dai-format = "i2s";
247*8d13bc63SEmmanuel Vadot			mclk-fs = <256>;
248*8d13bc63SEmmanuel Vadot			remote-endpoint = <&es8316_p0_0>;
249*8d13bc63SEmmanuel Vadot		};
250*8d13bc63SEmmanuel Vadot	};
251*8d13bc63SEmmanuel Vadot};
252*8d13bc63SEmmanuel Vadot
253*8d13bc63SEmmanuel Vadot&mdio0 {
254*8d13bc63SEmmanuel Vadot	rgmii_phy: ethernet-phy@1 {
255*8d13bc63SEmmanuel Vadot		/* YT8531C/H */
256*8d13bc63SEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
257*8d13bc63SEmmanuel Vadot		reg = <0x1>;
258*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
259*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&yt8531_rst>;
260*8d13bc63SEmmanuel Vadot		reset-assert-us = <20000>;
261*8d13bc63SEmmanuel Vadot		reset-deassert-us = <100000>;
262*8d13bc63SEmmanuel Vadot		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
263*8d13bc63SEmmanuel Vadot	};
264*8d13bc63SEmmanuel Vadot};
265*8d13bc63SEmmanuel Vadot
266*8d13bc63SEmmanuel Vadot/* ethernet */
267*8d13bc63SEmmanuel Vadot&pcie2x1l2 {
268*8d13bc63SEmmanuel Vadot	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
269*8d13bc63SEmmanuel Vadot	vpcie3v3-supply = <&vcc3v3_sys>;
270*8d13bc63SEmmanuel Vadot	pinctrl-names = "default";
271*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&yt6801_isolate>;
272*8d13bc63SEmmanuel Vadot	status = "okay";
273*8d13bc63SEmmanuel Vadot};
274*8d13bc63SEmmanuel Vadot
275*8d13bc63SEmmanuel Vadot&pinctrl {
276*8d13bc63SEmmanuel Vadot	hym8563 {
277*8d13bc63SEmmanuel Vadot		hym8563_int: hym8563-int {
278*8d13bc63SEmmanuel Vadot			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
279*8d13bc63SEmmanuel Vadot		};
280*8d13bc63SEmmanuel Vadot	};
281*8d13bc63SEmmanuel Vadot
282*8d13bc63SEmmanuel Vadot	yt6801 {
283*8d13bc63SEmmanuel Vadot		yt6801_isolate: yt6801-isolate {
284*8d13bc63SEmmanuel Vadot			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
285*8d13bc63SEmmanuel Vadot		};
286*8d13bc63SEmmanuel Vadot	};
287*8d13bc63SEmmanuel Vadot
288*8d13bc63SEmmanuel Vadot	yt8531 {
289*8d13bc63SEmmanuel Vadot		yt8531_rst: yt8531-rst {
290*8d13bc63SEmmanuel Vadot			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
291*8d13bc63SEmmanuel Vadot		};
292*8d13bc63SEmmanuel Vadot	};
293*8d13bc63SEmmanuel Vadot};
294*8d13bc63SEmmanuel Vadot
295*8d13bc63SEmmanuel Vadot&saradc {
296*8d13bc63SEmmanuel Vadot	vref-supply = <&vcc_1v8_s0>;
297*8d13bc63SEmmanuel Vadot	status = "okay";
298*8d13bc63SEmmanuel Vadot};
299*8d13bc63SEmmanuel Vadot
300*8d13bc63SEmmanuel Vadot&sdhci {
301*8d13bc63SEmmanuel Vadot	bus-width = <8>;
302*8d13bc63SEmmanuel Vadot	max-frequency = <200000000>;
303*8d13bc63SEmmanuel Vadot	mmc-hs400-1_8v;
304*8d13bc63SEmmanuel Vadot	mmc-hs400-enhanced-strobe;
305*8d13bc63SEmmanuel Vadot	no-sdio;
306*8d13bc63SEmmanuel Vadot	no-sd;
307*8d13bc63SEmmanuel Vadot	non-removable;
308*8d13bc63SEmmanuel Vadot	status = "okay";
309*8d13bc63SEmmanuel Vadot};
310*8d13bc63SEmmanuel Vadot
311*8d13bc63SEmmanuel Vadot&sdmmc {
312*8d13bc63SEmmanuel Vadot	bus-width = <4>;
313*8d13bc63SEmmanuel Vadot	cap-mmc-highspeed;
314*8d13bc63SEmmanuel Vadot	cap-sd-highspeed;
315*8d13bc63SEmmanuel Vadot	disable-wp;
316*8d13bc63SEmmanuel Vadot	max-frequency = <150000000>;
317*8d13bc63SEmmanuel Vadot	no-sdio;
318*8d13bc63SEmmanuel Vadot	no-mmc;
319*8d13bc63SEmmanuel Vadot	sd-uhs-sdr104;
320*8d13bc63SEmmanuel Vadot	vqmmc-supply = <&vccio_sd_s0>;
321*8d13bc63SEmmanuel Vadot	status = "okay";
322*8d13bc63SEmmanuel Vadot};
323*8d13bc63SEmmanuel Vadot
324*8d13bc63SEmmanuel Vadot&spi2 {
325*8d13bc63SEmmanuel Vadot	assigned-clocks = <&cru CLK_SPI2>;
326*8d13bc63SEmmanuel Vadot	assigned-clock-rates = <200000000>;
327*8d13bc63SEmmanuel Vadot	num-cs = <1>;
328*8d13bc63SEmmanuel Vadot	pinctrl-names = "default";
329*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
330*8d13bc63SEmmanuel Vadot	status = "okay";
331*8d13bc63SEmmanuel Vadot
332*8d13bc63SEmmanuel Vadot	pmic@0 {
333*8d13bc63SEmmanuel Vadot		compatible = "rockchip,rk806";
334*8d13bc63SEmmanuel Vadot		reg = <0x0>;
335*8d13bc63SEmmanuel Vadot		interrupt-parent = <&gpio0>;
336*8d13bc63SEmmanuel Vadot		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
337*8d13bc63SEmmanuel Vadot		gpio-controller;
338*8d13bc63SEmmanuel Vadot		#gpio-cells = <2>;
339*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
340*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
341*8d13bc63SEmmanuel Vadot			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
342*8d13bc63SEmmanuel Vadot		spi-max-frequency = <1000000>;
343*8d13bc63SEmmanuel Vadot		vcc1-supply = <&vcc5v0_sys>;
344*8d13bc63SEmmanuel Vadot		vcc2-supply = <&vcc5v0_sys>;
345*8d13bc63SEmmanuel Vadot		vcc3-supply = <&vcc5v0_sys>;
346*8d13bc63SEmmanuel Vadot		vcc4-supply = <&vcc5v0_sys>;
347*8d13bc63SEmmanuel Vadot		vcc5-supply = <&vcc5v0_sys>;
348*8d13bc63SEmmanuel Vadot		vcc6-supply = <&vcc5v0_sys>;
349*8d13bc63SEmmanuel Vadot		vcc7-supply = <&vcc5v0_sys>;
350*8d13bc63SEmmanuel Vadot		vcc8-supply = <&vcc5v0_sys>;
351*8d13bc63SEmmanuel Vadot		vcc9-supply = <&vcc5v0_sys>;
352*8d13bc63SEmmanuel Vadot		vcc10-supply = <&vcc5v0_sys>;
353*8d13bc63SEmmanuel Vadot		vcc11-supply = <&vcc_2v0_pldo_s3>;
354*8d13bc63SEmmanuel Vadot		vcc12-supply = <&vcc5v0_sys>;
355*8d13bc63SEmmanuel Vadot		vcc13-supply = <&vcc_2v0_pldo_s3>;
356*8d13bc63SEmmanuel Vadot		vcc14-supply = <&vcc_2v0_pldo_s3>;
357*8d13bc63SEmmanuel Vadot		vcca-supply = <&vcc5v0_sys>;
358*8d13bc63SEmmanuel Vadot
359*8d13bc63SEmmanuel Vadot		rk806_dvs1_null: dvs1-null-pins {
360*8d13bc63SEmmanuel Vadot			pins = "gpio_pwrctrl2";
361*8d13bc63SEmmanuel Vadot			function = "pin_fun0";
362*8d13bc63SEmmanuel Vadot		};
363*8d13bc63SEmmanuel Vadot
364*8d13bc63SEmmanuel Vadot		rk806_dvs2_null: dvs2-null-pins {
365*8d13bc63SEmmanuel Vadot			pins = "gpio_pwrctrl2";
366*8d13bc63SEmmanuel Vadot			function = "pin_fun0";
367*8d13bc63SEmmanuel Vadot		};
368*8d13bc63SEmmanuel Vadot
369*8d13bc63SEmmanuel Vadot		rk806_dvs3_null: dvs3-null-pins {
370*8d13bc63SEmmanuel Vadot			pins = "gpio_pwrctrl3";
371*8d13bc63SEmmanuel Vadot			function = "pin_fun0";
372*8d13bc63SEmmanuel Vadot		};
373*8d13bc63SEmmanuel Vadot
374*8d13bc63SEmmanuel Vadot		regulators {
375*8d13bc63SEmmanuel Vadot			vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
376*8d13bc63SEmmanuel Vadot				regulator-boot-on;
377*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <550000>;
378*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <950000>;
379*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
380*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_gpu_s0";
381*8d13bc63SEmmanuel Vadot				regulator-enable-ramp-delay = <400>;
382*8d13bc63SEmmanuel Vadot
383*8d13bc63SEmmanuel Vadot				regulator-state-mem {
384*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
385*8d13bc63SEmmanuel Vadot				};
386*8d13bc63SEmmanuel Vadot			};
387*8d13bc63SEmmanuel Vadot
388*8d13bc63SEmmanuel Vadot			vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
389*8d13bc63SEmmanuel Vadot				regulator-always-on;
390*8d13bc63SEmmanuel Vadot				regulator-boot-on;
391*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <550000>;
392*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <950000>;
393*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
394*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_cpu_lit_s0";
395*8d13bc63SEmmanuel Vadot
396*8d13bc63SEmmanuel Vadot				regulator-state-mem {
397*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
398*8d13bc63SEmmanuel Vadot				};
399*8d13bc63SEmmanuel Vadot			};
400*8d13bc63SEmmanuel Vadot
401*8d13bc63SEmmanuel Vadot			vdd_log_s0: dcdc-reg3 {
402*8d13bc63SEmmanuel Vadot				regulator-always-on;
403*8d13bc63SEmmanuel Vadot				regulator-boot-on;
404*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <675000>;
405*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <750000>;
406*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
407*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_log_s0";
408*8d13bc63SEmmanuel Vadot
409*8d13bc63SEmmanuel Vadot				regulator-state-mem {
410*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
411*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <750000>;
412*8d13bc63SEmmanuel Vadot				};
413*8d13bc63SEmmanuel Vadot			};
414*8d13bc63SEmmanuel Vadot
415*8d13bc63SEmmanuel Vadot			vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
416*8d13bc63SEmmanuel Vadot				regulator-always-on;
417*8d13bc63SEmmanuel Vadot				regulator-boot-on;
418*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <550000>;
419*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <950000>;
420*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
421*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_vdenc_s0";
422*8d13bc63SEmmanuel Vadot
423*8d13bc63SEmmanuel Vadot				regulator-state-mem {
424*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
425*8d13bc63SEmmanuel Vadot				};
426*8d13bc63SEmmanuel Vadot			};
427*8d13bc63SEmmanuel Vadot
428*8d13bc63SEmmanuel Vadot			vdd_ddr_s0: dcdc-reg5 {
429*8d13bc63SEmmanuel Vadot				regulator-always-on;
430*8d13bc63SEmmanuel Vadot				regulator-boot-on;
431*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <675000>;
432*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <900000>;
433*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
434*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_ddr_s0";
435*8d13bc63SEmmanuel Vadot
436*8d13bc63SEmmanuel Vadot				regulator-state-mem {
437*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
438*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <850000>;
439*8d13bc63SEmmanuel Vadot				};
440*8d13bc63SEmmanuel Vadot			};
441*8d13bc63SEmmanuel Vadot
442*8d13bc63SEmmanuel Vadot			vdd2_ddr_s3: dcdc-reg6 {
443*8d13bc63SEmmanuel Vadot				regulator-always-on;
444*8d13bc63SEmmanuel Vadot				regulator-boot-on;
445*8d13bc63SEmmanuel Vadot				regulator-name = "vdd2_ddr_s3";
446*8d13bc63SEmmanuel Vadot
447*8d13bc63SEmmanuel Vadot				regulator-state-mem {
448*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
449*8d13bc63SEmmanuel Vadot				};
450*8d13bc63SEmmanuel Vadot			};
451*8d13bc63SEmmanuel Vadot
452*8d13bc63SEmmanuel Vadot			vcc_2v0_pldo_s3: dcdc-reg7 {
453*8d13bc63SEmmanuel Vadot				regulator-always-on;
454*8d13bc63SEmmanuel Vadot				regulator-boot-on;
455*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <2000000>;
456*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <2000000>;
457*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
458*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_2v0_pldo_s3";
459*8d13bc63SEmmanuel Vadot
460*8d13bc63SEmmanuel Vadot				regulator-state-mem {
461*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
462*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <2000000>;
463*8d13bc63SEmmanuel Vadot				};
464*8d13bc63SEmmanuel Vadot			};
465*8d13bc63SEmmanuel Vadot
466*8d13bc63SEmmanuel Vadot			vcc_3v3_s3: dcdc-reg8 {
467*8d13bc63SEmmanuel Vadot				regulator-always-on;
468*8d13bc63SEmmanuel Vadot				regulator-boot-on;
469*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
470*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
471*8d13bc63SEmmanuel Vadot				regulator-name = "vcc_3v3_s3";
472*8d13bc63SEmmanuel Vadot
473*8d13bc63SEmmanuel Vadot				regulator-state-mem {
474*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
475*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
476*8d13bc63SEmmanuel Vadot				};
477*8d13bc63SEmmanuel Vadot			};
478*8d13bc63SEmmanuel Vadot
479*8d13bc63SEmmanuel Vadot			vddq_ddr_s0: dcdc-reg9 {
480*8d13bc63SEmmanuel Vadot				regulator-always-on;
481*8d13bc63SEmmanuel Vadot				regulator-boot-on;
482*8d13bc63SEmmanuel Vadot				regulator-name = "vddq_ddr_s0";
483*8d13bc63SEmmanuel Vadot
484*8d13bc63SEmmanuel Vadot				regulator-state-mem {
485*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
486*8d13bc63SEmmanuel Vadot				};
487*8d13bc63SEmmanuel Vadot			};
488*8d13bc63SEmmanuel Vadot
489*8d13bc63SEmmanuel Vadot			vcc_1v8_s3: dcdc-reg10 {
490*8d13bc63SEmmanuel Vadot				regulator-always-on;
491*8d13bc63SEmmanuel Vadot				regulator-boot-on;
492*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
493*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
494*8d13bc63SEmmanuel Vadot				regulator-name = "vcc_1v8_s3";
495*8d13bc63SEmmanuel Vadot
496*8d13bc63SEmmanuel Vadot				regulator-state-mem {
497*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
498*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
499*8d13bc63SEmmanuel Vadot				};
500*8d13bc63SEmmanuel Vadot			};
501*8d13bc63SEmmanuel Vadot
502*8d13bc63SEmmanuel Vadot			avcc_1v8_s0: pldo-reg1 {
503*8d13bc63SEmmanuel Vadot				regulator-always-on;
504*8d13bc63SEmmanuel Vadot				regulator-boot-on;
505*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
506*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
507*8d13bc63SEmmanuel Vadot				regulator-name = "avcc_1v8_s0";
508*8d13bc63SEmmanuel Vadot
509*8d13bc63SEmmanuel Vadot				regulator-state-mem {
510*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
511*8d13bc63SEmmanuel Vadot				};
512*8d13bc63SEmmanuel Vadot			};
513*8d13bc63SEmmanuel Vadot
514*8d13bc63SEmmanuel Vadot			vcc_1v8_s0: pldo-reg2 {
515*8d13bc63SEmmanuel Vadot				regulator-always-on;
516*8d13bc63SEmmanuel Vadot				regulator-boot-on;
517*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
518*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
519*8d13bc63SEmmanuel Vadot				regulator-name = "vcc_1v8_s0";
520*8d13bc63SEmmanuel Vadot
521*8d13bc63SEmmanuel Vadot				regulator-state-mem {
522*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
523*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
524*8d13bc63SEmmanuel Vadot				};
525*8d13bc63SEmmanuel Vadot			};
526*8d13bc63SEmmanuel Vadot
527*8d13bc63SEmmanuel Vadot			avdd_1v2_s0: pldo-reg3 {
528*8d13bc63SEmmanuel Vadot				regulator-always-on;
529*8d13bc63SEmmanuel Vadot				regulator-boot-on;
530*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1200000>;
531*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <1200000>;
532*8d13bc63SEmmanuel Vadot				regulator-name = "avdd_1v2_s0";
533*8d13bc63SEmmanuel Vadot
534*8d13bc63SEmmanuel Vadot				regulator-state-mem {
535*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
536*8d13bc63SEmmanuel Vadot				};
537*8d13bc63SEmmanuel Vadot			};
538*8d13bc63SEmmanuel Vadot
539*8d13bc63SEmmanuel Vadot			vcc_3v3_s0: pldo-reg4 {
540*8d13bc63SEmmanuel Vadot				regulator-always-on;
541*8d13bc63SEmmanuel Vadot				regulator-boot-on;
542*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
543*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
544*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
545*8d13bc63SEmmanuel Vadot				regulator-name = "vcc_3v3_s0";
546*8d13bc63SEmmanuel Vadot
547*8d13bc63SEmmanuel Vadot				regulator-state-mem {
548*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
549*8d13bc63SEmmanuel Vadot				};
550*8d13bc63SEmmanuel Vadot			};
551*8d13bc63SEmmanuel Vadot
552*8d13bc63SEmmanuel Vadot			vccio_sd_s0: pldo-reg5 {
553*8d13bc63SEmmanuel Vadot				regulator-always-on;
554*8d13bc63SEmmanuel Vadot				regulator-boot-on;
555*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
556*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
557*8d13bc63SEmmanuel Vadot				regulator-ramp-delay = <12500>;
558*8d13bc63SEmmanuel Vadot				regulator-name = "vccio_sd_s0";
559*8d13bc63SEmmanuel Vadot
560*8d13bc63SEmmanuel Vadot				regulator-state-mem {
561*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
562*8d13bc63SEmmanuel Vadot				};
563*8d13bc63SEmmanuel Vadot			};
564*8d13bc63SEmmanuel Vadot
565*8d13bc63SEmmanuel Vadot			pldo6_s3: pldo-reg6 {
566*8d13bc63SEmmanuel Vadot				regulator-always-on;
567*8d13bc63SEmmanuel Vadot				regulator-boot-on;
568*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
569*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
570*8d13bc63SEmmanuel Vadot				regulator-name = "pldo6_s3";
571*8d13bc63SEmmanuel Vadot
572*8d13bc63SEmmanuel Vadot				regulator-state-mem {
573*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
574*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
575*8d13bc63SEmmanuel Vadot				};
576*8d13bc63SEmmanuel Vadot			};
577*8d13bc63SEmmanuel Vadot
578*8d13bc63SEmmanuel Vadot			vdd_0v75_s3: nldo-reg1 {
579*8d13bc63SEmmanuel Vadot				regulator-always-on;
580*8d13bc63SEmmanuel Vadot				regulator-boot-on;
581*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <750000>;
582*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <750000>;
583*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_0v75_s3";
584*8d13bc63SEmmanuel Vadot
585*8d13bc63SEmmanuel Vadot				regulator-state-mem {
586*8d13bc63SEmmanuel Vadot					regulator-on-in-suspend;
587*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <750000>;
588*8d13bc63SEmmanuel Vadot				};
589*8d13bc63SEmmanuel Vadot			};
590*8d13bc63SEmmanuel Vadot
591*8d13bc63SEmmanuel Vadot			vdd_ddr_pll_s0: nldo-reg2 {
592*8d13bc63SEmmanuel Vadot				regulator-always-on;
593*8d13bc63SEmmanuel Vadot				regulator-boot-on;
594*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <850000>;
595*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <850000>;
596*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_ddr_pll_s0";
597*8d13bc63SEmmanuel Vadot
598*8d13bc63SEmmanuel Vadot				regulator-state-mem {
599*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
600*8d13bc63SEmmanuel Vadot					regulator-suspend-microvolt = <850000>;
601*8d13bc63SEmmanuel Vadot				};
602*8d13bc63SEmmanuel Vadot			};
603*8d13bc63SEmmanuel Vadot
604*8d13bc63SEmmanuel Vadot			avdd_0v75_s0: nldo-reg3 {
605*8d13bc63SEmmanuel Vadot				regulator-always-on;
606*8d13bc63SEmmanuel Vadot				regulator-boot-on;
607*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <750000>;
608*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <750000>;
609*8d13bc63SEmmanuel Vadot				regulator-name = "avdd_0v75_s0";
610*8d13bc63SEmmanuel Vadot
611*8d13bc63SEmmanuel Vadot				regulator-state-mem {
612*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
613*8d13bc63SEmmanuel Vadot				};
614*8d13bc63SEmmanuel Vadot			};
615*8d13bc63SEmmanuel Vadot
616*8d13bc63SEmmanuel Vadot			vdd_0v85_s0: nldo-reg4 {
617*8d13bc63SEmmanuel Vadot				regulator-always-on;
618*8d13bc63SEmmanuel Vadot				regulator-boot-on;
619*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <850000>;
620*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <850000>;
621*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_0v85_s0";
622*8d13bc63SEmmanuel Vadot
623*8d13bc63SEmmanuel Vadot				regulator-state-mem {
624*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
625*8d13bc63SEmmanuel Vadot				};
626*8d13bc63SEmmanuel Vadot			};
627*8d13bc63SEmmanuel Vadot
628*8d13bc63SEmmanuel Vadot			vdd_0v75_s0: nldo-reg5 {
629*8d13bc63SEmmanuel Vadot				regulator-always-on;
630*8d13bc63SEmmanuel Vadot				regulator-boot-on;
631*8d13bc63SEmmanuel Vadot				regulator-min-microvolt = <750000>;
632*8d13bc63SEmmanuel Vadot				regulator-max-microvolt = <750000>;
633*8d13bc63SEmmanuel Vadot				regulator-name = "vdd_0v75_s0";
634*8d13bc63SEmmanuel Vadot
635*8d13bc63SEmmanuel Vadot				regulator-state-mem {
636*8d13bc63SEmmanuel Vadot					regulator-off-in-suspend;
637*8d13bc63SEmmanuel Vadot				};
638*8d13bc63SEmmanuel Vadot			};
639*8d13bc63SEmmanuel Vadot		};
640*8d13bc63SEmmanuel Vadot	};
641*8d13bc63SEmmanuel Vadot};
642*8d13bc63SEmmanuel Vadot
643*8d13bc63SEmmanuel Vadot&tsadc {
644*8d13bc63SEmmanuel Vadot	status = "okay";
645*8d13bc63SEmmanuel Vadot};
646*8d13bc63SEmmanuel Vadot
647*8d13bc63SEmmanuel Vadot&uart2 {
648*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&uart2m0_xfer>;
649*8d13bc63SEmmanuel Vadot	status = "okay";
650*8d13bc63SEmmanuel Vadot};
651