43ce6a5d95a9ceb49a54520728a0f6194c2c3dd0
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3366-tb.dts
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 /dts-v1/;
44 #include <dt-bindings/pwm/pwm.h>
45 #include "rk3366.dtsi"
46
47 / {
48         model = "Rockchip SDK tb board";
49         compatible = "rockchip,tb", "rockchip,rk3366";
50
51         chosen {
52                 bootargs = "console=uart,mmio32,0xff690000";
53         };
54
55         ion {
56                 compatible = "rockchip,ion";
57                 #address-cells = <1>;
58                 #size-cells = <0>;
59
60                 cma-heap {
61                         reg = <0x00000000 0x02000000>;
62                 };
63
64                 system-heap {
65                 };
66         };
67
68         backlight: backlight {
69                 compatible = "pwm-backlight";
70                 pwms = <&pwm0 0 25000 PWM_POLARITY_INVERTED>;
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                 enable-gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
106         };
107
108         rk_key: rockchip-key {
109                 compatible = "rockchip,key";
110                 status = "okay";
111
112                 io-channels = <&saradc 1>;
113
114                 vol-up-key {
115                         linux,code = <115>;
116                         label = "volume up";
117                         rockchip,adc_value = <1>;
118                 };
119
120                 vol-down-key {
121                         linux,code = <114>;
122                         label = "volume down";
123                         rockchip,adc_value = <170>;
124                 };
125
126                 power-key {
127                         gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
128                         linux,code = <116>;
129                         label = "power";
130                         gpio-key,wakeup;
131                 };
132
133                 menu-key {
134                         linux,code = <59>;
135                         label = "menu";
136                         rockchip,adc_value = <355>;
137                 };
138
139                 home-key {
140                         linux,code = <102>;
141                         label = "home";
142                         rockchip,adc_value = <746>;
143                 };
144
145                 back-key {
146                         linux,code = <158>;
147                         label = "back";
148                         rockchip,adc_value = <560>;
149                 };
150
151                 camera-key {
152                         linux,code = <212>;
153                         label = "camera";
154                         rockchip,adc_value = <450>;
155                 };
156         };
157
158         sound {
159                 compatible = "simple-audio-card";
160                 simple-audio-card,format = "i2s";
161                 simple-audio-card,name = "rockchip,rt5640-codec";
162                 simple-audio-card,mclk-fs = <256>;
163                 simple-audio-card,widgets =
164                         "Microphone", "Mic Jack",
165                         "Headphone", "Headphone Jack";
166                 simple-audio-card,routing =
167                         "Mic Jack", "MICBIAS1",
168                         "IN1P", "Mic Jack",
169                         "Headphone Jack", "HPOL",
170                         "Headphone Jack", "HPOR";
171                 simple-audio-card,cpu {
172                         sound-dai = <&i2s_8ch>;
173                 };
174                 simple-audio-card,codec {
175                         sound-dai = <&rt5640>;
176                 };
177         };
178
179         vcc_sys: vcc-sys {
180                 compatible = "regulator-fixed";
181                 regulator-name = "vcc_sys";
182                 regulator-always-on;
183                 regulator-boot-on;
184                 regulator-min-microvolt = <3800000>;
185                 regulator-max-microvolt = <3800000>;
186         };
187
188         ext_gmac: external-gmac-clock {
189                 compatible = "fixed-clock";
190                 clock-frequency = <125000000>;
191                 clock-output-names = "ext_gmac";
192                 #clock-cells = <0>;
193         };
194
195         vcc_phy: vcc-phy-regulator {
196                 compatible = "regulator-fixed";
197                 enable-active-high;
198                 gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>;
199                 pinctrl-names = "default";
200                 pinctrl-0 = <&eth_phy_pwr>;
201                 regulator-name = "vcc_phy";
202                 regulator-always-on;
203                 regulator-boot-on;
204         };
205
206         io-domains {
207                 compatible = "rockchip,rk3366-io-voltage-domain";
208                 rockchip,grf = <&grf>;
209
210                 lcdc-supply = <&vcc_io>;
211                 dvpts-supply = <&vcc_18>;
212                 wifibt-supply = <&vccio_wl>;
213                 audio-supply = <&vcc_io>;
214                 sdcard-supply = <&vccio_sd>;
215                 tphdsor-supply = <&vcc_io>;
216         };
217 };
218
219 &emmc {
220         clock-frequency = <100000000>;
221         clock-freq-min-max = <400000 100000000>;
222         supports-emmc;
223         bus-width = <8>;
224         cap-mmc-highspeed;
225         disable-wp;
226         non-removable;
227         num-slots = <1>;
228         pinctrl-names = "default";
229         pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
230         status = "okay";
231 };
232
233 &sdmmc {
234         clock-frequency = <37500000>;
235         clock-freq-min-max = <400000 37500000>;
236         supports-sd;
237         bus-width = <4>;
238         cap-mmc-highspeed;
239         cap-sd-highspeed;
240         card-detect-delay = <200>;
241         disable-wp;
242         num-slots = <1>;
243         pinctrl-names = "default";
244         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
245         status = "disabled";
246 };
247
248 &sdio {
249         clock-frequency = <50000000>;
250         clock-freq-min-max = <200000 50000000>;
251         supports-sdio;
252         bus-width = <4>;
253         disable-wp;
254         non-removable;
255         num-slots = <1>;
256         pinctrl-names = "default";
257         pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
258         status = "disabled";
259 };
260
261 &saradc {
262         status = "okay";
263 };
264
265 &i2c0 {
266         status = "okay";
267
268         syr827: syr827@40 {
269                 regulator-name = "vdd_arm";
270                 compatible = "silergy,syr827";
271                 status = "okay";
272                 reg = <0x40>;
273                 regulator-compatible = "fan53555-reg";
274                 regulator-min-microvolt = <712500>;
275                 regulator-max-microvolt = <1500000>;
276                 fcs,suspend-voltage-selector = <1>;
277                 regulator-always-on;
278                 regulator-boot-on;
279                 regulator-initial-state = <3>;
280                 regulator-state-mem {
281                         regulator-on-in-suspend;
282                         regulator-suspend-microvolt = <900000>;
283                 };
284         };
285
286         rk818: pmic@1c {
287                 compatible = "rockchip,rk818";
288                 status = "okay";
289                 reg = <0x1c>;
290                 clock-output-names = "xin32k", "wifibt_32kin";
291                 interrupt-parent = <&gpio0>;
292                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
293                 pinctrl-names = "default";
294                 pinctrl-0 = <&pmic_int_l>;
295                 rockchip,system-power-controller;
296                 wakeup-source;
297                 #clock-cells = <1>;
298
299                 vcc1-supply = <&vcc_sys>;
300                 vcc2-supply = <&vcc_sys>;
301                 vcc3-supply = <&vcc_sys>;
302                 vcc4-supply = <&vcc_sys>;
303                 vcc6-supply = <&vcc_sys>;
304                 vcc7-supply = <&vcc_sys>;
305                 vcc8-supply = <&vcc_sys>;
306                 vcc9-supply = <&vcc_io>;
307
308                 regulators {
309                         vdd_logic: DCDC_REG1 {
310                                 regulator-name = "vdd_logic";
311                                 regulator-always-on;
312                                 regulator-boot-on;
313                                 regulator-min-microvolt = <750000>;
314                                 regulator-max-microvolt = <1450000>;
315                                 regulator-ramp-delay = <6001>;
316                                 regulator-state-mem {
317                                         regulator-on-in-suspend;
318                                         regulator-suspend-microvolt = <1000000>;
319                                 };
320                         };
321
322                         vdd_gpu: DCDC_REG2 {
323                                 regulator-name = "vdd_gpu";
324                                 regulator-always-on;
325                                 regulator-boot-on;
326                                 regulator-min-microvolt = <800000>;
327                                 regulator-max-microvolt = <1250000>;
328                                 regulator-ramp-delay = <6001>;
329                                 regulator-state-mem {
330                                         regulator-on-in-suspend;
331                                         regulator-suspend-microvolt = <1000000>;
332                                 };
333                         };
334
335                         vcc_ddr: DCDC_REG3 {
336                                 regulator-name = "vcc_ddr";
337                                 regulator-always-on;
338                                 regulator-boot-on;
339                                 regulator-state-mem {
340                                         regulator-on-in-suspend;
341                                 };
342                         };
343
344                         vcc_io: DCDC_REG4 {
345                                 regulator-name = "vcc_io";
346                                 regulator-always-on;
347                                 regulator-boot-on;
348                                 regulator-min-microvolt = <3300000>;
349                                 regulator-max-microvolt = <3300000>;
350                                 regulator-state-mem {
351                                         regulator-on-in-suspend;
352                                         regulator-suspend-microvolt = <3300000>;
353                                 };
354                         };
355
356                         vcca_codec: LDO_REG1 {
357                                 regulator-name = "vcca_codec";
358                                 regulator-always-on;
359                                 regulator-boot-on;
360                                 regulator-min-microvolt = <3300000>;
361                                 regulator-max-microvolt = <3300000>;
362                                 regulator-state-mem {
363                                         regulator-on-in-suspend;
364                                         regulator-suspend-microvolt = <3300000>;
365                                 };
366                         };
367
368                         vcc_tp: LDO_REG2 {
369                                 regulator-name = "vcc_tp";
370                                 regulator-always-on;
371                                 regulator-boot-on;
372                                 regulator-min-microvolt = <3000000>;
373                                 regulator-max-microvolt = <3000000>;
374                                 regulator-state-mem {
375                                         regulator-on-in-suspend;
376                                         regulator-suspend-microvolt = <3000000>;
377                                 };
378                         };
379
380                         vdd_10: LDO_REG3 {
381                                 regulator-name = "vdd_10";
382                                 regulator-always-on;
383                                 regulator-boot-on;
384                                 regulator-min-microvolt = <1000000>;
385                                 regulator-max-microvolt = <1000000>;
386                                 regulator-state-mem {
387                                         regulator-on-in-suspend;
388                                         regulator-suspend-microvolt = <1000000>;
389                                 };
390                         };
391
392                         vcc18_lcd: LDO_REG4 {
393                                 regulator-name = "vcc18_lcd";
394                                 regulator-always-on;
395                                 regulator-boot-on;
396                                 regulator-min-microvolt = <1800000>;
397                                 regulator-max-microvolt = <1800000>;
398                                 regulator-state-mem {
399                                         regulator-on-in-suspend;
400                                         regulator-suspend-microvolt = <1800000>;
401                                 };
402                         };
403
404                         vccio_pmu: LDO_REG5 {
405                                 regulator-name = "vccio_pmu";
406                                 regulator-always-on;
407                                 regulator-boot-on;
408                                 regulator-min-microvolt = <1800000>;
409                                 regulator-max-microvolt = <1800000>;
410                                 regulator-state-mem {
411                                         regulator-on-in-suspend;
412                                         regulator-suspend-microvolt = <1800000>;
413                                 };
414                         };
415
416                         vdd10_lcd: LDO_REG6 {
417                                 regulator-name = "vdd10_lcd";
418                                 regulator-always-on;
419                                 regulator-boot-on;
420                                 regulator-min-microvolt = <1000000>;
421                                 regulator-max-microvolt = <1000000>;
422                                 regulator-state-mem {
423                                         regulator-on-in-suspend;
424                                         regulator-suspend-microvolt = <1000000>;
425                                 };
426                         };
427
428                         vcc_18: LDO_REG7 {
429                                 regulator-name = "vcc_18";
430                                 regulator-always-on;
431                                 regulator-boot-on;
432                                 regulator-min-microvolt = <1800000>;
433                                 regulator-max-microvolt = <1800000>;
434                                 regulator-state-mem {
435                                         regulator-on-in-suspend;
436                                         regulator-suspend-microvolt = <1800000>;
437                                 };
438                         };
439
440                         vccio_wl: LDO_REG8 {
441                                 regulator-name = "vccio_wl";
442                                 regulator-always-on;
443                                 regulator-boot-on;
444                                 regulator-min-microvolt = <1800000>;
445                                 regulator-max-microvolt = <3300000>;
446                                 regulator-state-mem {
447                                         regulator-on-in-suspend;
448                                         regulator-suspend-microvolt = <3300000>;
449                                 };
450                         };
451
452                         vccio_sd: LDO_REG9 {
453                                 regulator-name = "vccio_sd";
454                                 regulator-always-on;
455                                 regulator-boot-on;
456                                 regulator-min-microvolt = <1800000>;
457                                 regulator-max-microvolt = <3300000>;
458                                 regulator-state-mem {
459                                         regulator-on-in-suspend;
460                                         regulator-suspend-microvolt = <3300000>;
461                                 };
462                         };
463
464                         vcc_sd: SWITCH_REG {
465                                 regulator-name = "vcc_sd";
466                                 regulator-always-on;
467                                 regulator-boot-on;
468                                 regulator-state-mem {
469                                         regulator-on-in-suspend;
470                                 };
471                         };
472                 };
473         };
474 };
475
476 &i2c1 {
477         status = "okay";
478
479         rt5640: rt5640@1c {
480                 #sound-dai-cells = <0>;
481                 compatible = "realtek,rt5640";
482                 reg = <0x1c>;
483                 clocks = <&cru SCLK_I2S_8CH_OUT>;
484                 clock-names = "mclk";
485                 realtek,in1-differential;
486         };
487 };
488
489 &i2s_8ch {
490         status = "okay";
491         rockchip,i2s-broken-burst-len;
492         rockchip,playback-channels = <8>;
493         rockchip,capture-channels = <2>;
494         #sound-dai-cells = <0>;
495 };
496
497 &pwm0 {
498         status = "okay";
499 };
500
501 &uart2 {
502         status = "okay";
503 };
504
505 &fb {
506         status = "okay";
507         rockchip,disp-mode = <DUAL>;
508         rockchip,uboot-logo-on = <0>;
509 };
510
511 &rk_screen {
512         status = "okay";
513         #include <dt-bindings/display/screen-timing/lcd-tv080wum-mipi.dtsi>
514         /* #include <dt-bindings/display/screen-timing/lcd-b101ew05.dtsi> */
515 };
516
517 &lvds {
518         pinctrl-names = "lcdc", "sleep";
519         pinctrl-0 = <&lcdc_lcdc>;
520         pinctrl-1 = <&lcdc_gpio>;
521         status = "disabled";
522 };
523
524 &dsihost0 {
525         status = "okay";
526 };
527
528 &vop_lite {
529         status = "okay";
530         rockchip,prop = <EXTEND>;
531         rockchip,mirror = <NO_MIRROR>;
532         rockchip,cabc_mode = <0>;
533         rockchip,fb-win-map = <FB_DEFAULT_ORDER>;
534 };
535
536 &vopl_mmu {
537         status = "okay";
538 };
539
540 &vop_big {
541         status = "okay";
542         rockchip,prop = <PRMRY>;
543         backlight = <&backlight>;
544         rockchip,mirror = <NO_MIRROR>;
545         rockchip,cabc_mode = <0>;
546         rockchip,fb-win-map = <FB_DEFAULT_ORDER>;
547         power_ctr: power_ctr {
548                 rockchip,debug = <0>;
549                 lcd_en: lcd-en {
550                         rockchip,power_type = <GPIO>;
551                         gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; /* GPIO_B4 = 12 */
552                         rockchip,delay = <10>;
553                 };
554
555                 lcd_cs: lcd-cs {
556                         rockchip,power_type = <GPIO>;
557                         gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; /* GPIO_D0 = 24 */
558                         rockchip,delay = <10>;
559                 };
560
561                 /* lcd_rst: lcd-rst {
562                  *      rockchip,power_type = <GPIO>;
563                  *      gpios = <&gpio3 GPIO_D6 GPIO_ACTIVE_HIGH>;
564                  *      rockchip,delay = <5>;
565                  * };
566                  */
567         };
568 };
569
570 &vopb_mmu {
571         status = "okay";
572 };
573
574 &pinctrl {
575         pmic {
576                 pmic_int_l: pmic-int-l {
577                         rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
578                 };
579         };
580 };
581
582 &gmac {
583         phy_regulator = "vcc_phy";
584         phy-mode = "rgmii";
585         clock_in_out = "input";
586         snps,reset-gpio = <&gpio2 15 0>;
587         snps,reset-active-low;
588         snps,reset-delays-us = <0 10000 1000000>;
589         assigned-clocks = <&cru SCLK_MAC>;
590         assigned-clock-parents = <&ext_gmac>;
591         pinctrl-names = "default";
592         pinctrl-0 = <&rgmii_pins>;
593         tx_delay = <0x30>;
594         rx_delay = <0x10>;
595         status = "okay";
596 };