1*d92a7c33SMichael Trimarchi// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*d92a7c33SMichael Trimarchi/*
3*d92a7c33SMichael Trimarchi * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
4*d92a7c33SMichael Trimarchi * Copyright (c) 2020 Engicam srl
5*d92a7c33SMichael Trimarchi * Copyright (c) 2020 Amarula Solutons
6*d92a7c33SMichael Trimarchi * Copyright (c) 2020 Amarula Solutons(India)
7*d92a7c33SMichael Trimarchi */
8*d92a7c33SMichael Trimarchi
9*d92a7c33SMichael Trimarchi#include <dt-bindings/gpio/gpio.h>
10*d92a7c33SMichael Trimarchi#include <dt-bindings/pinctrl/rockchip.h>
11*d92a7c33SMichael Trimarchi
12*d92a7c33SMichael Trimarchi/ {
13*d92a7c33SMichael Trimarchi	compatible = "engicam,px30-core", "rockchip,px30";
14*d92a7c33SMichael Trimarchi};
15*d92a7c33SMichael Trimarchi
16*d92a7c33SMichael Trimarchi&cpu0 {
17*d92a7c33SMichael Trimarchi	cpu-supply = <&vdd_arm>;
18*d92a7c33SMichael Trimarchi};
19*d92a7c33SMichael Trimarchi
20*d92a7c33SMichael Trimarchi&cpu1 {
21*d92a7c33SMichael Trimarchi	cpu-supply = <&vdd_arm>;
22*d92a7c33SMichael Trimarchi};
23*d92a7c33SMichael Trimarchi
24*d92a7c33SMichael Trimarchi&cpu2 {
25*d92a7c33SMichael Trimarchi	cpu-supply = <&vdd_arm>;
26*d92a7c33SMichael Trimarchi};
27*d92a7c33SMichael Trimarchi
28*d92a7c33SMichael Trimarchi&cpu3 {
29*d92a7c33SMichael Trimarchi	cpu-supply = <&vdd_arm>;
30*d92a7c33SMichael Trimarchi};
31*d92a7c33SMichael Trimarchi
32*d92a7c33SMichael Trimarchi&emmc {
33*d92a7c33SMichael Trimarchi	cap-mmc-highspeed;
34*d92a7c33SMichael Trimarchi	mmc-hs200-1_8v;
35*d92a7c33SMichael Trimarchi	non-removable;
36*d92a7c33SMichael Trimarchi	status = "okay";
37*d92a7c33SMichael Trimarchi};
38*d92a7c33SMichael Trimarchi
39*d92a7c33SMichael Trimarchi&i2c0 {
40*d92a7c33SMichael Trimarchi	status = "okay";
41*d92a7c33SMichael Trimarchi
42*d92a7c33SMichael Trimarchi	rk809: pmic@20 {
43*d92a7c33SMichael Trimarchi		compatible = "rockchip,rk809";
44*d92a7c33SMichael Trimarchi		reg = <0x20>;
45*d92a7c33SMichael Trimarchi		interrupt-parent = <&gpio0>;
46*d92a7c33SMichael Trimarchi		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
47*d92a7c33SMichael Trimarchi		pinctrl-names = "default";
48*d92a7c33SMichael Trimarchi		pinctrl-0 = <&pmic_int>;
49*d92a7c33SMichael Trimarchi		rockchip,system-power-controller;
50*d92a7c33SMichael Trimarchi		wakeup-source;
51*d92a7c33SMichael Trimarchi		#clock-cells = <1>;
52*d92a7c33SMichael Trimarchi		clock-output-names = "rk808-clkout1", "rk808-clkout2";
53*d92a7c33SMichael Trimarchi
54*d92a7c33SMichael Trimarchi		vcc1-supply = <&vcc5v0_sys>;
55*d92a7c33SMichael Trimarchi		vcc2-supply = <&vcc5v0_sys>;
56*d92a7c33SMichael Trimarchi		vcc3-supply = <&vcc5v0_sys>;
57*d92a7c33SMichael Trimarchi		vcc4-supply = <&vcc5v0_sys>;
58*d92a7c33SMichael Trimarchi		vcc5-supply = <&vcc3v3_sys>;
59*d92a7c33SMichael Trimarchi		vcc6-supply = <&vcc3v3_sys>;
60*d92a7c33SMichael Trimarchi		vcc7-supply = <&vcc3v3_sys>;
61*d92a7c33SMichael Trimarchi		vcc8-supply = <&vcc3v3_sys>;
62*d92a7c33SMichael Trimarchi		vcc9-supply = <&vcc5v0_sys>;
63*d92a7c33SMichael Trimarchi
64*d92a7c33SMichael Trimarchi		regulators {
65*d92a7c33SMichael Trimarchi			vdd_log: DCDC_REG1 {
66*d92a7c33SMichael Trimarchi				regulator-name = "vdd_log";
67*d92a7c33SMichael Trimarchi				regulator-always-on;
68*d92a7c33SMichael Trimarchi				regulator-boot-on;
69*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <950000>;
70*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <1350000>;
71*d92a7c33SMichael Trimarchi				regulator-ramp-delay = <6001>;
72*d92a7c33SMichael Trimarchi
73*d92a7c33SMichael Trimarchi				regulator-state-mem {
74*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
75*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <950000>;
76*d92a7c33SMichael Trimarchi				};
77*d92a7c33SMichael Trimarchi			};
78*d92a7c33SMichael Trimarchi
79*d92a7c33SMichael Trimarchi			vdd_arm: DCDC_REG2 {
80*d92a7c33SMichael Trimarchi				regulator-name = "vdd_arm";
81*d92a7c33SMichael Trimarchi				regulator-always-on;
82*d92a7c33SMichael Trimarchi				regulator-boot-on;
83*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <950000>;
84*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <1350000>;
85*d92a7c33SMichael Trimarchi				regulator-ramp-delay = <6001>;
86*d92a7c33SMichael Trimarchi
87*d92a7c33SMichael Trimarchi				regulator-state-mem {
88*d92a7c33SMichael Trimarchi					regulator-off-in-suspend;
89*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <950000>;
90*d92a7c33SMichael Trimarchi				};
91*d92a7c33SMichael Trimarchi			};
92*d92a7c33SMichael Trimarchi
93*d92a7c33SMichael Trimarchi			vcc_ddr: DCDC_REG3 {
94*d92a7c33SMichael Trimarchi				regulator-name = "vcc_ddr";
95*d92a7c33SMichael Trimarchi				regulator-always-on;
96*d92a7c33SMichael Trimarchi				regulator-boot-on;
97*d92a7c33SMichael Trimarchi
98*d92a7c33SMichael Trimarchi				regulator-state-mem {
99*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
100*d92a7c33SMichael Trimarchi				};
101*d92a7c33SMichael Trimarchi			};
102*d92a7c33SMichael Trimarchi
103*d92a7c33SMichael Trimarchi			vcc_3v3: DCDC_REG4 {
104*d92a7c33SMichael Trimarchi				regulator-name = "vcc_3v3";
105*d92a7c33SMichael Trimarchi				regulator-always-on;
106*d92a7c33SMichael Trimarchi				regulator-boot-on;
107*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <3300000>;
108*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <3300000>;
109*d92a7c33SMichael Trimarchi
110*d92a7c33SMichael Trimarchi				regulator-state-mem {
111*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
112*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <3300000>;
113*d92a7c33SMichael Trimarchi				};
114*d92a7c33SMichael Trimarchi			};
115*d92a7c33SMichael Trimarchi
116*d92a7c33SMichael Trimarchi			vcc3v3_sys: DCDC_REG5 {
117*d92a7c33SMichael Trimarchi				regulator-name = "vcc3v3_sys";
118*d92a7c33SMichael Trimarchi				regulator-always-on;
119*d92a7c33SMichael Trimarchi				regulator-boot-on;
120*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <3300000>;
121*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <3300000>;
122*d92a7c33SMichael Trimarchi
123*d92a7c33SMichael Trimarchi				regulator-state-mem {
124*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
125*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <3300000>;
126*d92a7c33SMichael Trimarchi				};
127*d92a7c33SMichael Trimarchi			};
128*d92a7c33SMichael Trimarchi
129*d92a7c33SMichael Trimarchi			vcc_1v0: LDO_REG1 {
130*d92a7c33SMichael Trimarchi				regulator-name = "vcc_1v0";
131*d92a7c33SMichael Trimarchi				regulator-always-on;
132*d92a7c33SMichael Trimarchi				regulator-boot-on;
133*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <1000000>;
134*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <1000000>;
135*d92a7c33SMichael Trimarchi
136*d92a7c33SMichael Trimarchi				regulator-state-mem {
137*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
138*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <1000000>;
139*d92a7c33SMichael Trimarchi				};
140*d92a7c33SMichael Trimarchi			};
141*d92a7c33SMichael Trimarchi
142*d92a7c33SMichael Trimarchi			vcc_1v8: LDO_REG2 {
143*d92a7c33SMichael Trimarchi				regulator-name = "vcc_1v8";
144*d92a7c33SMichael Trimarchi				regulator-always-on;
145*d92a7c33SMichael Trimarchi				regulator-boot-on;
146*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <1800000>;
147*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <1800000>;
148*d92a7c33SMichael Trimarchi
149*d92a7c33SMichael Trimarchi				regulator-state-mem {
150*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
151*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <1800000>;
152*d92a7c33SMichael Trimarchi				};
153*d92a7c33SMichael Trimarchi			};
154*d92a7c33SMichael Trimarchi
155*d92a7c33SMichael Trimarchi			vdd_1v0: LDO_REG3 {
156*d92a7c33SMichael Trimarchi				regulator-name = "vdd_1v0";
157*d92a7c33SMichael Trimarchi				regulator-always-on;
158*d92a7c33SMichael Trimarchi				regulator-boot-on;
159*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <1000000>;
160*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <1000000>;
161*d92a7c33SMichael Trimarchi
162*d92a7c33SMichael Trimarchi				regulator-state-mem {
163*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
164*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <1000000>;
165*d92a7c33SMichael Trimarchi				};
166*d92a7c33SMichael Trimarchi			};
167*d92a7c33SMichael Trimarchi
168*d92a7c33SMichael Trimarchi			vcc3v0_pmu: LDO_REG4 {
169*d92a7c33SMichael Trimarchi				regulator-name = "vcc3v0_pmu";
170*d92a7c33SMichael Trimarchi				regulator-always-on;
171*d92a7c33SMichael Trimarchi				regulator-boot-on;
172*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <3300000>;
173*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <3300000>;
174*d92a7c33SMichael Trimarchi
175*d92a7c33SMichael Trimarchi				regulator-state-mem {
176*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
177*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <3300000>;
178*d92a7c33SMichael Trimarchi
179*d92a7c33SMichael Trimarchi				};
180*d92a7c33SMichael Trimarchi			};
181*d92a7c33SMichael Trimarchi
182*d92a7c33SMichael Trimarchi			vccio_sd: LDO_REG5 {
183*d92a7c33SMichael Trimarchi				regulator-name = "vccio_sd";
184*d92a7c33SMichael Trimarchi				regulator-always-on;
185*d92a7c33SMichael Trimarchi				regulator-boot-on;
186*d92a7c33SMichael Trimarchi				regulator-min-microvolt = <1800000>;
187*d92a7c33SMichael Trimarchi				regulator-max-microvolt = <3300000>;
188*d92a7c33SMichael Trimarchi
189*d92a7c33SMichael Trimarchi				regulator-state-mem {
190*d92a7c33SMichael Trimarchi					regulator-on-in-suspend;
191*d92a7c33SMichael Trimarchi					regulator-suspend-microvolt = <3300000>;
192*d92a7c33SMichael Trimarchi				};
193*d92a7c33SMichael Trimarchi			};
194*d92a7c33SMichael Trimarchi
195*d92a7c33SMichael Trimarchi			vcc5v0_host: SWITCH_REG2 {
196*d92a7c33SMichael Trimarchi				regulator-name = "vcc5v0_host";
197*d92a7c33SMichael Trimarchi				regulator-always-on;
198*d92a7c33SMichael Trimarchi				regulator-boot-on;
199*d92a7c33SMichael Trimarchi			};
200*d92a7c33SMichael Trimarchi		};
201*d92a7c33SMichael Trimarchi	};
202*d92a7c33SMichael Trimarchi};
203*d92a7c33SMichael Trimarchi
204*d92a7c33SMichael Trimarchi&io_domains {
205*d92a7c33SMichael Trimarchi	vccio1-supply = <&vcc_3v3>;
206*d92a7c33SMichael Trimarchi	vccio2-supply = <&vcc_3v3>;
207*d92a7c33SMichael Trimarchi	vccio3-supply = <&vcc_3v3>;
208*d92a7c33SMichael Trimarchi	vccio4-supply = <&vcc_3v3>;
209*d92a7c33SMichael Trimarchi	vccio5-supply = <&vcc_3v3>;
210*d92a7c33SMichael Trimarchi	vccio6-supply = <&vcc_1v8>;
211*d92a7c33SMichael Trimarchi	status = "okay";
212*d92a7c33SMichael Trimarchi};
213*d92a7c33SMichael Trimarchi
214*d92a7c33SMichael Trimarchi&pinctrl {
215*d92a7c33SMichael Trimarchi	pmic {
216*d92a7c33SMichael Trimarchi		pmic_int: pmic_int {
217*d92a7c33SMichael Trimarchi			rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
218*d92a7c33SMichael Trimarchi		};
219*d92a7c33SMichael Trimarchi	};
220*d92a7c33SMichael Trimarchi};
221*d92a7c33SMichael Trimarchi
222*d92a7c33SMichael Trimarchi&pmu_io_domains {
223*d92a7c33SMichael Trimarchi	pmuio1-supply = <&vcc_3v3>;
224*d92a7c33SMichael Trimarchi	pmuio2-supply = <&vcc_3v3>;
225*d92a7c33SMichael Trimarchi	status = "okay";
226*d92a7c33SMichael Trimarchi};
227*d92a7c33SMichael Trimarchi
228*d92a7c33SMichael Trimarchi&tsadc {
229*d92a7c33SMichael Trimarchi	rockchip,hw-tshut-mode = <1>;
230*d92a7c33SMichael Trimarchi	rockchip,hw-tshut-polarity = <1>;
231*d92a7c33SMichael Trimarchi	status = "okay";
232*d92a7c33SMichael Trimarchi};
233