1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include "rk3288.dtsi"
6
7/ {
8	model = "Rockchip RK3288 Fennec Board";
9	compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
10
11	memory@0 {
12		reg = <0x0 0x0 0x0 0x80000000>;
13		device_type = "memory";
14	};
15
16	ext_gmac: external-gmac-clock {
17		compatible = "fixed-clock";
18		#clock-cells = <0>;
19		clock-frequency = <125000000>;
20		clock-output-names = "ext_gmac";
21	};
22
23	vcc_sys: vsys-regulator {
24		compatible = "regulator-fixed";
25		regulator-name = "vcc_sys";
26		regulator-min-microvolt = <5000000>;
27		regulator-max-microvolt = <5000000>;
28		regulator-always-on;
29		regulator-boot-on;
30	};
31};
32
33&cpu0 {
34	cpu0-supply = <&vdd_cpu>;
35};
36
37&emmc {
38	bus-width = <8>;
39	cap-mmc-highspeed;
40	disable-wp;
41	non-removable;
42	pinctrl-names = "default";
43	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
44	status = "okay";
45};
46
47&gmac {
48	assigned-clocks = <&cru SCLK_MAC>;
49	assigned-clock-parents = <&ext_gmac>;
50	clock_in_out = "input";
51	pinctrl-names = "default";
52	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
53	phy-supply = <&vcc_lan>;
54	phy-mode = "rgmii";
55	snps,reset-active-low;
56	snps,reset-delays-us = <0 10000 1000000>;
57	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
58	tx_delay = <0x30>;
59	rx_delay = <0x10>;
60	status = "okay";
61};
62
63&gpu {
64	mali-supply = <&vdd_gpu>;
65	status = "okay";
66};
67
68&hdmi {
69	status = "okay";
70};
71
72&i2c0 {
73	status = "okay";
74	clock-frequency = <400000>;
75
76	rk808: pmic@1b {
77		compatible = "rockchip,rk808";
78		reg = <0x1b>;
79		interrupt-parent = <&gpio0>;
80		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
81		#clock-cells = <1>;
82		clock-output-names = "xin32k", "rk808-clkout2";
83		pinctrl-names = "default";
84		pinctrl-0 = <&pmic_int &global_pwroff>;
85		rockchip,system-power-controller;
86		wakeup-source;
87
88		vcc1-supply = <&vcc_sys>;
89		vcc2-supply = <&vcc_sys>;
90		vcc3-supply = <&vcc_sys>;
91		vcc4-supply = <&vcc_sys>;
92		vcc6-supply = <&vcc_sys>;
93		vcc7-supply = <&vcc_sys>;
94		vcc8-supply = <&vcc_io>;
95		vcc9-supply = <&vcc_io>;
96		vcc10-supply = <&vcc_io>;
97		vcc11-supply = <&vcc_io>;
98		vcc12-supply = <&vcc_io>;
99		vddio-supply = <&vcc_io>;
100
101		regulators {
102			vdd_cpu: DCDC_REG1 {
103				regulator-always-on;
104				regulator-boot-on;
105				regulator-min-microvolt = <750000>;
106				regulator-max-microvolt = <1350000>;
107				regulator-name = "vdd_arm";
108				regulator-state-mem {
109					regulator-off-in-suspend;
110				};
111			};
112
113			vdd_gpu: DCDC_REG2 {
114				regulator-always-on;
115				regulator-boot-on;
116				regulator-min-microvolt = <850000>;
117				regulator-max-microvolt = <1250000>;
118				regulator-name = "vdd_gpu";
119				regulator-state-mem {
120					regulator-on-in-suspend;
121					regulator-suspend-microvolt = <1000000>;
122				};
123			};
124
125			vcc_ddr: DCDC_REG3 {
126				regulator-always-on;
127				regulator-boot-on;
128				regulator-name = "vcc_ddr";
129				regulator-state-mem {
130					regulator-on-in-suspend;
131				};
132			};
133
134			vcc_io: DCDC_REG4 {
135				regulator-always-on;
136				regulator-boot-on;
137				regulator-min-microvolt = <3300000>;
138				regulator-max-microvolt = <3300000>;
139				regulator-name = "vcc_io";
140				regulator-state-mem {
141					regulator-on-in-suspend;
142					regulator-suspend-microvolt = <3300000>;
143				};
144			};
145
146			vccio_pmu: LDO_REG1 {
147				regulator-always-on;
148				regulator-boot-on;
149				regulator-min-microvolt = <3300000>;
150				regulator-max-microvolt = <3300000>;
151				regulator-name = "vccio_pmu";
152				regulator-state-mem {
153					regulator-on-in-suspend;
154					regulator-suspend-microvolt = <3300000>;
155				};
156			};
157
158			vcca_33: LDO_REG2 {
159				regulator-always-on;
160				regulator-boot-on;
161				regulator-min-microvolt = <3300000>;
162				regulator-max-microvolt = <3300000>;
163				regulator-name = "vcca_33";
164				regulator-state-mem {
165					regulator-off-in-suspend;
166				};
167			};
168
169			vdd_10: LDO_REG3 {
170				regulator-always-on;
171				regulator-boot-on;
172				regulator-min-microvolt = <1000000>;
173				regulator-max-microvolt = <1000000>;
174				regulator-name = "vdd_10";
175				regulator-state-mem {
176					regulator-on-in-suspend;
177					regulator-suspend-microvolt = <1000000>;
178				};
179			};
180
181			vcc_wl: LDO_REG4 {
182				regulator-always-on;
183				regulator-boot-on;
184				regulator-min-microvolt = <1800000>;
185				regulator-max-microvolt = <1800000>;
186				regulator-name = "vcc_wl";
187				regulator-state-mem {
188					regulator-on-in-suspend;
189					regulator-suspend-microvolt = <1800000>;
190				};
191			};
192
193			vccio_sd: LDO_REG5 {
194				regulator-always-on;
195				regulator-boot-on;
196				regulator-min-microvolt = <1800000>;
197				regulator-max-microvolt = <3300000>;
198				regulator-name = "vccio_sd";
199				regulator-state-mem {
200					regulator-on-in-suspend;
201					regulator-suspend-microvolt = <3300000>;
202				};
203			};
204
205			vdd10_lcd: LDO_REG6 {
206				regulator-always-on;
207				regulator-boot-on;
208				regulator-min-microvolt = <1000000>;
209				regulator-max-microvolt = <1000000>;
210				regulator-name = "vdd10_lcd";
211				regulator-state-mem {
212					regulator-on-in-suspend;
213					regulator-suspend-microvolt = <1000000>;
214				};
215			};
216
217			vcc_18: LDO_REG7 {
218				regulator-always-on;
219				regulator-boot-on;
220				regulator-min-microvolt = <1800000>;
221				regulator-max-microvolt = <1800000>;
222				regulator-name = "vcc_18";
223				regulator-state-mem {
224					regulator-on-in-suspend;
225					regulator-suspend-microvolt = <1800000>;
226				};
227			};
228
229			vcc18_lcd: LDO_REG8 {
230				regulator-always-on;
231				regulator-boot-on;
232				regulator-min-microvolt = <1800000>;
233				regulator-max-microvolt = <1800000>;
234				regulator-name = "vcc18_lcd";
235				regulator-state-mem {
236					regulator-on-in-suspend;
237					regulator-suspend-microvolt = <1800000>;
238				};
239			};
240
241			vcc_sd: SWITCH_REG1 {
242				regulator-always-on;
243				regulator-boot-on;
244				regulator-name = "vcc_sd";
245				regulator-state-mem {
246					regulator-on-in-suspend;
247				};
248			};
249
250			vcc_lan: SWITCH_REG2 {
251				regulator-always-on;
252				regulator-boot-on;
253				regulator-name = "vcc_lan";
254				regulator-state-mem {
255					regulator-on-in-suspend;
256				};
257			};
258		};
259	};
260};
261
262&pinctrl {
263	pcfg_output_high: pcfg-output-high {
264		output-high;
265	};
266
267	pcfg_output_low: pcfg-output-low {
268		output-low;
269	};
270
271	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
272		drive-strength = <8>;
273	};
274
275	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
276		bias-pull-up;
277		drive-strength = <8>;
278	};
279
280	gmac {
281		phy_int: phy-int {
282			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
283		};
284
285		phy_pmeb: phy-pmeb {
286			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
287		};
288
289		phy_rst: phy-rst {
290			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
291		};
292	};
293
294	pmic {
295		pmic_int: pmic-int {
296			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
297		};
298	};
299
300	usbphy {
301		host_drv: host-drv {
302			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
303		};
304	};
305};
306
307&uart2 {
308	status = "okay";
309};
310
311&usbphy {
312	pinctrl-names = "default";
313	pinctrl-0 = <&host_drv>;
314	vbus_drv-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
315	status = "okay";
316};
317
318&usb_host0_ehci {
319	status = "okay";
320};
321
322&usb_host1 {
323	status = "okay";
324};
325
326&usb_otg {
327	status = "okay";
328};
329
330&usb_hsic {
331	status = "okay";
332};
333
334&vopb {
335	status = "okay";
336};
337
338&vopb_mmu {
339	status = "okay";
340};
341
342&vopl {
343	status = "okay";
344};
345
346&vopl_mmu {
347	status = "okay";
348};
349