1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6/dts-v1/;
7#include "rk3328.dtsi"
8
9/ {
10	model = "Rockchip RK3328 EVB";
11	compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
12
13	chosen {
14		stdout-path = "serial2:1500000n8";
15	};
16
17	dc_12v: dc-12v {
18		compatible = "regulator-fixed";
19		regulator-name = "dc_12v";
20		regulator-always-on;
21		regulator-boot-on;
22		regulator-min-microvolt = <12000000>;
23		regulator-max-microvolt = <12000000>;
24	};
25
26	sdio_pwrseq: sdio-pwrseq {
27		compatible = "mmc-pwrseq-simple";
28		pinctrl-names = "default";
29		pinctrl-0 = <&wifi_enable_h>;
30
31		/*
32		 * On the module itself this is one of these (depending
33		 * on the actual card populated):
34		 * - SDIO_RESET_L_WL_REG_ON
35		 * - PDN (power down when low)
36		 */
37		reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
38	};
39
40	vcc_sd: sdmmc-regulator {
41		compatible = "regulator-fixed";
42		gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
43		pinctrl-names = "default";
44		pinctrl-0 = <&sdmmc0m1_pin>;
45		regulator-name = "vcc_sd";
46		regulator-min-microvolt = <3300000>;
47		regulator-max-microvolt = <3300000>;
48		vin-supply = <&vcc_io>;
49	};
50
51	vcc_sys: vcc-sys {
52		compatible = "regulator-fixed";
53		regulator-name = "vcc_sys";
54		regulator-always-on;
55		regulator-boot-on;
56		regulator-min-microvolt = <5000000>;
57		regulator-max-microvolt = <5000000>;
58		vin-supply = <&dc_12v>;
59	};
60
61	vcc_phy: vcc-phy-regulator {
62		compatible = "regulator-fixed";
63		regulator-name = "vcc_phy";
64		regulator-always-on;
65		regulator-boot-on;
66	};
67};
68
69&cpu0 {
70	cpu-supply = <&vdd_arm>;
71};
72
73&cpu1 {
74	cpu-supply = <&vdd_arm>;
75};
76
77&cpu2 {
78	cpu-supply = <&vdd_arm>;
79};
80
81&cpu3 {
82	cpu-supply = <&vdd_arm>;
83};
84
85&emmc {
86	bus-width = <8>;
87	cap-mmc-highspeed;
88	non-removable;
89	pinctrl-names = "default";
90	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
91	status = "okay";
92};
93
94&gmac2phy {
95	phy-supply = <&vcc_phy>;
96	clock_in_out = "output";
97	assigned-clock-rate = <50000000>;
98	assigned-clocks = <&cru SCLK_MAC2PHY>;
99	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
100	status = "okay";
101};
102
103&i2c1 {
104	status = "okay";
105
106	rk805: pmic@18 {
107		compatible = "rockchip,rk805";
108		reg = <0x18>;
109		interrupt-parent = <&gpio2>;
110		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
111		#clock-cells = <1>;
112		clock-output-names = "xin32k", "rk805-clkout2";
113		gpio-controller;
114		#gpio-cells = <2>;
115		pinctrl-names = "default";
116		pinctrl-0 = <&pmic_int_l>;
117		rockchip,system-power-controller;
118		wakeup-source;
119
120		vcc1-supply = <&vcc_sys>;
121		vcc2-supply = <&vcc_sys>;
122		vcc3-supply = <&vcc_sys>;
123		vcc4-supply = <&vcc_sys>;
124		vcc5-supply = <&vcc_io>;
125		vcc6-supply = <&vcc_io>;
126
127		regulators {
128			vdd_logic: DCDC_REG1 {
129				regulator-name = "vdd_logic";
130				regulator-min-microvolt = <712500>;
131				regulator-max-microvolt = <1450000>;
132				regulator-always-on;
133				regulator-boot-on;
134				regulator-state-mem {
135					regulator-on-in-suspend;
136					regulator-suspend-microvolt = <1000000>;
137				};
138			};
139
140			vdd_arm: DCDC_REG2 {
141				regulator-name = "vdd_arm";
142				regulator-min-microvolt = <712500>;
143				regulator-max-microvolt = <1450000>;
144				regulator-always-on;
145				regulator-boot-on;
146				regulator-state-mem {
147					regulator-on-in-suspend;
148					regulator-suspend-microvolt = <950000>;
149				};
150			};
151
152			vcc_ddr: DCDC_REG3 {
153				regulator-name = "vcc_ddr";
154				regulator-always-on;
155				regulator-boot-on;
156				regulator-state-mem {
157					regulator-on-in-suspend;
158				};
159			};
160
161			vcc_io: DCDC_REG4 {
162				regulator-name = "vcc_io";
163				regulator-min-microvolt = <3300000>;
164				regulator-max-microvolt = <3300000>;
165				regulator-always-on;
166				regulator-boot-on;
167				regulator-state-mem {
168					regulator-on-in-suspend;
169					regulator-suspend-microvolt = <3300000>;
170				};
171			};
172
173			vcc_18: LDO_REG1 {
174				regulator-name = "vcc_18";
175				regulator-min-microvolt = <1800000>;
176				regulator-max-microvolt = <1800000>;
177				regulator-always-on;
178				regulator-boot-on;
179				regulator-state-mem {
180					regulator-on-in-suspend;
181					regulator-suspend-microvolt = <1800000>;
182				};
183			};
184
185			vcc18_emmc: LDO_REG2 {
186				regulator-name = "vcc18_emmc";
187				regulator-min-microvolt = <1800000>;
188				regulator-max-microvolt = <1800000>;
189				regulator-always-on;
190				regulator-boot-on;
191				regulator-state-mem {
192					regulator-on-in-suspend;
193					regulator-suspend-microvolt = <1800000>;
194				};
195			};
196
197			vdd_10: LDO_REG3 {
198				regulator-name = "vdd_10";
199				regulator-min-microvolt = <1000000>;
200				regulator-max-microvolt = <1000000>;
201				regulator-always-on;
202				regulator-boot-on;
203				regulator-state-mem {
204					regulator-on-in-suspend;
205					regulator-suspend-microvolt = <1000000>;
206				};
207			};
208		};
209	};
210};
211
212&pinctrl {
213	pmic {
214		pmic_int_l: pmic-int-l {
215			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
216		};
217	};
218
219	sdio-pwrseq {
220		wifi_enable_h: wifi-enable-h {
221		rockchip,pins =
222			<1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
223		};
224	};
225};
226
227&sdio {
228	bus-width = <4>;
229	cap-sd-highspeed;
230	cap-sdio-irq;
231	keep-power-in-suspend;
232	max-frequency = <150000000>;
233	mmc-pwrseq = <&sdio_pwrseq>;
234	non-removable;
235	pinctrl-names = "default";
236	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
237	status = "okay";
238};
239
240&sdmmc {
241	bus-width = <4>;
242	cap-mmc-highspeed;
243	cap-sd-highspeed;
244	disable-wp;
245	max-frequency = <150000000>;
246	pinctrl-names = "default";
247	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
248	vmmc-supply = <&vcc_sd>;
249	status = "okay";
250};
251
252&tsadc {
253	status = "okay";
254};
255
256&uart2 {
257	status = "okay";
258};
259
260&u2phy {
261	status = "okay";
262};
263
264&u2phy_host {
265	status = "okay";
266};
267
268&u2phy_otg {
269	status = "okay";
270};
271
272&usb20_otg {
273	status = "okay";
274};
275
276&usb_host0_ehci {
277	status = "okay";
278};
279
280&usb_host0_ohci {
281	status = "okay";
282};
283