ARM64: dts: rockchip: move rk3399 pmu-io-domain nodes to the pmugrf
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3399-evb.dtsi
1 /*
2  * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License as
11  *     published by the Free Software Foundation; either version 2 of the
12  *     License, or (at your option) any later version.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  * Or, alternatively,
20  *
21  *  b) Permission is hereby granted, free of charge, to any person
22  *     obtaining a copy of this software and associated documentation
23  *     files (the "Software"), to deal in the Software without
24  *     restriction, including without limitation the rights to use,
25  *     copy, modify, merge, publish, distribute, sublicense, and/or
26  *     sell copies of the Software, and to permit persons to whom the
27  *     Software is furnished to do so, subject to the following
28  *     conditions:
29  *
30  *     The above copyright notice and this permission notice shall be
31  *     included in all copies or substantial portions of the Software.
32  *
33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40  *     OTHER DEALINGS IN THE SOFTWARE.
41  */
42
43 #include <dt-bindings/pwm/pwm.h>
44 #include "rk3399.dtsi"
45 #include "rk3399-opp.dtsi"
46
47 / {
48         compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
49
50         vcc3v3_sys: vcc3v3-sys {
51                 compatible = "regulator-fixed";
52                 regulator-name = "vcc3v3_sys";
53                 regulator-always-on;
54                 regulator-boot-on;
55                 regulator-min-microvolt = <3300000>;
56                 regulator-max-microvolt = <3300000>;
57         };
58
59         vcc5v0_host: vcc5v0-host-regulator {
60                 compatible = "regulator-fixed";
61                 enable-active-high;
62                 gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
63                 pinctrl-names = "default";
64                 pinctrl-0 = <&host_vbus_drv>;
65                 regulator-name = "vcc5v0_host";
66         };
67
68         backlight: backlight {
69                 compatible = "pwm-backlight";
70                 pwms = <&pwm0 0 25000 0>;
71                 brightness-levels = <
72                           0   1   2   3   4   5   6   7
73                           8   9  10  11  12  13  14  15
74                          16  17  18  19  20  21  22  23
75                          24  25  26  27  28  29  30  31
76                          32  33  34  35  36  37  38  39
77                          40  41  42  43  44  45  46  47
78                          48  49  50  51  52  53  54  55
79                          56  57  58  59  60  61  62  63
80                          64  65  66  67  68  69  70  71
81                          72  73  74  75  76  77  78  79
82                          80  81  82  83  84  85  86  87
83                          88  89  90  91  92  93  94  95
84                          96  97  98  99 100 101 102 103
85                         104 105 106 107 108 109 110 111
86                         112 113 114 115 116 117 118 119
87                         120 121 122 123 124 125 126 127
88                         128 129 130 131 132 133 134 135
89                         136 137 138 139 140 141 142 143
90                         144 145 146 147 148 149 150 151
91                         152 153 154 155 156 157 158 159
92                         160 161 162 163 164 165 166 167
93                         168 169 170 171 172 173 174 175
94                         176 177 178 179 180 181 182 183
95                         184 185 186 187 188 189 190 191
96                         192 193 194 195 196 197 198 199
97                         200 201 202 203 204 205 206 207
98                         208 209 210 211 212 213 214 215
99                         216 217 218 219 220 221 222 223
100                         224 225 226 227 228 229 230 231
101                         232 233 234 235 236 237 238 239
102                         240 241 242 243 244 245 246 247
103                         248 249 250 251 252 253 254 255>;
104                 default-brightness-level = <200>;
105         };
106
107         clkin_gmac: external-gmac-clock {
108                 compatible = "fixed-clock";
109                 clock-frequency = <125000000>;
110                 clock-output-names = "clkin_gmac";
111                 #clock-cells = <0>;
112         };
113
114         vcc_phy: vcc-phy-regulator {
115                 compatible = "regulator-fixed";
116                 regulator-name = "vcc_phy";
117                 regulator-always-on;
118                 regulator-boot-on;
119         };
120
121         es8316-sound {
122                 compatible = "simple-audio-card";
123                 simple-audio-card,format = "i2s";
124                 simple-audio-card,name = "rockchip,es8316-codec";
125                 simple-audio-card,mclk-fs = <256>;
126                 simple-audio-card,widgets =
127                         "Microphone", "Mic Jack",
128                         "Headphone", "Headphone Jack";
129                 simple-audio-card,routing =
130                         "Mic Jack", "MICBIAS1",
131                         "IN1P", "Mic Jack",
132                         "Headphone Jack", "HPOL",
133                         "Headphone Jack", "HPOR";
134                 simple-audio-card,cpu {
135                         sound-dai = <&i2s0>;
136                 };
137                 simple-audio-card,codec {
138                         sound-dai = <&es8316>;
139                 };
140         };
141
142         hdmi_sound: hdmi-sound {
143                 status = "disabled";
144                 compatible = "simple-audio-card";
145                 simple-audio-card,format = "i2s";
146                 simple-audio-card,mclk-fs = <256>;
147                 simple-audio-card,name = "rockchip,hdmi";
148                 simple-audio-card,cpu {
149                         sound-dai = <&i2s2>;
150                 };
151                 simple-audio-card,codec {
152                         sound-dai = <&dw_hdmi_audio>;
153                 };
154         };
155
156         dw_hdmi_audio: dw-hdmi-audio {
157                 status = "disabled";
158                 compatible = "rockchip,dw-hdmi-audio";
159                 #sound-dai-cells = <0>;
160         };
161
162         spdif_sound: spdif-sound {
163                 status = "disabled";
164                 compatible = "simple-audio-card";
165                 simple-audio-card,name = "ROCKCHIP,SPDIF";
166                 simple-audio-card,cpu {
167                         sound-dai = <&spdif>;
168                 };
169                 simple-audio-card,codec {
170                         sound-dai = <&spdif_out>;
171                 };
172         };
173
174         spdif_out: spdif-out {
175                 status = "disabled";
176                 compatible = "linux,spdif-dit";
177                 #sound-dai-cells = <0>;
178         };
179
180         sdio_pwrseq: sdio-pwrseq {
181                 compatible = "mmc-pwrseq-simple";
182                 clocks = <&rk808 1>;
183                 clock-names = "ext_clock";
184                 pinctrl-names = "default";
185                 pinctrl-0 = <&wifi_enable_h>;
186
187                 /*
188                  * On the module itself this is one of these (depending
189                  * on the actual card populated):
190                  * - SDIO_RESET_L_WL_REG_ON
191                  * - PDN (power down when low)
192                  */
193                 reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; /* GPIO0_B2 */
194         };
195
196         wireless-wlan {
197                 compatible = "wlan-platdata";
198                 rockchip,grf = <&grf>;
199                 wifi_chip_type = "ap6354";
200                 sdio_vref = <1800>;
201                 WIFI,host_wake_irq = <&gpio0 3 GPIO_ACTIVE_HIGH>; /* GPIO0_a3 */
202                 status = "okay";
203         };
204
205         wireless-bluetooth {
206                 compatible = "bluetooth-platdata";
207                 clocks = <&rk808 1>;
208                 clock-names = "ext_clock";
209                 //wifi-bt-power-toggle;
210                 uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>; /* GPIO2_C3 */
211                 pinctrl-names = "default", "rts_gpio";
212                 pinctrl-0 = <&uart0_rts>;
213                 pinctrl-1 = <&uart0_gpios>;
214                 //BT,power_gpio  = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIOx_xx */
215                 BT,reset_gpio    = <&gpio0 9 GPIO_ACTIVE_HIGH>; /* GPIO0_B1 */
216                 BT,wake_gpio     = <&gpio2 26 GPIO_ACTIVE_HIGH>; /* GPIO2_D2 */
217                 BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>; /* GPIO0_A4 */
218                 status = "okay";
219         };
220
221         test-power {
222                 status = "okay";
223         };
224 };
225
226 &cpu_l0 {
227         cpu-supply = <&vdd_cpu_l>;
228 };
229
230 &cpu_l1 {
231         cpu-supply = <&vdd_cpu_l>;
232 };
233
234 &cpu_l2 {
235         cpu-supply = <&vdd_cpu_l>;
236 };
237
238 &cpu_l3 {
239         cpu-supply = <&vdd_cpu_l>;
240 };
241
242 &cpu_b0 {
243         cpu-supply = <&vdd_cpu_b>;
244 };
245
246 &cpu_b1 {
247         cpu-supply = <&vdd_cpu_b>;
248 };
249
250 &gpu {
251         status = "okay";
252         mali-supply = <&vdd_gpu>;
253 };
254
255 &sdmmc {
256         clock-frequency = <150000000>;
257         clock-freq-min-max = <400000 150000000>;
258         supports-sd;
259         bus-width = <4>;
260         cap-mmc-highspeed;
261         cap-sd-highspeed;
262         disable-wp;
263         num-slots = <1>;
264         //sd-uhs-sdr104;
265         vqmmc-supply = <&vcc_sd>;
266         pinctrl-names = "default";
267         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
268         status = "okay";
269 };
270
271 &sdio0 {
272         clock-frequency = <150000000>;
273         clock-freq-min-max = <200000 150000000>;
274         supports-sdio;
275         bus-width = <4>;
276         disable-wp;
277         cap-sd-highspeed;
278         cap-sdio-irq;
279         keep-power-in-suspend;
280         mmc-pwrseq = <&sdio_pwrseq>;
281         non-removable;
282         num-slots = <1>;
283         pinctrl-names = "default";
284         pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
285         sd-uhs-sdr104;
286         status = "okay";
287 };
288
289 &emmc_phy {
290         freq-sel = <200000000>;
291         dr-sel = <50>;
292         opdelay = <4>;
293         status = "okay";
294 };
295
296 &dfi {
297 //      status = "okay";
298 };
299
300 &dmc {
301 //      status = "okay";
302         center-supply = <&vdd_center>;
303         upthreshold = <60>;
304         downdifferential = <40>;
305 };
306
307 &sdhci {
308         bus-width = <8>;
309         mmc-hs400-1_8v;
310         supports-emmc;
311         non-removable;
312         keep-power-in-suspend;
313         mmc-hs400-enhanced-strobe;
314         status = "okay";
315 };
316
317 &i2s0 {
318         status = "okay";
319         rockchip,i2s-broken-burst-len;
320         rockchip,playback-channels = <8>;
321         rockchip,capture-channels = <8>;
322         #sound-dai-cells = <0>;
323 };
324
325 &i2s2 {
326         #sound-dai-cells = <0>;
327 };
328
329 &spdif {
330         #sound-dai-cells = <0>;
331 };
332
333 &i2c0 {
334         status = "okay";
335         i2c-scl-rising-time-ns = <450>;
336         i2c-scl-falling-time-ns = <15>;
337 };
338
339 &i2c1 {
340         status = "okay";
341         i2c-scl-rising-time-ns = <300>;
342         i2c-scl-falling-time-ns = <15>;
343
344         es8316: es8316@10 {
345                 #sound-dai-cells = <0>;
346                 compatible = "everest,es8316";
347                 reg = <0x10>;
348                 clocks = <&cru SCLK_I2S_8CH_OUT>;
349                 clock-names = "mclk";
350                 spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
351                 hp-det-gpio = <&gpio4 28 GPIO_ACTIVE_LOW>;
352         };
353 };
354
355 &i2c4 {
356         status = "okay";
357         i2c-scl-rising-time-ns = <600>;
358         i2c-scl-falling-time-ns = <20>;
359
360         gt9xx: gt9xx@14 {
361                 compatible = "goodix,gt9xx";
362                 reg = <0x14>;
363                 touch-gpio = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>;
364                 reset-gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>;
365                 max-x = <1200>;
366                 max-y = <1900>;
367                 tp-size = <911>;
368                 tp-supply = <&vcc3v0_tp>;
369         };
370
371         gsl3673: gsl3673@40 {
372                 compatible = "GSL,GSL3673";
373                 reg = <0x40>;
374                 screen_max_x = <1536>;
375                 screen_max_y = <2048>;
376                 irq_gpio_number = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>;
377                 rst_gpio_number = <&gpio4 22 GPIO_ACTIVE_HIGH>;
378         };
379 };
380
381 &io_domains {
382         status = "okay";
383
384         bt656-supply = <&vcc1v8_dvp>;
385         audio-supply = <&vcca1v8_codec>;
386         sdmmc-supply = <&vcc_sd>;
387         gpio1830-supply = <&vcc_3v0>;
388 };
389
390 &pcie_phy {
391         status = "disabled";
392 };
393
394 &pcie0 {
395         ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
396         num-lanes = <4>;
397         pinctrl-names = "default";
398         pinctrl-0 = <&pcie_clkreqn>;
399         status = "disabled";
400 };
401
402 &tcphy0 {
403         extcon = <&fusb0>;
404         status = "okay";
405 };
406
407 &tcphy1 {
408         extcon = <&fusb1>;
409         status = "okay";
410 };
411
412 &tsadc {
413         rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
414         rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
415         status = "okay";
416 };
417
418 &u2phy0 {
419         status = "okay";
420         extcon = <&fusb0>;
421
422         u2phy0_otg: otg-port {
423                 status = "okay";
424         };
425
426         u2phy0_host: host-port {
427                 phy-supply = <&vcc5v0_host>;
428                 status = "okay";
429         };
430 };
431
432 &u2phy1 {
433         status = "okay";
434         extcon = <&fusb1>;
435
436         u2phy1_otg: otg-port {
437                 status = "okay";
438         };
439
440         u2phy1_host: host-port {
441                 phy-supply = <&vcc5v0_host>;
442                 status = "okay";
443         };
444 };
445
446 &uart0 {
447         pinctrl-names = "default";
448         pinctrl-0 = <&uart0_xfer &uart0_cts>;
449         status = "okay";
450 };
451
452 &uart2 {
453         status = "okay";
454 };
455
456 &usb_host0_ehci {
457         status = "okay";
458 };
459
460 &usb_host0_ohci {
461         status = "okay";
462 };
463
464 &usb_host1_ehci {
465         status = "okay";
466 };
467
468 &usb_host1_ohci {
469         status = "okay";
470 };
471
472 &usbdrd3_0 {
473         extcon = <&fusb0>;
474         status = "okay";
475 };
476
477 &usbdrd_dwc3_0 {
478         status = "okay";
479 };
480
481 &usbdrd3_1 {
482         extcon = <&fusb1>;
483         status = "okay";
484 };
485
486 &usbdrd_dwc3_1 {
487         status = "okay";
488 };
489
490 &pwm0 {
491         status = "okay";
492 };
493
494 &gmac {
495         phy-supply = <&vcc_phy>;
496         phy-mode = "rgmii";
497         clock_in_out = "input";
498         snps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>;
499         snps,reset-active-low;
500         snps,reset-delays-us = <0 10000 50000>;
501         assigned-clocks = <&cru SCLK_RMII_SRC>;
502         assigned-clock-parents = <&clkin_gmac>;
503         pinctrl-names = "default";
504         pinctrl-0 = <&rgmii_pins>;
505         tx_delay = <0x28>;
506         rx_delay = <0x11>;
507         status = "okay";
508 };
509
510 &saradc {
511         status = "okay";
512 };
513
514 &pinctrl {
515         sdio-pwrseq {
516                 wifi_enable_h: wifi-enable-h {
517                         rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
518                 };
519         };
520
521         wireless-bluetooth {
522                 uart0_gpios: uart0-gpios {
523                         rockchip,pins = <2 19 RK_FUNC_GPIO &pcfg_pull_none>;
524                 };
525         };
526
527         pmic {
528                 pmic_int_l: pmic-int-l {
529                         rockchip,pins =
530                                 <1 21 RK_FUNC_GPIO &pcfg_pull_up>;
531                 };
532
533                 pmic_dvs2: pmic-dvs2 {
534                         rockchip,pins =
535                                 <1 18 RK_FUNC_GPIO &pcfg_pull_down>;
536                 };
537                 vsel1_gpio: vsel1-gpio {
538                         rockchip,pins =
539                                 <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
540                 };
541                 vsel2_gpio: vsel2-gpio {
542                         rockchip,pins =
543                                 <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
544                 };
545         };
546
547         usb2 {
548                 host_vbus_drv: host-vbus-drv {
549                         rockchip,pins =
550                                 <4 25 RK_FUNC_GPIO &pcfg_pull_none>;
551                 };
552         };
553
554         fusb30x {
555                 fusb0_int: fusb0-int {
556                         rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_up>;
557                 };
558
559                 fusb1_int: fusb1-int {
560                         rockchip,pins = <1 24 RK_FUNC_GPIO &pcfg_pull_up>;
561                 };
562         };
563 };
564
565 &pvtm {
566         status = "okay";
567 };
568
569 &pmu_pvtm {
570         status = "okay";
571 };
572
573 &pmu_io_domains {
574         status = "okay";
575         pmu1830-supply = <&vcc1v8_pmu>;
576 };
577