1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
4 */
5
6/dts-v1/;
7#include "rk3328.dtsi"
8
9/ {
10	model = "Firefly roc-rk3328-cc";
11	compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
12
13	chosen {
14		stdout-path = "serial2:1500000n8";
15	};
16
17	gmac_clkin: external-gmac-clock {
18		compatible = "fixed-clock";
19		clock-frequency = <125000000>;
20		clock-output-names = "gmac_clkin";
21		#clock-cells = <0>;
22	};
23
24	dc_12v: dc-12v {
25		compatible = "regulator-fixed";
26		regulator-name = "dc_12v";
27		regulator-always-on;
28		regulator-boot-on;
29		regulator-min-microvolt = <12000000>;
30		regulator-max-microvolt = <12000000>;
31	};
32
33	vcc_sd: sdmmc-regulator {
34		compatible = "regulator-fixed";
35		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
36		pinctrl-names = "default";
37		pinctrl-0 = <&sdmmc0m1_gpio>;
38		regulator-name = "vcc_sd";
39		regulator-min-microvolt = <3300000>;
40		regulator-max-microvolt = <3300000>;
41		vin-supply = <&vcc_io>;
42	};
43
44	vcc_sdio: sdmmcio-regulator {
45		compatible = "regulator-gpio";
46		gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
47		states = <1800000 0x1
48			  3300000 0x0>;
49		regulator-name = "vcc_sdio";
50		regulator-type = "voltage";
51		regulator-min-microvolt = <1800000>;
52		regulator-max-microvolt = <3300000>;
53		regulator-always-on;
54		vin-supply = <&vcc_sys>;
55	};
56
57	vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
58		compatible = "regulator-fixed";
59		enable-active-high;
60		gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
61		pinctrl-names = "default";
62		pinctrl-0 = <&usb20_host_drv>;
63		regulator-name = "vcc_host1_5v";
64		regulator-always-on;
65		vin-supply = <&vcc_sys>;
66	};
67
68	vcc_sys: vcc-sys {
69		compatible = "regulator-fixed";
70		regulator-name = "vcc_sys";
71		regulator-always-on;
72		regulator-boot-on;
73		regulator-min-microvolt = <5000000>;
74		regulator-max-microvolt = <5000000>;
75		vin-supply = <&dc_12v>;
76	};
77
78	vcc_phy: vcc-phy-regulator {
79		compatible = "regulator-fixed";
80		regulator-name = "vcc_phy";
81		regulator-always-on;
82		regulator-boot-on;
83	};
84
85	leds {
86		compatible = "gpio-leds";
87
88		power {
89			label = "firefly:blue:power";
90			linux,default-trigger = "heartbeat";
91			gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
92			default-state = "on";
93			mode = <0x23>;
94		};
95
96		user {
97			label = "firefly:yellow:user";
98			linux,default-trigger = "mmc1";
99			gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
100			default-state = "off";
101			mode = <0x05>;
102		};
103	};
104};
105
106&cpu0 {
107	cpu-supply = <&vdd_arm>;
108};
109
110&cpu1 {
111	cpu-supply = <&vdd_arm>;
112};
113
114&cpu2 {
115	cpu-supply = <&vdd_arm>;
116};
117
118&cpu3 {
119	cpu-supply = <&vdd_arm>;
120};
121
122&emmc {
123	bus-width = <8>;
124	cap-mmc-highspeed;
125	max-frequency = <150000000>;
126	mmc-ddr-1_8v;
127	mmc-hs200-1_8v;
128	non-removable;
129	pinctrl-names = "default";
130	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
131	vmmc-supply = <&vcc_io>;
132	vqmmc-supply = <&vcc18_emmc>;
133	status = "okay";
134};
135
136&gmac2io {
137	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
138	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
139	clock_in_out = "input";
140	phy-supply = <&vcc_phy>;
141	phy-mode = "rgmii";
142	pinctrl-names = "default";
143	pinctrl-0 = <&rgmiim1_pins>;
144	snps,aal;
145	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
146	snps,reset-active-low;
147	snps,reset-delays-us = <0 10000 50000>;
148	snps,rxpbl = <0x4>;
149	snps,txpbl = <0x4>;
150	tx_delay = <0x24>;
151	rx_delay = <0x18>;
152	status = "okay";
153};
154
155&hdmi {
156	status = "okay";
157};
158
159&hdmiphy {
160	status = "okay";
161};
162
163&i2c1 {
164	status = "okay";
165
166	rk805: pmic@18 {
167		compatible = "rockchip,rk805";
168		reg = <0x18>;
169		interrupt-parent = <&gpio1>;
170		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
171		#clock-cells = <1>;
172		clock-output-names = "xin32k", "rk805-clkout2";
173		gpio-controller;
174		#gpio-cells = <2>;
175		pinctrl-names = "default";
176		pinctrl-0 = <&pmic_int_l>;
177		rockchip,system-power-controller;
178		wakeup-source;
179
180		vcc1-supply = <&vcc_sys>;
181		vcc2-supply = <&vcc_sys>;
182		vcc3-supply = <&vcc_sys>;
183		vcc4-supply = <&vcc_sys>;
184		vcc5-supply = <&vcc_io>;
185		vcc6-supply = <&vcc_io>;
186
187		regulators {
188			vdd_logic: DCDC_REG1 {
189				regulator-name = "vdd_logic";
190				regulator-min-microvolt = <712500>;
191				regulator-max-microvolt = <1450000>;
192				regulator-always-on;
193				regulator-boot-on;
194				regulator-state-mem {
195					regulator-on-in-suspend;
196					regulator-suspend-microvolt = <1000000>;
197				};
198			};
199
200			vdd_arm: DCDC_REG2 {
201				regulator-name = "vdd_arm";
202				regulator-min-microvolt = <712500>;
203				regulator-max-microvolt = <1450000>;
204				regulator-always-on;
205				regulator-boot-on;
206				regulator-state-mem {
207					regulator-on-in-suspend;
208					regulator-suspend-microvolt = <950000>;
209				};
210			};
211
212			vcc_ddr: DCDC_REG3 {
213				regulator-name = "vcc_ddr";
214				regulator-always-on;
215				regulator-boot-on;
216				regulator-state-mem {
217					regulator-on-in-suspend;
218				};
219			};
220
221			vcc_io: DCDC_REG4 {
222				regulator-name = "vcc_io";
223				regulator-min-microvolt = <3300000>;
224				regulator-max-microvolt = <3300000>;
225				regulator-always-on;
226				regulator-boot-on;
227				regulator-state-mem {
228					regulator-on-in-suspend;
229					regulator-suspend-microvolt = <3300000>;
230				};
231			};
232
233			vcc_18: LDO_REG1 {
234				regulator-name = "vcc_18";
235				regulator-min-microvolt = <1800000>;
236				regulator-max-microvolt = <1800000>;
237				regulator-always-on;
238				regulator-boot-on;
239				regulator-state-mem {
240					regulator-on-in-suspend;
241					regulator-suspend-microvolt = <1800000>;
242				};
243			};
244
245			vcc18_emmc: LDO_REG2 {
246				regulator-name = "vcc18_emmc";
247				regulator-min-microvolt = <1800000>;
248				regulator-max-microvolt = <1800000>;
249				regulator-always-on;
250				regulator-boot-on;
251				regulator-state-mem {
252					regulator-on-in-suspend;
253					regulator-suspend-microvolt = <1800000>;
254				};
255			};
256
257			vdd_10: LDO_REG3 {
258				regulator-name = "vdd_10";
259				regulator-min-microvolt = <1000000>;
260				regulator-max-microvolt = <1000000>;
261				regulator-always-on;
262				regulator-boot-on;
263				regulator-state-mem {
264					regulator-on-in-suspend;
265					regulator-suspend-microvolt = <1000000>;
266				};
267			};
268		};
269	};
270};
271
272&io_domains {
273	status = "okay";
274
275	vccio1-supply = <&vcc_io>;
276	vccio2-supply = <&vcc18_emmc>;
277	vccio3-supply = <&vcc_sdio>;
278	vccio4-supply = <&vcc_18>;
279	vccio5-supply = <&vcc_io>;
280	vccio6-supply = <&vcc_io>;
281	pmuio-supply = <&vcc_io>;
282};
283
284&pinctrl {
285	pmic {
286		pmic_int_l: pmic-int-l {
287			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
288		};
289	};
290
291	usb2 {
292		usb20_host_drv: usb20-host-drv {
293			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
294		};
295	};
296};
297
298&sdmmc {
299	bus-width = <4>;
300	cap-mmc-highspeed;
301	cap-sd-highspeed;
302	disable-wp;
303	max-frequency = <150000000>;
304	pinctrl-names = "default";
305	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
306	sd-uhs-sdr12;
307	sd-uhs-sdr25;
308	sd-uhs-sdr50;
309	sd-uhs-sdr104;
310	vmmc-supply = <&vcc_sd>;
311	vqmmc-supply = <&vcc_sdio>;
312	status = "okay";
313};
314
315&tsadc {
316	status = "okay";
317};
318
319&u2phy {
320	status = "okay";
321};
322
323&u2phy_host {
324	status = "okay";
325};
326
327&u2phy_otg {
328	status = "okay";
329};
330
331&uart2 {
332	status = "okay";
333};
334
335&usb20_otg {
336	status = "okay";
337};
338
339&usb_host0_ehci {
340	status = "okay";
341};
342
343&usb_host0_ohci {
344	status = "okay";
345};
346
347&vop {
348	status = "okay";
349};
350
351&vop_mmu {
352	status = "okay";
353};
354