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