Merge drm/drm-fixes into drm-misc-fixes
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3399-kobol-helios64.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2020 Aditya Prayoga <aditya@kobol.io>
4  */
5
6 /*
7  * The Kobol Helios64 is a board designed to operate as a NAS and optionally
8  * ships with an enclosing that can host five 2.5" hard disks.
9  *
10  * See https://wiki.kobol.io/helios64/intro/ for further details.
11  */
12
13 /dts-v1/;
14 #include "rk3399.dtsi"
15 #include "rk3399-opp.dtsi"
16
17 / {
18         model = "Kobol Helios64";
19         compatible = "kobol,helios64", "rockchip,rk3399";
20
21         aliases {
22                 mmc0 = &sdmmc;
23                 mmc1 = &sdhci;
24                 spi1 = &spi1;
25                 spi2 = &spi2;
26                 spi5 = &spi5;
27         };
28
29         avdd_0v9_s0: avdd-0v9-s0 {
30                 compatible = "regulator-fixed";
31                 regulator-name = "avdd_0v9_s0";
32                 regulator-always-on;
33                 regulator-boot-on;
34                 regulator-min-microvolt = <900000>;
35                 regulator-max-microvolt = <900000>;
36                 vin-supply = <&vcc1v8_sys_s3>;
37         };
38
39         avdd_1v8_s0: avdd-1v8-s0 {
40                 compatible = "regulator-fixed";
41                 regulator-name = "avdd_1v8_s0";
42                 regulator-always-on;
43                 regulator-boot-on;
44                 regulator-min-microvolt = <1800000>;
45                 regulator-max-microvolt = <1800000>;
46                 vin-supply = <&vcc3v3_sys_s3>;
47         };
48
49         chosen {
50                 stdout-path = "serial2:1500000n8";
51         };
52
53         clkin_gmac: external-gmac-clock {
54                 compatible = "fixed-clock";
55                 clock-frequency = <125000000>;
56                 clock-output-names = "clkin_gmac";
57                 #clock-cells = <0>;
58         };
59
60         fan1 {
61                 /* fan connected to P7 */
62                 compatible = "pwm-fan";
63                 pwms = <&pwm0 0 40000 0>;
64                 cooling-levels = <0 80 170 255>;
65         };
66
67         fan2 {
68                 /* fan connected to P6 */
69                 compatible = "pwm-fan";
70                 pwms = <&pwm1 0 40000 0>;
71                 cooling-levels = <0 80 170 255>;
72         };
73
74         leds {
75                 compatible = "gpio-leds";
76                 pinctrl-names = "default";
77                 pinctrl-0 = <&sys_grn_led_on &sys_red_led_on>;
78
79                 led-0 {
80                         label = "helios64:green:status";
81                         gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
82                         default-state = "on";
83                 };
84
85                 led-1 {
86                         label = "helios64:red:fault";
87                         gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
88                         default-state = "keep";
89                 };
90         };
91
92         hdd_a_power: hdd-a-power {
93                 compatible = "regulator-fixed";
94                 enable-active-high;
95                 gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
96                 pinctrl-0 = <&hdd_a_power_en>;
97                 pinctrl-names = "default";
98                 regulator-always-on;
99                 regulator-boot-on;
100                 regulator-name = "hdd_a_power";
101                 startup-delay-us = <2000000>;
102         };
103
104         hdd_b_power: hdd-b-power {
105                 compatible = "regulator-fixed";
106                 enable-active-high;
107                 gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
108                 pinctrl-0 = <&hdd_b_power_en>;
109                 pinctrl-names = "default";
110                 regulator-always-on;
111                 regulator-boot-on;
112                 regulator-name = "hdd_b_power";
113                 startup-delay-us = <2000000>;
114         };
115
116         pcie_power: pcie-power {
117                 compatible = "regulator-fixed";
118                 enable-active-high;
119                 gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
120                 pinctrl-0 = <&pcie_pwr>;
121                 pinctrl-names = "default";
122                 regulator-boot-on;
123                 regulator-name = "pcie_power";
124                 startup-delay-us = <10000>;
125                 vin-supply = <&vcc5v0_perdev>;
126         };
127
128         usblan_power: usblan-power {
129                 compatible = "regulator-fixed";
130                 enable-active-high;
131                 gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
132                 pinctrl-names = "default";
133                 pinctrl-0 = <&usb_lan_en>;
134                 regulator-name = "usblan_power";
135                 regulator-always-on;
136                 regulator-boot-on;
137                 vin-supply = <&vcc5v0_usb>;
138         };
139
140         vcc1v8_sys_s0: vcc1v8-sys-s0 {
141                 compatible = "regulator-fixed";
142                 regulator-name = "vcc1v8_sys_s0";
143                 regulator-always-on;
144                 regulator-boot-on;
145                 regulator-min-microvolt = <1800000>;
146                 regulator-max-microvolt = <1800000>;
147                 vin-supply = <&vcc1v8_sys_s3>;
148         };
149
150         vcc3v0_sd: vcc3v0-sd {
151                 compatible = "regulator-fixed";
152                 enable-active-high;
153                 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
154                 regulator-name = "vcc3v0_sd";
155                 regulator-boot-on;
156                 regulator-min-microvolt = <3000000>;
157                 regulator-max-microvolt = <3000000>;
158                 pinctrl-names = "default";
159                 pinctrl-0 = <&sdmmc0_pwr_h>;
160                 vin-supply = <&vcc3v3_sys_s3>;
161         };
162
163         vcc3v3_sys_s3: vcc_lan: vcc3v3-sys-s3 {
164                 compatible = "regulator-fixed";
165                 regulator-name = "vcc3v3_sys_s3";
166                 regulator-always-on;
167                 regulator-boot-on;
168                 regulator-min-microvolt = <3300000>;
169                 regulator-max-microvolt = <3300000>;
170                 vin-supply = <&vcc5v0_sys>;
171
172                 regulator-state-mem {
173                         regulator-on-in-suspend;
174                 };
175         };
176
177         vcc5v0_perdev: vcc5v0-perdev {
178                 compatible = "regulator-fixed";
179                 regulator-name = "vcc5v0_perdev";
180                 regulator-always-on;
181                 regulator-boot-on;
182                 regulator-min-microvolt = <5000000>;
183                 regulator-max-microvolt = <5000000>;
184                 vin-supply = <&vcc12v_dcin_bkup>;
185         };
186
187         vcc5v0_sys: vcc5v0-sys {
188                 compatible = "regulator-fixed";
189                 regulator-name = "vcc5v0_sys";
190                 regulator-always-on;
191                 regulator-boot-on;
192                 regulator-min-microvolt = <5000000>;
193                 regulator-max-microvolt = <5000000>;
194                 vin-supply = <&vcc12v_dcin_bkup>;
195
196                 regulator-state-mem {
197                         regulator-on-in-suspend;
198                 };
199         };
200
201         vcc5v0_usb: vcc5v0-usb {
202                 compatible = "regulator-fixed";
203                 enable-active-high;
204                 gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
205                 pinctrl-names = "default";
206                 pinctrl-0 = <&vcc5v0_usb_en>;
207                 regulator-name = "vcc5v0_usb";
208                 regulator-always-on;
209                 regulator-boot-on;
210                 regulator-min-microvolt = <5000000>;
211                 regulator-max-microvolt = <5000000>;
212                 vin-supply = <&vcc5v0_perdev>;
213         };
214
215         vcc12v_dcin: vcc12v-dcin {
216                 compatible = "regulator-fixed";
217                 regulator-name = "vcc12v_dcin";
218                 regulator-always-on;
219                 regulator-boot-on;
220                 regulator-min-microvolt = <12000000>;
221                 regulator-max-microvolt = <12000000>;
222         };
223
224         vcc12v_dcin_bkup: vcc12v-dcin-bkup {
225                 compatible = "regulator-fixed";
226                 regulator-name = "vcc12v_dcin_bkup";
227                 regulator-always-on;
228                 regulator-boot-on;
229                 regulator-min-microvolt = <12000000>;
230                 regulator-max-microvolt = <12000000>;
231                 vin-supply = <&vcc12v_dcin>;
232         };
233 };
234
235 /*
236  * The system doesn't run stable with cpu freq enabled, so disallow the lower
237  * frequencies until this problem is properly understood and resolved.
238  */
239 &cluster0_opp {
240         /delete-node/ opp00;
241         /delete-node/ opp01;
242         /delete-node/ opp02;
243         /delete-node/ opp03;
244         /delete-node/ opp04;
245 };
246
247 &cluster1_opp {
248         /delete-node/ opp00;
249         /delete-node/ opp01;
250         /delete-node/ opp02;
251         /delete-node/ opp03;
252         /delete-node/ opp04;
253         /delete-node/ opp05;
254         /delete-node/ opp06;
255 };
256
257 &cpu_b0 {
258         cpu-supply = <&vdd_cpu_b>;
259 };
260
261 &cpu_b1 {
262         cpu-supply = <&vdd_cpu_b>;
263 };
264
265 &cpu_l0 {
266         cpu-supply = <&vdd_cpu_l>;
267 };
268
269 &cpu_l1 {
270         cpu-supply = <&vdd_cpu_l>;
271 };
272
273 &cpu_l2 {
274         cpu-supply = <&vdd_cpu_l>;
275 };
276
277 &cpu_l3 {
278         cpu-supply = <&vdd_cpu_l>;
279 };
280
281 &emmc_phy {
282         status = "okay";
283 };
284
285 &gmac {
286         assigned-clock-parents = <&clkin_gmac>;
287         assigned-clocks = <&cru SCLK_RMII_SRC>;
288         clock_in_out = "input";
289         phy-mode = "rgmii";
290         phy-supply = <&vcc_lan>;
291         pinctrl-names = "default";
292         pinctrl-0 = <&rgmii_pins &gphy_reset>;
293         rx_delay = <0x20>;
294         tx_delay = <0x28>;
295         snps,reset-active-low;
296         snps,reset-delays-us = <0 10000 50000>;
297         snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
298         status = "okay";
299 };
300
301 &i2c0 {
302         clock-frequency = <400000>;
303         i2c-scl-rising-time-ns = <168>;
304         i2c-scl-falling-time-ns = <4>;
305         status = "okay";
306
307         rk808: pmic@1b {
308                 compatible = "rockchip,rk808";
309                 reg = <0x1b>;
310                 interrupt-parent = <&gpio0>;
311                 interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
312                 clock-output-names = "xin32k", "rk808-clkout2";
313                 pinctrl-names = "default";
314                 pinctrl-0 = <&pmic_int_l>;
315                 rockchip,system-power-controller;
316                 vcc1-supply = <&vcc5v0_sys>;
317                 vcc2-supply = <&vcc5v0_sys>;
318                 vcc3-supply = <&vcc5v0_sys>;
319                 vcc4-supply = <&vcc5v0_sys>;
320                 vcc6-supply = <&vcc5v0_sys>;
321                 vcc7-supply = <&vcc5v0_sys>;
322                 vcc8-supply = <&vcc3v3_sys_s3>;
323                 vcc9-supply = <&vcc5v0_sys>;
324                 vcc10-supply = <&vcc5v0_sys>;
325                 vcc11-supply = <&vcc5v0_sys>;
326                 vcc12-supply = <&vcc3v3_sys_s3>;
327                 vddio-supply = <&vcc3v0_s3>;
328                 wakeup-source;
329                 #clock-cells = <1>;
330
331                 regulators {
332                         vdd_cpu_l: DCDC_REG2 {
333                                 regulator-name = "vdd_cpu_l";
334                                 regulator-always-on;
335                                 regulator-boot-on;
336                                 regulator-min-microvolt = <750000>;
337                                 regulator-max-microvolt = <1350000>;
338                                 regulator-ramp-delay = <6001>;
339
340                                 regulator-state-mem {
341                                         regulator-off-in-suspend;
342                                 };
343                         };
344
345                         vcc1v8_sys_s3: DCDC_REG4 {
346                                 regulator-name = "vcc1v8_sys_s3";
347                                 regulator-always-on;
348                                 regulator-boot-on;
349                                 regulator-min-microvolt = <1800000>;
350                                 regulator-max-microvolt = <1800000>;
351
352                                 regulator-state-mem {
353                                         regulator-on-in-suspend;
354                                         regulator-suspend-microvolt = <1800000>;
355                                 };
356                         };
357
358                         vcc_sdio_s0: LDO_REG4 {
359                                 regulator-name = "vcc_sdio_s0";
360                                 regulator-always-on;
361                                 regulator-boot-on;
362                                 regulator-min-microvolt = <1800000>;
363                                 regulator-max-microvolt = <3000000>;
364
365                                 regulator-state-mem {
366                                         regulator-on-in-suspend;
367                                         regulator-suspend-microvolt = <3000000>;
368                                 };
369                         };
370
371                         vcc3v0_s3: LDO_REG8 {
372                                 regulator-name = "vcc3v0_s3";
373                                 regulator-always-on;
374                                 regulator-boot-on;
375                                 regulator-min-microvolt = <3000000>;
376                                 regulator-max-microvolt = <3000000>;
377
378                                 regulator-state-mem {
379                                         regulator-on-in-suspend;
380                                         regulator-suspend-microvolt = <3000000>;
381                                 };
382                         };
383                 };
384         };
385
386         vdd_cpu_b: regulator@40 {
387                 compatible = "silergy,syr827";
388                 reg = <0x40>;
389                 fcs,suspend-voltage-selector = <1>;
390                 regulator-name = "vdd_cpu_b";
391                 regulator-always-on;
392                 regulator-boot-on;
393                 regulator-min-microvolt = <712500>;
394                 regulator-max-microvolt = <1500000>;
395                 regulator-ramp-delay = <1000>;
396                 vin-supply = <&vcc5v0_sys>;
397
398                 regulator-state-mem {
399                         regulator-off-in-suspend;
400                 };
401         };
402 };
403
404 &i2c2 {
405         clock-frequency = <400000>;
406         i2c-scl-rising-time-ns = <160>;
407         i2c-scl-falling-time-ns = <30>;
408         status = "okay";
409
410         temp@4c {
411                 compatible = "national,lm75";
412                 reg = <0x4c>;
413         };
414 };
415
416 &io_domains {
417         audio-supply = <&vcc1v8_sys_s0>;
418         bt656-supply = <&vcc1v8_sys_s0>;
419         gpio1830-supply = <&vcc3v0_s3>;
420         sdmmc-supply = <&vcc_sdio_s0>;
421         status = "okay";
422 };
423
424 &pcie_phy {
425         status = "okay";
426 };
427
428 &pcie0 {
429         ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
430         max-link-speed = <2>;
431         num-lanes = <2>;
432         pinctrl-names = "default";
433         status = "okay";
434
435         vpcie12v-supply = <&vcc12v_dcin>;
436         vpcie3v3-supply = <&pcie_power>;
437         vpcie1v8-supply = <&avdd_1v8_s0>;
438         vpcie0v9-supply = <&avdd_0v9_s0>;
439 };
440
441 &pinctrl {
442         gmac {
443                 gphy_reset: gphy-reset {
444                         rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
445                 };
446         };
447
448         leds {
449                 sys_grn_led_on: sys-grn-led-on {
450                         rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
451                 };
452
453                 sys_red_led_on: sys-red-led-on {
454                         rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
455                 };
456         };
457
458         pcie {
459                 pcie_pwr: pcie-pwr {
460                         rockchip,pins =
461                                 <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
462                 };
463         };
464
465         pmic {
466                 pmic_int_l: pmic-int-l {
467                         rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
468                 };
469         };
470
471         power {
472                 hdd_a_power_en: hdd-a-power-en {
473                         rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
474                 };
475
476                 hdd_b_power_en: hdd-b-power-en {
477                         rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
478                 };
479
480                 vcc5v0_usb_en: vcc5v0-usb-en {
481                         rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
482                 };
483
484                 usb_lan_en: usb-lan-en {
485                         rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
486                 };
487         };
488
489         vcc3v0-sd {
490                 sdmmc0_pwr_h: sdmmc0-pwr-h {
491                         rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
492                 };
493         };
494 };
495
496 &pmu_io_domains {
497         pmu1830-supply = <&vcc3v0_s3>;
498         status = "okay";
499 };
500
501 &pwm0 {
502         /* pwm-fan on P7 */
503         status = "okay";
504 };
505
506 &pwm1 {
507         /* pwm-fan on P6 */
508         status = "okay";
509 };
510
511 &sdhci {
512         bus-width = <8>;
513         mmc-hs200-1_8v;
514         non-removable;
515         vqmmc-supply = <&vcc1v8_sys_s0>;
516         status = "okay";
517 };
518
519 &sdmmc {
520         bus-width = <4>;
521         cap-sd-highspeed;
522         cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
523         disable-wp;
524         pinctrl-names = "default";
525         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
526         vmmc-supply = <&vcc3v0_sd>;
527         vqmmc-supply = <&vcc_sdio_s0>;
528         status = "okay";
529 };
530
531 &spi1 {
532         status = "okay";
533
534         spiflash: flash@0 {
535                 compatible = "jedec,spi-nor";
536                 reg = <0x0>;
537                 spi-max-frequency = <25000000>;
538                 status = "okay";
539                 m25p,fast-read;
540         };
541 };
542
543 /* UEXT connector */
544 &spi2 {
545         status = "okay";
546 };
547
548 &spi5 {
549         status = "okay";
550 };
551
552 &tcphy1 {
553         /* phy for &usbdrd_dwc3_1 */
554         status = "okay";
555 };
556
557 &tsadc {
558         /* tshut mode 0:CRU 1:GPIO */
559         rockchip,hw-tshut-mode = <1>;
560         /* tshut polarity 0:LOW 1:HIGH */
561         rockchip,hw-tshut-polarity = <1>;
562         status = "okay";
563 };
564
565 &u2phy1 {
566         status = "okay";
567
568         otg-port {
569                 /* phy for &usbdrd_dwc3_1 */
570                 phy-supply = <&vcc5v0_usb>;
571                 status = "okay";
572         };
573 };
574
575 &uart2 {
576         status = "okay";
577 };
578
579 &usbdrd3_1 {
580         status = "okay";
581
582         usb@fe900000 {
583                 dr_mode = "host";
584                 status = "okay";
585                 #address-cells = <1>;
586                 #size-cells = <0>;
587
588                 hub@1 {
589                         compatible = "usb2109,0815";
590                         reg = <1>;
591                         #address-cells = <1>;
592                         #size-cells = <0>;
593
594                         port@1 {
595                                 reg = <1>;
596                                 #trigger-source-cells = <0>;
597                         };
598
599                         port@2 {
600                                 reg = <2>;
601                                 #trigger-source-cells = <0>;
602                         };
603
604                         port@3 {
605                                 reg = <3>;
606                                 #trigger-source-cells = <0>;
607                         };
608
609                         device@4 {
610                                 compatible = "usbbda,8156";
611                                 reg = <4>;
612                                 #address-cells = <2>;
613                                 #size-cells = <0>;
614
615                                 interface@0 {   /* interface 0 of configuration 1 */
616                                         compatible = "usbbda,8156.config1.0";
617                                         reg = <0 1>;
618                                 };
619                         };
620                 };
621         };
622 };