arm: dts: lx2160aqds: add MDIO slots
[oweals/u-boot.git] / arch / arm / dts / rk3288-firefly.dtsi
1 // SPDX-License-Identifier: GPL-2.0+ OR X11
2 /*
3  * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
4  */
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";
28
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
146 &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
162 &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         pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
324                 bias-pull-up;
325                 drive-strength = <12>;
326         };
327
328         act8846 {
329                 pwr_hold: pwr-hold {
330                         rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
331                 };
332         };
333
334         gmac {
335                 phy_int: phy-int {
336                         rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
337                 };
338
339                 phy_pmeb: phy-pmeb {
340                         rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
341                 };
342
343                 phy_rst: phy-rst {
344                         rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
345                 };
346         };
347
348         hym8563 {
349                 rtc_int: rtc-int {
350                         rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
351                 };
352         };
353
354         keys {
355                 pwr_key: pwr-key {
356                         rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
357                 };
358         };
359
360         leds {
361                 power_led: power-led {
362                         rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
363                 };
364
365                 work_led: work-led {
366                         rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
367                 };
368         };
369
370         sdmmc {
371                 /*
372                  * Default drive strength isn't enough to achieve even
373                  * high-speed mode on firefly board so bump up to 12ma.
374                  */
375                 sdmmc_bus4: sdmmc-bus4 {
376                         rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
377                                         <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
378                                         <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
379                                         <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
380                 };
381
382                 sdmmc_clk: sdmmc-clk {
383                         rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
384                 };
385
386                 sdmmc_cmd: sdmmc-cmd {
387                         rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
388                 };
389
390                 sdmmc_pwr: sdmmc-pwr {
391                         rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
392                 };
393         };
394
395         usb_host {
396                 host_vbus_drv: host-vbus-drv {
397                         rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
398                 };
399
400                 usbhub_rst: usbhub-rst {
401                         rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
402                 };
403         };
404
405         usb_otg {
406                 otg_vbus_drv: otg-vbus-drv {
407                         rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
408                 };
409         };
410 };
411
412 &saradc {
413         vref-supply = <&vcc_18>;
414         status = "okay";
415 };
416
417 &sdio0 {
418         broken-cd;
419         bus-width = <4>;
420         disable-wp;
421         non-removable;
422         num-slots = <1>;
423         pinctrl-names = "default";
424         pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
425         vmmc-supply = <&vcc_18>;
426         status = "disabled";
427 };
428
429 &sdmmc {
430         bus-width = <4>;
431         cap-mmc-highspeed;
432         cap-sd-highspeed;
433         card-detect-delay = <200>;
434         disable-wp;
435         num-slots = <1>;
436         pinctrl-names = "default";
437         pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
438         vmmc-supply = <&vcc_sd>;
439         status = "okay";
440 };
441
442 &spi0 {
443         pinctrl-names = "default";
444         pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>;
445         status = "okay";
446 };
447
448 &uart0 {
449         pinctrl-names = "default";
450         pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
451         status = "okay";
452 };
453
454 &uart1 {
455         status = "okay";
456 };
457
458 &uart2 {
459         status = "okay";
460 };
461
462 &uart3 {
463         status = "okay";
464 };
465
466 &usb_host1 {
467         pinctrl-names = "default";
468         pinctrl-0 = <&usbhub_rst>;
469         status = "okay";
470 };
471
472 &usb_otg {
473         status = "okay";
474 };
475
476 &vopb {
477         status = "okay";
478 };
479
480 &vopb_mmu {
481         status = "okay";
482 };
483
484 &vopl {
485         status = "okay";
486 };
487
488 &vopl_mmu {
489         status = "okay";
490 };
491
492 &wdt {
493         status = "okay";
494 };