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_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
45		compatible = "regulator-fixed";
46		enable-active-high;
47		gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
48		pinctrl-names = "default";
49		pinctrl-0 = <&usb20_host_drv>;
50		regulator-name = "vcc_host1_5v";
51		regulator-always-on;
52		vin-supply = <&vcc_sys>;
53	};
54
55	vcc_sys: vcc-sys {
56		compatible = "regulator-fixed";
57		regulator-name = "vcc_sys";
58		regulator-always-on;
59		regulator-boot-on;
60		regulator-min-microvolt = <5000000>;
61		regulator-max-microvolt = <5000000>;
62		vin-supply = <&dc_12v>;
63	};
64
65	vcc_phy: vcc-phy-regulator {
66		compatible = "regulator-fixed";
67		regulator-name = "vcc_phy";
68		regulator-always-on;
69		regulator-boot-on;
70	};
71};
72
73&cpu0 {
74	cpu-supply = <&vdd_arm>;
75};
76
77&emmc {
78	bus-width = <8>;
79	cap-mmc-highspeed;
80	non-removable;
81	pinctrl-names = "default";
82	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
83	status = "okay";
84};
85
86&gmac2io {
87	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
88	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
89	clock_in_out = "input";
90	phy-supply = <&vcc_phy>;
91	phy-mode = "rgmii";
92	pinctrl-names = "default";
93	pinctrl-0 = <&rgmiim1_pins>;
94	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
95	snps,reset-active-low;
96	snps,reset-delays-us = <0 10000 50000>;
97	tx_delay = <0x25>;
98	rx_delay = <0x11>;
99	status = "okay";
100};
101
102&i2c1 {
103	status = "okay";
104
105	rk805: pmic@18 {
106		compatible = "rockchip,rk805";
107		reg = <0x18>;
108		interrupt-parent = <&gpio1>;
109		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
110		#clock-cells = <1>;
111		clock-output-names = "xin32k", "rk805-clkout2";
112		gpio-controller;
113		#gpio-cells = <2>;
114		pinctrl-names = "default";
115		pinctrl-0 = <&pmic_int_l>;
116		rockchip,system-power-controller;
117		wakeup-source;
118
119		vcc1-supply = <&vcc_sys>;
120		vcc2-supply = <&vcc_sys>;
121		vcc3-supply = <&vcc_sys>;
122		vcc4-supply = <&vcc_sys>;
123		vcc5-supply = <&vcc_io>;
124		vcc6-supply = <&vcc_io>;
125
126		regulators {
127			vdd_logic: DCDC_REG1 {
128				regulator-name = "vdd_logic";
129				regulator-min-microvolt = <712500>;
130				regulator-max-microvolt = <1450000>;
131				regulator-always-on;
132				regulator-boot-on;
133				regulator-state-mem {
134					regulator-on-in-suspend;
135					regulator-suspend-microvolt = <1000000>;
136				};
137			};
138
139			vdd_arm: DCDC_REG2 {
140				regulator-name = "vdd_arm";
141				regulator-min-microvolt = <712500>;
142				regulator-max-microvolt = <1450000>;
143				regulator-always-on;
144				regulator-boot-on;
145				regulator-state-mem {
146					regulator-on-in-suspend;
147					regulator-suspend-microvolt = <950000>;
148				};
149			};
150
151			vcc_ddr: DCDC_REG3 {
152				regulator-name = "vcc_ddr";
153				regulator-always-on;
154				regulator-boot-on;
155				regulator-state-mem {
156					regulator-on-in-suspend;
157				};
158			};
159
160			vcc_io: DCDC_REG4 {
161				regulator-name = "vcc_io";
162				regulator-min-microvolt = <3300000>;
163				regulator-max-microvolt = <3300000>;
164				regulator-always-on;
165				regulator-boot-on;
166				regulator-state-mem {
167					regulator-on-in-suspend;
168					regulator-suspend-microvolt = <3300000>;
169				};
170			};
171
172			vcc_18: LDO_REG1 {
173				regulator-name = "vcc_18";
174				regulator-min-microvolt = <1800000>;
175				regulator-max-microvolt = <1800000>;
176				regulator-always-on;
177				regulator-boot-on;
178				regulator-state-mem {
179					regulator-on-in-suspend;
180					regulator-suspend-microvolt = <1800000>;
181				};
182			};
183
184			vcc18_emmc: LDO_REG2 {
185				regulator-name = "vcc18_emmc";
186				regulator-min-microvolt = <1800000>;
187				regulator-max-microvolt = <1800000>;
188				regulator-always-on;
189				regulator-boot-on;
190				regulator-state-mem {
191					regulator-on-in-suspend;
192					regulator-suspend-microvolt = <1800000>;
193				};
194			};
195
196			vdd_10: LDO_REG3 {
197				regulator-name = "vdd_10";
198				regulator-min-microvolt = <1000000>;
199				regulator-max-microvolt = <1000000>;
200				regulator-always-on;
201				regulator-boot-on;
202				regulator-state-mem {
203					regulator-on-in-suspend;
204					regulator-suspend-microvolt = <1000000>;
205				};
206			};
207		};
208	};
209};
210
211&pinctrl {
212	pmic {
213		pmic_int_l: pmic-int-l {
214			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
215		};
216	};
217
218	usb2 {
219		usb20_host_drv: usb20-host-drv {
220			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
221		};
222	};
223};
224
225&sdmmc {
226	bus-width = <4>;
227	cap-mmc-highspeed;
228	cap-sd-highspeed;
229	disable-wp;
230	max-frequency = <150000000>;
231	pinctrl-names = "default";
232	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
233	vmmc-supply = <&vcc_sd>;
234	status = "okay";
235};
236
237&tsadc {
238	status = "okay";
239};
240
241&u2phy {
242	status = "okay";
243};
244
245&u2phy_host {
246	status = "okay";
247};
248
249&u2phy_otg {
250	status = "okay";
251};
252
253&uart2 {
254	status = "okay";
255};
256
257&usb20_otg {
258	status = "okay";
259};
260
261&usb_host0_ehci {
262	status = "okay";
263};
264
265&usb_host0_ohci {
266	status = "okay";
267};
268