GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / rk3288-tinker.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4  */
5
6 /dts-v1/;
7
8 #include "rk3288.dtsi"
9 #include <dt-bindings/input/input.h>
10
11 / {
12         model = "Rockchip RK3288 Tinker Board";
13         compatible = "asus,rk3288-tinker", "rockchip,rk3288";
14
15         chosen {
16                 stdout-path = "serial2:115200n8";
17         };
18
19         memory {
20                 reg = <0x0 0x0 0x0 0x80000000>;
21                 device_type = "memory";
22         };
23
24         ext_gmac: external-gmac-clock {
25                 compatible = "fixed-clock";
26                 #clock-cells = <0>;
27                 clock-frequency = <125000000>;
28                 clock-output-names = "ext_gmac";
29         };
30
31         gpio-keys {
32                 compatible = "gpio-keys";
33                 #address-cells = <1>;
34                 #size-cells = <0>;
35                 autorepeat;
36
37                 pinctrl-names = "default";
38                 pinctrl-0 = <&pwrbtn>;
39
40                 button@0 {
41                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
42                         linux,code = <KEY_POWER>;
43                         label = "GPIO Key Power";
44                         linux,input-type = <1>;
45                         wakeup-source;
46                         debounce-interval = <100>;
47                 };
48         };
49
50         gpio-leds {
51                 compatible = "gpio-leds";
52
53                 act-led {
54                         gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
55                         linux,default-trigger="mmc0";
56                 };
57
58                 heartbeat-led {
59                         gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
60                         linux,default-trigger="heartbeat";
61                 };
62
63                 pwr-led {
64                         gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
65                         linux,default-trigger = "default-on";
66                 };
67         };
68
69         sound {
70                 compatible = "simple-audio-card";
71                 simple-audio-card,format = "i2s";
72                 simple-audio-card,name = "rockchip,tinker-codec";
73                 simple-audio-card,mclk-fs = <512>;
74
75                 simple-audio-card,codec {
76                         sound-dai = <&hdmi>;
77                 };
78
79                 simple-audio-card,cpu {
80                         sound-dai = <&i2s>;
81                 };
82         };
83
84         vcc_sys: vsys-regulator {
85                 compatible = "regulator-fixed";
86                 regulator-name = "vcc_sys";
87                 regulator-min-microvolt = <5000000>;
88                 regulator-max-microvolt = <5000000>;
89                 regulator-always-on;
90                 regulator-boot-on;
91         };
92
93         vcc_sd: sdmmc-regulator {
94                 compatible = "regulator-fixed";
95                 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
96                 pinctrl-names = "default";
97                 pinctrl-0 = <&sdmmc_pwr>;
98                 regulator-name = "vcc_sd";
99                 regulator-min-microvolt = <3300000>;
100                 regulator-max-microvolt = <3300000>;
101                 startup-delay-us = <100000>;
102                 vin-supply = <&vcc_io>;
103         };
104 };
105
106 &cpu0 {
107         cpu0-supply = <&vdd_cpu>;
108 };
109
110 &gmac {
111         assigned-clocks = <&cru SCLK_MAC>;
112         assigned-clock-parents = <&ext_gmac>;
113         clock_in_out = "input";
114         phy-mode = "rgmii";
115         phy-supply = <&vcc33_lan>;
116         pinctrl-names = "default";
117         pinctrl-0 = <&rgmii_pins>;
118         snps,reset-gpio = <&gpio4 7 0>;
119         snps,reset-active-low;
120         snps,reset-delays-us = <0 10000 1000000>;
121         tx_delay = <0x30>;
122         rx_delay = <0x10>;
123         status = "ok";
124 };
125
126 &gpu {
127         mali-supply = <&vdd_gpu>;
128         status = "okay";
129 };
130
131 &hdmi {
132         ddc-i2c-bus = <&i2c5>;
133         status = "okay";
134 };
135
136 &i2c0 {
137         clock-frequency = <400000>;
138         status = "okay";
139
140         rk808: pmic@1b {
141                 compatible = "rockchip,rk808";
142                 reg = <0x1b>;
143                 interrupt-parent = <&gpio0>;
144                 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
145                 #clock-cells = <1>;
146                 clock-output-names = "xin32k", "rk808-clkout2";
147                 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
148                                 <&gpio0 12 GPIO_ACTIVE_HIGH>;
149                 pinctrl-names = "default";
150                 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
151                 rockchip,system-power-controller;
152                 wakeup-source;
153
154                 vcc1-supply = <&vcc_sys>;
155                 vcc2-supply = <&vcc_sys>;
156                 vcc3-supply = <&vcc_sys>;
157                 vcc4-supply = <&vcc_sys>;
158                 vcc6-supply = <&vcc_sys>;
159                 vcc7-supply = <&vcc_sys>;
160                 vcc8-supply = <&vcc_io>;
161                 vcc9-supply = <&vcc_io>;
162                 vcc10-supply = <&vcc_io>;
163                 vcc11-supply = <&vcc_sys>;
164                 vcc12-supply = <&vcc_io>;
165                 vddio-supply = <&vcc_io>;
166
167                 regulators {
168                         vdd_cpu: DCDC_REG1 {
169                                 regulator-always-on;
170                                 regulator-boot-on;
171                                 regulator-min-microvolt = <750000>;
172                                 regulator-max-microvolt = <1350000>;
173                                 regulator-name = "vdd_arm";
174                                 regulator-ramp-delay = <6000>;
175                                 regulator-state-mem {
176                                         regulator-off-in-suspend;
177                                 };
178                         };
179
180                         vdd_gpu: DCDC_REG2 {
181                                 regulator-always-on;
182                                 regulator-boot-on;
183                                 regulator-min-microvolt = <850000>;
184                                 regulator-max-microvolt = <1250000>;
185                                 regulator-name = "vdd_gpu";
186                                 regulator-ramp-delay = <6000>;
187                                 regulator-state-mem {
188                                         regulator-on-in-suspend;
189                                         regulator-suspend-microvolt = <1000000>;
190                                 };
191                         };
192
193                         vcc_ddr: DCDC_REG3 {
194                                 regulator-always-on;
195                                 regulator-boot-on;
196                                 regulator-name = "vcc_ddr";
197                                 regulator-state-mem {
198                                         regulator-on-in-suspend;
199                                 };
200                         };
201
202                         vcc_io: DCDC_REG4 {
203                                 regulator-always-on;
204                                 regulator-boot-on;
205                                 regulator-min-microvolt = <3300000>;
206                                 regulator-max-microvolt = <3300000>;
207                                 regulator-name = "vcc_io";
208                                 regulator-state-mem {
209                                         regulator-on-in-suspend;
210                                         regulator-suspend-microvolt = <3300000>;
211                                 };
212                         };
213
214                         vcc18_ldo1: LDO_REG1 {
215                                 regulator-always-on;
216                                 regulator-boot-on;
217                                 regulator-min-microvolt = <1800000>;
218                                 regulator-max-microvolt = <1800000>;
219                                 regulator-name = "vcc18_ldo1";
220                                 regulator-state-mem {
221                                         regulator-on-in-suspend;
222                                         regulator-suspend-microvolt = <1800000>;
223                                 };
224                         };
225
226                         vcc33_mipi: LDO_REG2 {
227                                 regulator-always-on;
228                                 regulator-boot-on;
229                                 regulator-min-microvolt = <3300000>;
230                                 regulator-max-microvolt = <3300000>;
231                                 regulator-name = "vcc33_mipi";
232                                 regulator-state-mem {
233                                         regulator-off-in-suspend;
234                                 };
235                         };
236
237                         vdd_10: LDO_REG3 {
238                                 regulator-always-on;
239                                 regulator-boot-on;
240                                 regulator-min-microvolt = <1000000>;
241                                 regulator-max-microvolt = <1000000>;
242                                 regulator-name = "vdd_10";
243                                 regulator-state-mem {
244                                         regulator-on-in-suspend;
245                                         regulator-suspend-microvolt = <1000000>;
246                                 };
247                         };
248
249                         vcc18_codec: LDO_REG4 {
250                                 regulator-always-on;
251                                 regulator-boot-on;
252                                 regulator-min-microvolt = <1800000>;
253                                 regulator-max-microvolt = <1800000>;
254                                 regulator-name = "vcc18_codec";
255                                 regulator-state-mem {
256                                         regulator-on-in-suspend;
257                                         regulator-suspend-microvolt = <1800000>;
258                                 };
259                         };
260
261                         vccio_sd: LDO_REG5 {
262                                 regulator-min-microvolt = <1800000>;
263                                 regulator-max-microvolt = <3300000>;
264                                 regulator-name = "vccio_sd";
265                                 regulator-state-mem {
266                                         regulator-on-in-suspend;
267                                         regulator-suspend-microvolt = <3300000>;
268                                 };
269                         };
270
271                         vdd10_lcd: LDO_REG6 {
272                                 regulator-always-on;
273                                 regulator-boot-on;
274                                 regulator-min-microvolt = <1000000>;
275                                 regulator-max-microvolt = <1000000>;
276                                 regulator-name = "vdd10_lcd";
277                                 regulator-state-mem {
278                                         regulator-on-in-suspend;
279                                         regulator-suspend-microvolt = <1000000>;
280                                 };
281                         };
282
283                         vcc_18: LDO_REG7 {
284                                 regulator-always-on;
285                                 regulator-boot-on;
286                                 regulator-min-microvolt = <1800000>;
287                                 regulator-max-microvolt = <1800000>;
288                                 regulator-name = "vcc_18";
289                                 regulator-state-mem {
290                                         regulator-on-in-suspend;
291                                         regulator-suspend-microvolt = <1800000>;
292                                 };
293                         };
294
295                         vcc18_lcd: LDO_REG8 {
296                                 regulator-always-on;
297                                 regulator-boot-on;
298                                 regulator-min-microvolt = <1800000>;
299                                 regulator-max-microvolt = <1800000>;
300                                 regulator-name = "vcc18_lcd";
301                                 regulator-state-mem {
302                                         regulator-on-in-suspend;
303                                         regulator-suspend-microvolt = <1800000>;
304                                 };
305                         };
306
307                         vcc33_sd: SWITCH_REG1 {
308                                 regulator-always-on;
309                                 regulator-boot-on;
310                                 regulator-name = "vcc33_sd";
311                                 regulator-state-mem {
312                                         regulator-on-in-suspend;
313                                 };
314                         };
315
316                         vcc33_lan: SWITCH_REG2 {
317                                 regulator-always-on;
318                                 regulator-boot-on;
319                                 regulator-name = "vcc33_lan";
320                                 regulator-state-mem {
321                                         regulator-on-in-suspend;
322                                 };
323                         };
324                 };
325         };
326 };
327
328 &i2c2 {
329         status = "okay";
330 };
331
332 &i2c5 {
333         status = "okay";
334 };
335
336 &i2s {
337         #sound-dai-cells = <0>;
338         status = "okay";
339 };
340
341 &io_domains {
342         status = "okay";
343
344         sdcard-supply = <&vccio_sd>;
345 };
346
347 &pinctrl {
348         pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
349                 drive-strength = <8>;
350         };
351
352         pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
353                 bias-pull-up;
354                 drive-strength = <8>;
355         };
356
357         backlight {
358                 bl_en: bl-en {
359                         rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
360                 };
361         };
362
363         buttons {
364                 pwrbtn: pwrbtn {
365                         rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
366                 };
367         };
368
369         eth_phy {
370                 eth_phy_pwr: eth-phy-pwr {
371                         rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
372                 };
373         };
374
375         pmic {
376                 pmic_int: pmic-int {
377                         rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
378                                         &pcfg_pull_up>;
379                 };
380
381                 dvs_1: dvs-1 {
382                         rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
383                                         &pcfg_pull_down>;
384                 };
385
386                 dvs_2: dvs-2 {
387                         rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
388                                         &pcfg_pull_down>;
389                 };
390         };
391
392         sdmmc {
393                 sdmmc_bus4: sdmmc-bus4 {
394                         rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
395                                         <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
396                                         <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
397                                         <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
398                 };
399
400                 sdmmc_clk: sdmmc-clk {
401                         rockchip,pins = <6 20 RK_FUNC_1 \
402                                         &pcfg_pull_none_drv_8ma>;
403                 };
404
405                 sdmmc_cmd: sdmmc-cmd {
406                         rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
407                 };
408
409                 sdmmc_pwr: sdmmc-pwr {
410                         rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
411                 };
412         };
413
414         usb {
415                 host_vbus_drv: host-vbus-drv {
416                         rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
417                 };
418
419                 pwr_3g: pwr-3g {
420                         rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
421                 };
422         };
423 };
424
425 &pwm0 {
426         status = "okay";
427 };
428
429 &saradc {
430         vref-supply = <&vcc18_ldo1>;
431         status ="okay";
432 };
433
434 &sdmmc {
435         bus-width = <4>;
436         cap-mmc-highspeed;
437         cap-sd-highspeed;
438         card-detect-delay = <200>;
439         disable-wp;                     /* wp not hooked up */
440         pinctrl-names = "default";
441         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
442         status = "okay";
443         vmmc-supply = <&vcc33_sd>;
444         vqmmc-supply = <&vccio_sd>;
445 };
446
447 &tsadc {
448         rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
449         rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
450         status = "okay";
451 };
452
453 &uart0 {
454         status = "okay";
455 };
456
457 &uart1 {
458         status = "okay";
459 };
460
461 &uart2 {
462         status = "okay";
463 };
464
465 &uart3 {
466         status = "okay";
467 };
468
469 &uart4 {
470         status = "okay";
471 };
472
473 &usbphy {
474         status = "okay";
475 };
476
477 &usb_host0_ehci {
478         status = "okay";
479 };
480
481 &usb_host1 {
482         status = "okay";
483 };
484
485 &usb_otg {
486         status= "okay";
487 };
488
489 &vopb {
490         status = "okay";
491 };
492
493 &vopb_mmu {
494         status = "okay";
495 };
496
497 &vopl {
498         status = "okay";
499 };
500
501 &vopl_mmu {
502         status = "okay";
503 };
504
505 &wdt {
506         status = "okay";
507 };