1*7469ab52SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*7469ab52SJagan Teki/*
3*7469ab52SJagan Teki * Copyright (c) 2022 Radxa Limited
4*7469ab52SJagan Teki * Copyright (c) 2022 Amarula Solutions(India)
5*7469ab52SJagan Teki */
6*7469ab52SJagan Teki
7*7469ab52SJagan Teki#include <dt-bindings/gpio/gpio.h>
8*7469ab52SJagan Teki#include <dt-bindings/leds/common.h>
9*7469ab52SJagan Teki
10*7469ab52SJagan Teki/ {
11*7469ab52SJagan Teki	compatible = "radxa,radxa-cm3", "rockchip,rk3566";
12*7469ab52SJagan Teki
13*7469ab52SJagan Teki	aliases {
14*7469ab52SJagan Teki		mmc0 = &sdhci;
15*7469ab52SJagan Teki	};
16*7469ab52SJagan Teki
17*7469ab52SJagan Teki	leds {
18*7469ab52SJagan Teki		compatible = "gpio-leds";
19*7469ab52SJagan Teki
20*7469ab52SJagan Teki		led-0 {
21*7469ab52SJagan Teki			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
22*7469ab52SJagan Teki			color = <LED_COLOR_ID_GREEN>;
23*7469ab52SJagan Teki			function = LED_FUNCTION_STATUS;
24*7469ab52SJagan Teki			linux,default-trigger = "timer";
25*7469ab52SJagan Teki			default-state = "on";
26*7469ab52SJagan Teki			pinctrl-names = "default";
27*7469ab52SJagan Teki			pinctrl-0 = <&user_led2>;
28*7469ab52SJagan Teki		};
29*7469ab52SJagan Teki	};
30*7469ab52SJagan Teki
31*7469ab52SJagan Teki	vcc_sys: vcc-sys-regulator {
32*7469ab52SJagan Teki		compatible = "regulator-fixed";
33*7469ab52SJagan Teki		regulator-name = "vcc_sys";
34*7469ab52SJagan Teki		regulator-always-on;
35*7469ab52SJagan Teki		regulator-boot-on;
36*7469ab52SJagan Teki		regulator-min-microvolt = <5000000>;
37*7469ab52SJagan Teki		regulator-max-microvolt = <5000000>;
38*7469ab52SJagan Teki	};
39*7469ab52SJagan Teki
40*7469ab52SJagan Teki	vcc_1v8: vcc-1v8-regulator {
41*7469ab52SJagan Teki		compatible = "regulator-fixed";
42*7469ab52SJagan Teki		regulator-name = "vcc_1v8";
43*7469ab52SJagan Teki		regulator-always-on;
44*7469ab52SJagan Teki		regulator-boot-on;
45*7469ab52SJagan Teki		regulator-min-microvolt = <1800000>;
46*7469ab52SJagan Teki		regulator-max-microvolt = <1800000>;
47*7469ab52SJagan Teki		vin-supply = <&vcc_1v8_p>;
48*7469ab52SJagan Teki	};
49*7469ab52SJagan Teki
50*7469ab52SJagan Teki	vcc_3v3: vcc-3v3-regulator {
51*7469ab52SJagan Teki		compatible = "regulator-fixed";
52*7469ab52SJagan Teki		regulator-name = "vcc_3v3";
53*7469ab52SJagan Teki		regulator-always-on;
54*7469ab52SJagan Teki		regulator-boot-on;
55*7469ab52SJagan Teki		regulator-min-microvolt = <3300000>;
56*7469ab52SJagan Teki		regulator-max-microvolt = <3300000>;
57*7469ab52SJagan Teki		vin-supply = <&vcc3v3_sys>;
58*7469ab52SJagan Teki	};
59*7469ab52SJagan Teki
60*7469ab52SJagan Teki	vcca_1v8: vcca-1v8-regulator {
61*7469ab52SJagan Teki		compatible = "regulator-fixed";
62*7469ab52SJagan Teki		regulator-name = "vcca_1v8";
63*7469ab52SJagan Teki		regulator-always-on;
64*7469ab52SJagan Teki		regulator-boot-on;
65*7469ab52SJagan Teki		regulator-min-microvolt = <1800000>;
66*7469ab52SJagan Teki		regulator-max-microvolt = <1800000>;
67*7469ab52SJagan Teki		vin-supply = <&vcc_1v8_p>;
68*7469ab52SJagan Teki	};
69*7469ab52SJagan Teki};
70*7469ab52SJagan Teki
71*7469ab52SJagan Teki&cpu0 {
72*7469ab52SJagan Teki	cpu-supply = <&vdd_cpu>;
73*7469ab52SJagan Teki};
74*7469ab52SJagan Teki
75*7469ab52SJagan Teki&cpu1 {
76*7469ab52SJagan Teki	cpu-supply = <&vdd_cpu>;
77*7469ab52SJagan Teki};
78*7469ab52SJagan Teki
79*7469ab52SJagan Teki&cpu2 {
80*7469ab52SJagan Teki	cpu-supply = <&vdd_cpu>;
81*7469ab52SJagan Teki};
82*7469ab52SJagan Teki
83*7469ab52SJagan Teki&cpu3 {
84*7469ab52SJagan Teki	cpu-supply = <&vdd_cpu>;
85*7469ab52SJagan Teki};
86*7469ab52SJagan Teki
87*7469ab52SJagan Teki&gpu {
88*7469ab52SJagan Teki	mali-supply = <&vdd_gpu_npu>;
89*7469ab52SJagan Teki	status = "okay";
90*7469ab52SJagan Teki};
91*7469ab52SJagan Teki
92*7469ab52SJagan Teki&i2c0 {
93*7469ab52SJagan Teki	status = "okay";
94*7469ab52SJagan Teki
95*7469ab52SJagan Teki	vdd_cpu: regulator@1c {
96*7469ab52SJagan Teki		compatible = "tcs,tcs4525";
97*7469ab52SJagan Teki		reg = <0x1c>;
98*7469ab52SJagan Teki		fcs,suspend-voltage-selector = <1>;
99*7469ab52SJagan Teki		regulator-name = "vdd_cpu";
100*7469ab52SJagan Teki		regulator-always-on;
101*7469ab52SJagan Teki		regulator-boot-on;
102*7469ab52SJagan Teki		regulator-min-microvolt = <712500>;
103*7469ab52SJagan Teki		regulator-max-microvolt = <1390000>;
104*7469ab52SJagan Teki		regulator-ramp-delay = <2300>;
105*7469ab52SJagan Teki		vin-supply = <&vcc_sys>;
106*7469ab52SJagan Teki
107*7469ab52SJagan Teki		regulator-state-mem {
108*7469ab52SJagan Teki			regulator-off-in-suspend;
109*7469ab52SJagan Teki		};
110*7469ab52SJagan Teki	};
111*7469ab52SJagan Teki
112*7469ab52SJagan Teki	rk817: pmic@20 {
113*7469ab52SJagan Teki		compatible = "rockchip,rk817";
114*7469ab52SJagan Teki		reg = <0x20>;
115*7469ab52SJagan Teki		#clock-cells = <1>;
116*7469ab52SJagan Teki		clock-output-names = "rk817-clkout1", "rk817-clkout2";
117*7469ab52SJagan Teki		interrupt-parent = <&gpio0>;
118*7469ab52SJagan Teki		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
119*7469ab52SJagan Teki		pinctrl-names = "default";
120*7469ab52SJagan Teki		pinctrl-0 = <&pmic_int_l>;
121*7469ab52SJagan Teki		rockchip,system-power-controller;
122*7469ab52SJagan Teki		wakeup-source;
123*7469ab52SJagan Teki
124*7469ab52SJagan Teki		vcc1-supply = <&vcc_sys>;
125*7469ab52SJagan Teki		vcc2-supply = <&vcc_sys>;
126*7469ab52SJagan Teki		vcc3-supply = <&vcc_sys>;
127*7469ab52SJagan Teki		vcc4-supply = <&vcc_sys>;
128*7469ab52SJagan Teki		vcc5-supply = <&vcc_sys>;
129*7469ab52SJagan Teki		vcc6-supply = <&vcc_sys>;
130*7469ab52SJagan Teki		vcc7-supply = <&vcc_sys>;
131*7469ab52SJagan Teki
132*7469ab52SJagan Teki		regulators {
133*7469ab52SJagan Teki			vdd_logic: DCDC_REG1 {
134*7469ab52SJagan Teki				regulator-name = "vdd_logic";
135*7469ab52SJagan Teki				regulator-always-on;
136*7469ab52SJagan Teki				regulator-boot-on;
137*7469ab52SJagan Teki				regulator-initial-mode = <0x2>;
138*7469ab52SJagan Teki				regulator-min-microvolt = <500000>;
139*7469ab52SJagan Teki				regulator-max-microvolt = <1350000>;
140*7469ab52SJagan Teki				regulator-ramp-delay = <6001>;
141*7469ab52SJagan Teki				regulator-state-mem {
142*7469ab52SJagan Teki					regulator-on-in-suspend;
143*7469ab52SJagan Teki					regulator-suspend-microvolt = <900000>;
144*7469ab52SJagan Teki				};
145*7469ab52SJagan Teki			};
146*7469ab52SJagan Teki
147*7469ab52SJagan Teki			vdd_gpu_npu: DCDC_REG2 {
148*7469ab52SJagan Teki				regulator-name = "vdd_gpu_npu";
149*7469ab52SJagan Teki				regulator-always-on;
150*7469ab52SJagan Teki				regulator-boot-on;
151*7469ab52SJagan Teki				regulator-initial-mode = <0x2>;
152*7469ab52SJagan Teki				regulator-min-microvolt = <500000>;
153*7469ab52SJagan Teki				regulator-max-microvolt = <1350000>;
154*7469ab52SJagan Teki				regulator-ramp-delay = <6001>;
155*7469ab52SJagan Teki				regulator-state-mem {
156*7469ab52SJagan Teki					regulator-off-in-suspend;
157*7469ab52SJagan Teki				};
158*7469ab52SJagan Teki			};
159*7469ab52SJagan Teki
160*7469ab52SJagan Teki			vcc_ddr: DCDC_REG3 {
161*7469ab52SJagan Teki				regulator-name = "vcc_ddr";
162*7469ab52SJagan Teki				regulator-always-on;
163*7469ab52SJagan Teki				regulator-boot-on;
164*7469ab52SJagan Teki				regulator-initial-mode = <0x2>;
165*7469ab52SJagan Teki				regulator-state-mem {
166*7469ab52SJagan Teki					regulator-on-in-suspend;
167*7469ab52SJagan Teki				};
168*7469ab52SJagan Teki			};
169*7469ab52SJagan Teki
170*7469ab52SJagan Teki			vcc3v3_sys: DCDC_REG4 {
171*7469ab52SJagan Teki				regulator-name = "vcc3v3_sys";
172*7469ab52SJagan Teki				regulator-always-on;
173*7469ab52SJagan Teki				regulator-boot-on;
174*7469ab52SJagan Teki				regulator-initial-mode = <0x2>;
175*7469ab52SJagan Teki				regulator-min-microvolt = <3300000>;
176*7469ab52SJagan Teki				regulator-max-microvolt = <3300000>;
177*7469ab52SJagan Teki				regulator-state-mem {
178*7469ab52SJagan Teki					regulator-on-in-suspend;
179*7469ab52SJagan Teki					regulator-suspend-microvolt = <3300000>;
180*7469ab52SJagan Teki				};
181*7469ab52SJagan Teki			};
182*7469ab52SJagan Teki
183*7469ab52SJagan Teki			vcca1v8_pmu: LDO_REG1 {
184*7469ab52SJagan Teki				regulator-name = "vcca1v8_pmu";
185*7469ab52SJagan Teki				regulator-always-on;
186*7469ab52SJagan Teki				regulator-boot-on;
187*7469ab52SJagan Teki				regulator-min-microvolt = <1800000>;
188*7469ab52SJagan Teki				regulator-max-microvolt = <1800000>;
189*7469ab52SJagan Teki				regulator-state-mem {
190*7469ab52SJagan Teki					regulator-on-in-suspend;
191*7469ab52SJagan Teki					regulator-suspend-microvolt = <1800000>;
192*7469ab52SJagan Teki				};
193*7469ab52SJagan Teki			};
194*7469ab52SJagan Teki
195*7469ab52SJagan Teki			vdda_0v9: LDO_REG2 {
196*7469ab52SJagan Teki				regulator-name = "vdda_0v9";
197*7469ab52SJagan Teki				regulator-always-on;
198*7469ab52SJagan Teki				regulator-boot-on;
199*7469ab52SJagan Teki				regulator-min-microvolt = <900000>;
200*7469ab52SJagan Teki				regulator-max-microvolt = <900000>;
201*7469ab52SJagan Teki				regulator-state-mem {
202*7469ab52SJagan Teki					regulator-off-in-suspend;
203*7469ab52SJagan Teki				};
204*7469ab52SJagan Teki			};
205*7469ab52SJagan Teki
206*7469ab52SJagan Teki			vdda0v9_pmu: LDO_REG3 {
207*7469ab52SJagan Teki				regulator-name = "vdda0v9_pmu";
208*7469ab52SJagan Teki				regulator-always-on;
209*7469ab52SJagan Teki				regulator-boot-on;
210*7469ab52SJagan Teki				regulator-min-microvolt = <900000>;
211*7469ab52SJagan Teki				regulator-max-microvolt = <900000>;
212*7469ab52SJagan Teki				regulator-state-mem {
213*7469ab52SJagan Teki					regulator-on-in-suspend;
214*7469ab52SJagan Teki					regulator-suspend-microvolt = <900000>;
215*7469ab52SJagan Teki				};
216*7469ab52SJagan Teki			};
217*7469ab52SJagan Teki
218*7469ab52SJagan Teki			vccio_acodec: LDO_REG4 {
219*7469ab52SJagan Teki				regulator-name = "vccio_acodec";
220*7469ab52SJagan Teki				regulator-always-on;
221*7469ab52SJagan Teki				regulator-boot-on;
222*7469ab52SJagan Teki				regulator-min-microvolt = <3300000>;
223*7469ab52SJagan Teki				regulator-max-microvolt = <3300000>;
224*7469ab52SJagan Teki				regulator-state-mem {
225*7469ab52SJagan Teki					regulator-off-in-suspend;
226*7469ab52SJagan Teki				};
227*7469ab52SJagan Teki			};
228*7469ab52SJagan Teki
229*7469ab52SJagan Teki			vccio_sd: LDO_REG5 {
230*7469ab52SJagan Teki				regulator-name = "vccio_sd";
231*7469ab52SJagan Teki				regulator-always-on;
232*7469ab52SJagan Teki				regulator-boot-on;
233*7469ab52SJagan Teki				regulator-min-microvolt = <1800000>;
234*7469ab52SJagan Teki				regulator-max-microvolt = <3300000>;
235*7469ab52SJagan Teki				regulator-state-mem {
236*7469ab52SJagan Teki					regulator-off-in-suspend;
237*7469ab52SJagan Teki				};
238*7469ab52SJagan Teki			};
239*7469ab52SJagan Teki
240*7469ab52SJagan Teki			vcc3v3_pmu: LDO_REG6 {
241*7469ab52SJagan Teki				regulator-name = "vcc3v3_pmu";
242*7469ab52SJagan Teki				regulator-always-on;
243*7469ab52SJagan Teki				regulator-boot-on;
244*7469ab52SJagan Teki				regulator-min-microvolt = <3300000>;
245*7469ab52SJagan Teki				regulator-max-microvolt = <3300000>;
246*7469ab52SJagan Teki				regulator-state-mem {
247*7469ab52SJagan Teki					regulator-on-in-suspend;
248*7469ab52SJagan Teki					regulator-suspend-microvolt = <3300000>;
249*7469ab52SJagan Teki				};
250*7469ab52SJagan Teki			};
251*7469ab52SJagan Teki
252*7469ab52SJagan Teki			vcc_1v8_p: LDO_REG7 {
253*7469ab52SJagan Teki				regulator-name = "vcc_1v8_p";
254*7469ab52SJagan Teki				regulator-always-on;
255*7469ab52SJagan Teki				regulator-boot-on;
256*7469ab52SJagan Teki				regulator-min-microvolt = <1800000>;
257*7469ab52SJagan Teki				regulator-max-microvolt = <1800000>;
258*7469ab52SJagan Teki				regulator-state-mem {
259*7469ab52SJagan Teki					regulator-off-in-suspend;
260*7469ab52SJagan Teki				};
261*7469ab52SJagan Teki			};
262*7469ab52SJagan Teki
263*7469ab52SJagan Teki			vcc1v8_dvp: LDO_REG8 {
264*7469ab52SJagan Teki				regulator-name = "vcc1v8_dvp";
265*7469ab52SJagan Teki				regulator-always-on;
266*7469ab52SJagan Teki				regulator-boot-on;
267*7469ab52SJagan Teki				regulator-min-microvolt = <1800000>;
268*7469ab52SJagan Teki				regulator-max-microvolt = <1800000>;
269*7469ab52SJagan Teki				regulator-state-mem {
270*7469ab52SJagan Teki					regulator-off-in-suspend;
271*7469ab52SJagan Teki				};
272*7469ab52SJagan Teki			};
273*7469ab52SJagan Teki
274*7469ab52SJagan Teki			vcc2v8_dvp: LDO_REG9 {
275*7469ab52SJagan Teki				regulator-name = "vcc2v8_dvp";
276*7469ab52SJagan Teki				regulator-always-on;
277*7469ab52SJagan Teki				regulator-boot-on;
278*7469ab52SJagan Teki				regulator-min-microvolt = <2800000>;
279*7469ab52SJagan Teki				regulator-max-microvolt = <2800000>;
280*7469ab52SJagan Teki				regulator-state-mem {
281*7469ab52SJagan Teki					regulator-off-in-suspend;
282*7469ab52SJagan Teki				};
283*7469ab52SJagan Teki			};
284*7469ab52SJagan Teki
285*7469ab52SJagan Teki		};
286*7469ab52SJagan Teki	};
287*7469ab52SJagan Teki};
288*7469ab52SJagan Teki
289*7469ab52SJagan Teki&pinctrl {
290*7469ab52SJagan Teki	pmic {
291*7469ab52SJagan Teki		pmic_int_l: pmic-int-l {
292*7469ab52SJagan Teki			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
293*7469ab52SJagan Teki		};
294*7469ab52SJagan Teki	};
295*7469ab52SJagan Teki
296*7469ab52SJagan Teki	leds {
297*7469ab52SJagan Teki		user_led2: user-led2 {
298*7469ab52SJagan Teki			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
299*7469ab52SJagan Teki		};
300*7469ab52SJagan Teki	};
301*7469ab52SJagan Teki};
302*7469ab52SJagan Teki
303*7469ab52SJagan Teki&pmu_io_domains {
304*7469ab52SJagan Teki	pmuio1-supply = <&vcc3v3_pmu>;
305*7469ab52SJagan Teki	pmuio2-supply = <&vcc_3v3>;
306*7469ab52SJagan Teki	vccio1-supply = <&vccio_acodec>;
307*7469ab52SJagan Teki	vccio2-supply = <&vcc_1v8>;
308*7469ab52SJagan Teki	vccio3-supply = <&vccio_sd>;
309*7469ab52SJagan Teki	vccio4-supply = <&vcc_1v8>;
310*7469ab52SJagan Teki	vccio5-supply = <&vcc_3v3>;
311*7469ab52SJagan Teki	vccio6-supply = <&vcc_3v3>;
312*7469ab52SJagan Teki	vccio7-supply = <&vcc_3v3>;
313*7469ab52SJagan Teki	status = "okay";
314*7469ab52SJagan Teki};
315*7469ab52SJagan Teki
316*7469ab52SJagan Teki&saradc {
317*7469ab52SJagan Teki	vref-supply = <&vcca_1v8>;
318*7469ab52SJagan Teki	status = "okay";
319*7469ab52SJagan Teki};
320*7469ab52SJagan Teki
321*7469ab52SJagan Teki&sdhci {
322*7469ab52SJagan Teki	bus-width = <8>;
323*7469ab52SJagan Teki	max-frequency = <200000000>;
324*7469ab52SJagan Teki	mmc-hs200-1_8v;
325*7469ab52SJagan Teki	non-removable;
326*7469ab52SJagan Teki	pinctrl-names = "default";
327*7469ab52SJagan Teki	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
328*7469ab52SJagan Teki	vmmc-supply = <&vcc_3v3>;
329*7469ab52SJagan Teki	vqmmc-supply = <&vcc_1v8>;
330*7469ab52SJagan Teki	status = "okay";
331*7469ab52SJagan Teki};
332*7469ab52SJagan Teki
333*7469ab52SJagan Teki&usb2phy0 {
334*7469ab52SJagan Teki	status = "okay";
335*7469ab52SJagan Teki};
336*7469ab52SJagan Teki
337*7469ab52SJagan Teki&usb2phy1 {
338*7469ab52SJagan Teki	status = "okay";
339*7469ab52SJagan Teki};
340*7469ab52SJagan Teki
341*7469ab52SJagan Teki&tsadc {
342*7469ab52SJagan Teki	rockchip,hw-tshut-mode = <1>;
343*7469ab52SJagan Teki	rockchip,hw-tshut-polarity = <0>;
344*7469ab52SJagan Teki	status = "okay";
345*7469ab52SJagan Teki};
346