Merge commit '4f3530f4a41d49c41015020cd9a5ed5c95b5d2db' into omap-for-v4.20/ti-sysc
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / rockchip / rk3399-sapphire.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4  */
5
6 #include "dt-bindings/pwm/pwm.h"
7 #include "dt-bindings/input/input.h"
8 #include "rk3399.dtsi"
9 #include "rk3399-opp.dtsi"
10
11 / {
12         compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
13
14         backlight: backlight {
15                 compatible = "pwm-backlight";
16                 brightness-levels = <
17                           0   1   2   3   4   5   6   7
18                           8   9  10  11  12  13  14  15
19                          16  17  18  19  20  21  22  23
20                          24  25  26  27  28  29  30  31
21                          32  33  34  35  36  37  38  39
22                          40  41  42  43  44  45  46  47
23                          48  49  50  51  52  53  54  55
24                          56  57  58  59  60  61  62  63
25                          64  65  66  67  68  69  70  71
26                          72  73  74  75  76  77  78  79
27                          80  81  82  83  84  85  86  87
28                          88  89  90  91  92  93  94  95
29                          96  97  98  99 100 101 102 103
30                         104 105 106 107 108 109 110 111
31                         112 113 114 115 116 117 118 119
32                         120 121 122 123 124 125 126 127
33                         128 129 130 131 132 133 134 135
34                         136 137 138 139 140 141 142 143
35                         144 145 146 147 148 149 150 151
36                         152 153 154 155 156 157 158 159
37                         160 161 162 163 164 165 166 167
38                         168 169 170 171 172 173 174 175
39                         176 177 178 179 180 181 182 183
40                         184 185 186 187 188 189 190 191
41                         192 193 194 195 196 197 198 199
42                         200 201 202 203 204 205 206 207
43                         208 209 210 211 212 213 214 215
44                         216 217 218 219 220 221 222 223
45                         224 225 226 227 228 229 230 231
46                         232 233 234 235 236 237 238 239
47                         240 241 242 243 244 245 246 247
48                         248 249 250 251 252 253 254 255>;
49                 default-brightness-level = <200>;
50                 pwms = <&pwm0 0 25000 0>;
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         dc_12v: dc-12v {
61                 compatible = "regulator-fixed";
62                 regulator-name = "dc_12v";
63                 regulator-always-on;
64                 regulator-boot-on;
65                 regulator-min-microvolt = <12000000>;
66                 regulator-max-microvolt = <12000000>;
67         };
68
69         keys: gpio-keys {
70                 compatible = "gpio-keys";
71                 autorepeat;
72
73                 power {
74                         debounce-interval = <100>;
75                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
76                         label = "GPIO Power";
77                         linux,code = <KEY_POWER>;
78                         linux,input-type = <1>;
79                         pinctrl-names = "default";
80                         pinctrl-0 = <&pwr_btn>;
81                         wakeup-source;
82                 };
83         };
84
85         /* switched by pmic_sleep */
86         vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
87                 compatible = "regulator-fixed";
88                 regulator-name = "vcc1v8_s3";
89                 regulator-always-on;
90                 regulator-boot-on;
91                 regulator-min-microvolt = <1800000>;
92                 regulator-max-microvolt = <1800000>;
93                 vin-supply = <&vcc_1v8>;
94         };
95
96         vcc3v3_sys: vcc3v3-sys {
97                 compatible = "regulator-fixed";
98                 regulator-name = "vcc3v3_sys";
99                 regulator-always-on;
100                 regulator-boot-on;
101                 regulator-min-microvolt = <3300000>;
102                 regulator-max-microvolt = <3300000>;
103                 vin-supply = <&vcc_sys>;
104         };
105
106         vcc_sys: vcc-sys {
107                 compatible = "regulator-fixed";
108                 regulator-name = "vcc_sys";
109                 regulator-always-on;
110                 regulator-boot-on;
111                 regulator-min-microvolt = <5000000>;
112                 regulator-max-microvolt = <5000000>;
113                 vin-supply = <&dc_12v>;
114         };
115
116         vcc5v0_host: vcc5v0-host-regulator {
117                 compatible = "regulator-fixed";
118                 enable-active-high;
119                 gpio = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
120                 pinctrl-names = "default";
121                 pinctrl-0 = <&vcc5v0_host_en>;
122                 regulator-name = "vcc5v0_host";
123                 regulator-always-on;
124                 vin-supply = <&vcc_sys>;
125         };
126
127         vdd_log: vdd-log {
128                 compatible = "pwm-regulator";
129                 pwms = <&pwm2 0 25000 1>;
130                 regulator-name = "vdd_log";
131                 regulator-always-on;
132                 regulator-boot-on;
133                 regulator-min-microvolt = <800000>;
134                 regulator-max-microvolt = <1400000>;
135                 vin-supply = <&vcc_sys>;
136         };
137 };
138
139 &cpu_l0 {
140         cpu-supply = <&vdd_cpu_l>;
141 };
142
143 &cpu_l1 {
144         cpu-supply = <&vdd_cpu_l>;
145 };
146
147 &cpu_l2 {
148         cpu-supply = <&vdd_cpu_l>;
149 };
150
151 &cpu_l3 {
152         cpu-supply = <&vdd_cpu_l>;
153 };
154
155 &cpu_b0 {
156         cpu-supply = <&vdd_cpu_b>;
157 };
158
159 &cpu_b1 {
160         cpu-supply = <&vdd_cpu_b>;
161 };
162
163 &emmc_phy {
164         status = "okay";
165 };
166
167 &gmac {
168         assigned-clocks = <&cru SCLK_RMII_SRC>;
169         assigned-clock-parents = <&clkin_gmac>;
170         clock_in_out = "input";
171         phy-supply = <&vcc_lan>;
172         phy-mode = "rgmii";
173         pinctrl-names = "default";
174         pinctrl-0 = <&rgmii_pins>;
175         snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
176         snps,reset-active-low;
177         snps,reset-delays-us = <0 10000 50000>;
178         tx_delay = <0x28>;
179         rx_delay = <0x11>;
180         status = "okay";
181 };
182
183 &gpu {
184         mali-supply = <&vdd_gpu>;
185         status = "okay";
186 };
187
188 &hdmi {
189         ddc-i2c-bus = <&i2c3>;
190         status = "okay";
191 };
192
193 &hdmi_sound {
194         status = "okay";
195 };
196
197 &i2c0 {
198         clock-frequency = <400000>;
199         i2c-scl-rising-time-ns = <168>;
200         i2c-scl-falling-time-ns = <4>;
201         status = "okay";
202
203         rk808: pmic@1b {
204                 compatible = "rockchip,rk808";
205                 reg = <0x1b>;
206                 interrupt-parent = <&gpio1>;
207                 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
208                 #clock-cells = <1>;
209                 clock-output-names = "xin32k", "rk808-clkout2";
210                 pinctrl-names = "default";
211                 pinctrl-0 = <&pmic_int_l &pmic_dvs2>;
212                 rockchip,system-power-controller;
213                 wakeup-source;
214
215                 vcc1-supply = <&vcc_sys>;
216                 vcc2-supply = <&vcc_sys>;
217                 vcc3-supply = <&vcc_sys>;
218                 vcc4-supply = <&vcc_sys>;
219                 vcc6-supply = <&vcc_sys>;
220                 vcc7-supply = <&vcc_sys>;
221                 vcc8-supply = <&vcc3v3_sys>;
222                 vcc9-supply = <&vcc_sys>;
223                 vcc10-supply = <&vcc_sys>;
224                 vcc11-supply = <&vcc_sys>;
225                 vcc12-supply = <&vcc3v3_sys>;
226                 vddio-supply = <&vcc1v8_pmu>;
227
228                 regulators {
229                         vdd_center: DCDC_REG1 {
230                                 regulator-name = "vdd_center";
231                                 regulator-always-on;
232                                 regulator-boot-on;
233                                 regulator-min-microvolt = <750000>;
234                                 regulator-max-microvolt = <1350000>;
235                                 regulator-ramp-delay = <6001>;
236                                 regulator-state-mem {
237                                         regulator-off-in-suspend;
238                                 };
239                         };
240
241                         vdd_cpu_l: DCDC_REG2 {
242                                 regulator-name = "vdd_cpu_l";
243                                 regulator-always-on;
244                                 regulator-boot-on;
245                                 regulator-min-microvolt = <750000>;
246                                 regulator-max-microvolt = <1350000>;
247                                 regulator-ramp-delay = <6001>;
248                                 regulator-state-mem {
249                                         regulator-off-in-suspend;
250                                 };
251                         };
252
253                         vcc_ddr: DCDC_REG3 {
254                                 regulator-name = "vcc_ddr";
255                                 regulator-always-on;
256                                 regulator-boot-on;
257                                 regulator-state-mem {
258                                         regulator-on-in-suspend;
259                                 };
260                         };
261
262                         vcc_1v8: DCDC_REG4 {
263                                 regulator-name = "vcc_1v8";
264                                 regulator-always-on;
265                                 regulator-boot-on;
266                                 regulator-min-microvolt = <1800000>;
267                                 regulator-max-microvolt = <1800000>;
268                                 regulator-state-mem {
269                                         regulator-on-in-suspend;
270                                         regulator-suspend-microvolt = <1800000>;
271                                 };
272                         };
273
274                         vcc1v8_dvp: LDO_REG1 {
275                                 regulator-name = "vcc1v8_dvp";
276                                 regulator-always-on;
277                                 regulator-boot-on;
278                                 regulator-min-microvolt = <1800000>;
279                                 regulator-max-microvolt = <1800000>;
280                                 regulator-state-mem {
281                                         regulator-off-in-suspend;
282                                 };
283                         };
284
285                         vcc3v0_tp: LDO_REG2 {
286                                 regulator-name = "vcc3v0_tp";
287                                 regulator-always-on;
288                                 regulator-boot-on;
289                                 regulator-min-microvolt = <3000000>;
290                                 regulator-max-microvolt = <3000000>;
291                                 regulator-state-mem {
292                                         regulator-off-in-suspend;
293                                 };
294                         };
295
296                         vcc1v8_pmu: LDO_REG3 {
297                                 regulator-name = "vcc1v8_pmu";
298                                 regulator-always-on;
299                                 regulator-boot-on;
300                                 regulator-min-microvolt = <1800000>;
301                                 regulator-max-microvolt = <1800000>;
302                                 regulator-state-mem {
303                                         regulator-on-in-suspend;
304                                         regulator-suspend-microvolt = <1800000>;
305                                 };
306                         };
307
308                         vcc_sdio: LDO_REG4 {
309                                 regulator-name = "vcc_sdio";
310                                 regulator-always-on;
311                                 regulator-boot-on;
312                                 regulator-min-microvolt = <1800000>;
313                                 regulator-max-microvolt = <3000000>;
314                                 regulator-state-mem {
315                                         regulator-on-in-suspend;
316                                         regulator-suspend-microvolt = <3000000>;
317                                 };
318                         };
319
320                         vcca3v0_codec: LDO_REG5 {
321                                 regulator-name = "vcca3v0_codec";
322                                 regulator-always-on;
323                                 regulator-boot-on;
324                                 regulator-min-microvolt = <3000000>;
325                                 regulator-max-microvolt = <3000000>;
326                                 regulator-state-mem {
327                                         regulator-off-in-suspend;
328                                 };
329                         };
330
331                         vcc_1v5: LDO_REG6 {
332                                 regulator-name = "vcc_1v5";
333                                 regulator-always-on;
334                                 regulator-boot-on;
335                                 regulator-min-microvolt = <1500000>;
336                                 regulator-max-microvolt = <1500000>;
337                                 regulator-state-mem {
338                                         regulator-on-in-suspend;
339                                         regulator-suspend-microvolt = <1500000>;
340                                 };
341                         };
342
343                         vcca1v8_codec: LDO_REG7 {
344                                 regulator-name = "vcca1v8_codec";
345                                 regulator-always-on;
346                                 regulator-boot-on;
347                                 regulator-min-microvolt = <1800000>;
348                                 regulator-max-microvolt = <1800000>;
349                                 regulator-state-mem {
350                                         regulator-off-in-suspend;
351                                 };
352                         };
353
354                         vcc_3v0: LDO_REG8 {
355                                 regulator-name = "vcc_3v0";
356                                 regulator-always-on;
357                                 regulator-boot-on;
358                                 regulator-min-microvolt = <3000000>;
359                                 regulator-max-microvolt = <3000000>;
360                                 regulator-state-mem {
361                                         regulator-on-in-suspend;
362                                         regulator-suspend-microvolt = <3000000>;
363                                 };
364                         };
365
366                         vcc3v3_s3: vcc_lan: SWITCH_REG1 {
367                                 regulator-name = "vcc3v3_s3";
368                                 regulator-always-on;
369                                 regulator-boot-on;
370                                 regulator-state-mem {
371                                         regulator-off-in-suspend;
372                                 };
373                         };
374
375                         vcc3v3_s0: SWITCH_REG2 {
376                                 regulator-name = "vcc3v3_s0";
377                                 regulator-always-on;
378                                 regulator-boot-on;
379                                 regulator-state-mem {
380                                         regulator-off-in-suspend;
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-min-microvolt = <712500>;
392                 regulator-max-microvolt = <1500000>;
393                 regulator-ramp-delay = <1000>;
394                 regulator-always-on;
395                 regulator-boot-on;
396                 vin-supply = <&vcc_sys>;
397
398                 regulator-state-mem {
399                         regulator-off-in-suspend;
400                 };
401         };
402
403         vdd_gpu: regulator@41 {
404                 compatible = "silergy,syr828";
405                 reg = <0x41>;
406                 fcs,suspend-voltage-selector = <1>;
407                 regulator-name = "vdd_gpu";
408                 regulator-min-microvolt = <712500>;
409                 regulator-max-microvolt = <1500000>;
410                 regulator-ramp-delay = <1000>;
411                 regulator-always-on;
412                 regulator-boot-on;
413                 vin-supply = <&vcc_sys>;
414
415                 regulator-state-mem {
416                         regulator-off-in-suspend;
417                 };
418         };
419 };
420
421 &i2c3 {
422         i2c-scl-rising-time-ns = <450>;
423         i2c-scl-falling-time-ns = <15>;
424         status = "okay";
425 };
426
427 &i2s2 {
428         status = "okay";
429 };
430
431 &io_domains {
432         status = "okay";
433
434         bt656-supply = <&vcc_3v0>;
435         audio-supply = <&vcca1v8_codec>;
436         sdmmc-supply = <&vcc_sdio>;
437         gpio1830-supply = <&vcc_3v0>;
438 };
439
440 &pmu_io_domains {
441         pmu1830-supply = <&vcc_3v0>;
442         status = "okay";
443 };
444
445 &pinctrl {
446         buttons {
447                 pwr_btn: pwr-btn {
448                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
449                 };
450         };
451
452         pmic {
453                 pmic_int_l: pmic-int-l {
454                         rockchip,pins =
455                                 <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
456                 };
457
458                 pmic_dvs2: pmic-dvs2 {
459                         rockchip,pins =
460                                 <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
461                 };
462
463                 vsel1_gpio: vsel1-gpio {
464                         rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
465                 };
466
467                 vsel2_gpio: vsel2-gpio {
468                         rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
469                 };
470         };
471
472         usb2 {
473                 vcc5v0_host_en: vcc5v0-host-en {
474                         rockchip,pins =
475                                 <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
476                 };
477         };
478 };
479
480 &pwm0 {
481         status = "okay";
482 };
483
484 &pwm2 {
485         status = "okay";
486 };
487
488 &saradc {
489         vref-supply = <&vcca1v8_s3>;
490         status = "okay";
491 };
492
493 &sdhci {
494         bus-width = <8>;
495         mmc-hs400-1_8v;
496         mmc-hs400-enhanced-strobe;
497         non-removable;
498         status = "okay";
499 };
500
501 &sdmmc {
502         bus-width = <4>;
503         cap-mmc-highspeed;
504         cap-sd-highspeed;
505         clock-frequency = <150000000>;
506         disable-wp;
507         max-frequency = <150000000>;
508         pinctrl-names = "default";
509         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
510         vqmmc-supply = <&vcc_sdio>;
511         status = "okay";
512 };
513
514 &tcphy0 {
515         status = "okay";
516 };
517
518 &tcphy1 {
519         status = "okay";
520 };
521
522 &tsadc {
523         /* tshut mode 0:CRU 1:GPIO */
524         rockchip,hw-tshut-mode = <1>;
525         /* tshut polarity 0:LOW 1:HIGH */
526         rockchip,hw-tshut-polarity = <1>;
527         status = "okay";
528 };
529
530 &u2phy0 {
531         status = "okay";
532
533         u2phy0_otg: otg-port {
534                 status = "okay";
535         };
536
537         u2phy0_host: host-port {
538                 phy-supply = <&vcc5v0_host>;
539                 status = "okay";
540         };
541 };
542
543 &u2phy1 {
544         status = "okay";
545
546         u2phy1_otg: otg-port {
547                 status = "okay";
548         };
549
550         u2phy1_host: host-port {
551                 phy-supply = <&vcc5v0_host>;
552                 status = "okay";
553         };
554 };
555
556 &uart0 {
557         pinctrl-names = "default";
558         pinctrl-0 = <&uart0_xfer &uart0_cts>;
559         status = "okay";
560 };
561
562 &uart2 {
563         status = "okay";
564 };
565
566 &usb_host0_ehci {
567         status = "okay";
568 };
569
570 &usb_host0_ohci {
571         status = "okay";
572 };
573
574 &usb_host1_ehci {
575         status = "okay";
576 };
577
578 &usb_host1_ohci {
579         status = "okay";
580 };
581
582 &usbdrd3_0 {
583         status = "okay";
584 };
585
586 &usbdrd_dwc3_0 {
587         status = "okay";
588         dr_mode = "otg";
589 };
590
591 &usbdrd3_1 {
592         status = "okay";
593 };
594
595 &usbdrd_dwc3_1 {
596         status = "okay";
597         dr_mode = "host";
598 };
599
600 &vopb {
601         status = "okay";
602 };
603
604 &vopb_mmu {
605         status = "okay";
606 };
607
608 &vopl {
609         status = "okay";
610 };
611
612 &vopl_mmu {
613         status = "okay";
614 };