blob: 2239ab9f5998b6cf6139bf01612e0f9b34f307d5 [file] [log] [blame]
Tom Rini8b0c8a12018-05-06 18:27:01 -04001// SPDX-License-Identifier: GPL-2.0+ OR X11
Simon Glassec3be542015-08-30 16:55:41 -06002/*
3 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
Simon Glassec3be542015-08-30 16:55:41 -06004 */
5
6#include "rk3288.dtsi"
7
8/ {
9 memory {
10 reg = <0 0x80000000>;
11 };
12
13 ext_gmac: external-gmac-clock {
14 compatible = "fixed-clock";
15 #clock-cells = <0>;
16 clock-frequency = <125000000>;
17 clock-output-names = "ext_gmac";
18 };
19
20 ir: ir-receiver {
21 compatible = "gpio-ir-receiver";
22 pinctrl-names = "default";
23 pinctrl-0 = <&ir_int>;
24 };
25
26 keys: gpio-keys {
27 compatible = "gpio-keys";
Simon Glassec3be542015-08-30 16:55:41 -060028
29 button@0 {
30 gpio-key,wakeup = <1>;
31 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
32 label = "GPIO Power";
33 linux,code = <116>;
34 pinctrl-names = "default";
35 pinctrl-0 = <&pwr_key>;
36 };
37 };
38
39 leds {
40 u-boot,dm-pre-reloc;
41 compatible = "gpio-leds";
42
43 work {
44 u-boot,dm-pre-reloc;
45 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
46 label = "firefly:blue:user";
47 linux,default-trigger = "rc-feedback";
48 pinctrl-names = "default";
49 pinctrl-0 = <&work_led>;
50 };
51
52 power {
53 u-boot,dm-pre-reloc;
54 gpios = <&gpio8 2 GPIO_ACTIVE_LOW>;
55 label = "firefly:green:power";
56 linux,default-trigger = "default-on";
57 pinctrl-names = "default";
58 pinctrl-0 = <&power_led>;
59 };
60 };
61
62 vcc_sys: vsys-regulator {
63 compatible = "regulator-fixed";
64 regulator-name = "vcc_sys";
65 regulator-min-microvolt = <5000000>;
66 regulator-max-microvolt = <5000000>;
67 regulator-always-on;
68 regulator-boot-on;
69 };
70
71 vcc_sd: sdmmc-regulator {
72 compatible = "regulator-fixed";
73 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
74 pinctrl-names = "default";
75 pinctrl-0 = <&sdmmc_pwr>;
76 regulator-name = "vcc_sd";
77 regulator-min-microvolt = <3300000>;
78 regulator-max-microvolt = <3300000>;
79 startup-delay-us = <100000>;
80 vin-supply = <&vcc_io>;
81 };
82
83 vcc_flash: flash-regulator {
84 compatible = "regulator-fixed";
85 regulator-name = "vcc_flash";
86 regulator-min-microvolt = <1800000>;
87 regulator-max-microvolt = <1800000>;
88 vin-supply = <&vcc_io>;
89 };
90
91 vcc_5v: usb-regulator {
92 compatible = "regulator-fixed";
93 regulator-name = "vcc_5v";
94 regulator-min-microvolt = <5000000>;
95 regulator-max-microvolt = <5000000>;
96 regulator-always-on;
97 regulator-boot-on;
98 vin-supply = <&vcc_sys>;
99 };
100
101 vcc_host_5v: usb-host-regulator {
102 compatible = "regulator-fixed";
103 enable-active-high;
104 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&host_vbus_drv>;
107 regulator-name = "vcc_host_5v";
108 regulator-min-microvolt = <5000000>;
109 regulator-max-microvolt = <5000000>;
110 regulator-always-on;
111 vin-supply = <&vcc_5v>;
112 };
113
114 vcc_otg_5v: usb-otg-regulator {
115 compatible = "regulator-fixed";
116 enable-active-high;
117 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
118 pinctrl-names = "default";
119 pinctrl-0 = <&otg_vbus_drv>;
120 regulator-name = "vcc_otg_5v";
121 regulator-min-microvolt = <5000000>;
122 regulator-max-microvolt = <5000000>;
123 regulator-always-on;
124 vin-supply = <&vcc_5v>;
125 };
126};
127
128&cpu0 {
129 cpu0-supply = <&vdd_cpu>;
130};
131
132&emmc {
133 broken-cd;
134 bus-width = <8>;
135 cap-mmc-highspeed;
136 disable-wp;
137 non-removable;
138 num-slots = <1>;
139 pinctrl-names = "default";
140 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
141 vmmc-supply = <&vcc_io>;
142 vqmmc-supply = <&vcc_flash>;
143 status = "okay";
144};
145
Sjoerd Simons4407d002016-02-28 22:25:02 +0100146&gmac {
147 assigned-clocks = <&cru SCLK_MAC>;
148 assigned-clock-parents = <&ext_gmac>;
149 clock_in_out = "input";
150 pinctrl-names = "default";
151 pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
152 phy-supply = <&vcc_lan>;
153 phy-mode = "rgmii";
154 snps,reset-active-low;
155 snps,reset-delays-us = <0 10000 1000000>;
156 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
157 tx_delay = <0x30>;
158 rx_delay = <0x10>;
159 status = "okay";
160};
161
Simon Glassec3be542015-08-30 16:55:41 -0600162&hdmi {
163 ddc-i2c-bus = <&i2c5>;
164 status = "okay";
165};
166
167&i2c0 {
168 clock-frequency = <400000>;
169 status = "okay";
170
171 vdd_cpu: syr827@40 {
172 compatible = "silergy,syr827";
173 fcs,suspend-voltage-selector = <1>;
174 reg = <0x40>;
175 regulator-name = "vdd_cpu";
176 regulator-min-microvolt = <850000>;
177 regulator-max-microvolt = <1350000>;
178 regulator-always-on;
179 regulator-boot-on;
180 vin-supply = <&vcc_sys>;
181 };
182
183 vdd_gpu: syr828@41 {
184 compatible = "silergy,syr828";
185 fcs,suspend-voltage-selector = <1>;
186 reg = <0x41>;
187 regulator-name = "vdd_gpu";
188 regulator-min-microvolt = <850000>;
189 regulator-max-microvolt = <1350000>;
190 regulator-always-on;
191 vin-supply = <&vcc_sys>;
192 };
193
194 hym8563: hym8563@51 {
195 compatible = "haoyu,hym8563";
196 reg = <0x51>;
197 #clock-cells = <0>;
198 clock-frequency = <32768>;
199 clock-output-names = "xin32k";
200 interrupt-parent = <&gpio7>;
201 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
202 pinctrl-names = "default";
203 pinctrl-0 = <&rtc_int>;
204 };
205
206 act8846: act8846@5a {
207 compatible = "active-semi,act8846";
208 reg = <0x5a>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
211 system-power-controller;
212
213 regulators {
214 vcc_ddr: REG1 {
215 regulator-name = "vcc_ddr";
216 regulator-min-microvolt = <1200000>;
217 regulator-max-microvolt = <1200000>;
218 regulator-always-on;
219 };
220
221 vcc_io: REG2 {
222 regulator-name = "vcc_io";
223 regulator-min-microvolt = <3300000>;
224 regulator-max-microvolt = <3300000>;
225 regulator-always-on;
226 };
227
228 vdd_log: REG3 {
229 regulator-name = "vdd_log";
230 regulator-min-microvolt = <1100000>;
231 regulator-max-microvolt = <1100000>;
232 regulator-always-on;
233 };
234
235 vcc_20: REG4 {
236 regulator-name = "vcc_20";
237 regulator-min-microvolt = <2000000>;
238 regulator-max-microvolt = <2000000>;
239 regulator-always-on;
240 };
241
242 vccio_sd: REG5 {
243 regulator-name = "vccio_sd";
244 regulator-min-microvolt = <3300000>;
245 regulator-max-microvolt = <3300000>;
246 regulator-always-on;
247 };
248
249 vdd10_lcd: REG6 {
250 regulator-name = "vdd10_lcd";
251 regulator-min-microvolt = <1000000>;
252 regulator-max-microvolt = <1000000>;
253 regulator-always-on;
254 };
255
256 vcca_18: REG7 {
257 regulator-name = "vcca_18";
258 regulator-min-microvolt = <1800000>;
259 regulator-max-microvolt = <1800000>;
260 };
261
262 vcca_33: REG8 {
263 regulator-name = "vcca_33";
264 regulator-min-microvolt = <3300000>;
265 regulator-max-microvolt = <3300000>;
266 };
267
268 vcc_lan: REG9 {
269 regulator-name = "vcc_lan";
270 regulator-min-microvolt = <3300000>;
271 regulator-max-microvolt = <3300000>;
272 };
273
274 vdd_10: REG10 {
275 regulator-name = "vdd_10";
276 regulator-min-microvolt = <1000000>;
277 regulator-max-microvolt = <1000000>;
278 regulator-always-on;
279 };
280
281 vcc_18: REG11 {
282 regulator-name = "vcc_18";
283 regulator-min-microvolt = <1800000>;
284 regulator-max-microvolt = <1800000>;
285 regulator-always-on;
286 };
287
288 vcc18_lcd: REG12 {
289 regulator-name = "vcc18_lcd";
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <1800000>;
292 regulator-always-on;
293 };
294 };
295 };
296};
297
298&i2c1 {
299 status = "okay";
300};
301
302&i2c2 {
303 status = "okay";
304};
305
306&i2c4 {
307 status = "okay";
308};
309
310&i2c5 {
311 status = "okay";
312};
313
314&pinctrl {
315 pcfg_output_high: pcfg-output-high {
316 output-high;
317 };
318
319 pcfg_output_low: pcfg-output-low {
320 output-low;
321 };
322
323 act8846 {
324 pwr_hold: pwr-hold {
325 rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
326 };
327 };
328
329 gmac {
330 phy_int: phy-int {
331 rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
332 };
333
334 phy_pmeb: phy-pmeb {
335 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
336 };
337
338 phy_rst: phy-rst {
339 rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
340 };
341 };
342
343 hym8563 {
344 rtc_int: rtc-int {
345 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
346 };
347 };
348
349 keys {
350 pwr_key: pwr-key {
351 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
352 };
353 };
354
355 leds {
356 power_led: power-led {
357 rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
358 };
359
360 work_led: work-led {
361 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
362 };
363 };
364
365 sdmmc {
366 sdmmc_pwr: sdmmc-pwr {
367 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
368 };
369 };
370
371 usb_host {
372 host_vbus_drv: host-vbus-drv {
373 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
374 };
375
376 usbhub_rst: usbhub-rst {
377 rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
378 };
379 };
380
381 usb_otg {
382 otg_vbus_drv: otg-vbus-drv {
383 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
384 };
385 };
386};
387
388&saradc {
389 vref-supply = <&vcc_18>;
390 status = "okay";
391};
392
393&sdio0 {
394 broken-cd;
395 bus-width = <4>;
396 disable-wp;
397 non-removable;
398 num-slots = <1>;
399 pinctrl-names = "default";
400 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
401 vmmc-supply = <&vcc_18>;
Sjoerd Simonsd8e65982015-08-30 16:55:46 -0600402 status = "disabled";
Simon Glassec3be542015-08-30 16:55:41 -0600403};
404
405&sdmmc {
406 bus-width = <4>;
407 cap-mmc-highspeed;
408 cap-sd-highspeed;
409 card-detect-delay = <200>;
410 disable-wp;
411 num-slots = <1>;
412 pinctrl-names = "default";
413 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
414 vmmc-supply = <&vcc_sd>;
415 status = "okay";
416};
417
418&spi0 {
419 pinctrl-names = "default";
420 pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>;
421 status = "okay";
422};
423
424&uart0 {
425 pinctrl-names = "default";
426 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
427 status = "okay";
428};
429
430&uart1 {
431 status = "okay";
432};
433
434&uart2 {
435 status = "okay";
436};
437
438&uart3 {
439 status = "okay";
440};
441
442&usb_host1 {
443 pinctrl-names = "default";
444 pinctrl-0 = <&usbhub_rst>;
445 status = "okay";
446};
447
448&usb_otg {
449 status = "okay";
450};
451
452&vopb {
453 status = "okay";
454};
455
456&vopb_mmu {
457 status = "okay";
458};
459
460&vopl {
461 status = "okay";
462};
463
464&vopl_mmu {
465 status = "okay";
466};
467
468&wdt {
469 status = "okay";
470};