rk3368 dts: add backlight node into lcdc
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rk3368-p9_818.dts
1 /dts-v1/;
2
3 #include <dt-bindings/interrupt-controller/arm-gic.h>
4 #include <dt-bindings/rkfb/rk_fb.h>
5 #include "rk3368.dtsi"
6 #include "../../../arm/boot/dts/lcd-ld089wu1-mipi.dtsi"
7 / {
8         chosen {
9                 bootargs = "earlyprintk=uart8250-32bit,0xff690000";
10         };
11
12         wireless-wlan {
13                 compatible = "wlan-platdata";
14
15                 rockchip,grf = <&grf>;
16
17                 /* wifi_chip_type - wifi chip define
18                  * ap6210, ap6330, ap6335
19                  * rtl8188eu, rtl8723bs, rtl8723bu
20                  * esp8089
21                 */
22                 wifi_chip_type = "ap6210";              
23
24                 sdio_vref = <1800>; //1800mv or 3300mv
25                 power_pmu_regulator = "rk818_ldo8_reg";
26                 power_pmu_enable_level = <1>; //1->HIGH, 0->LOW
27                 vref_pmu_regulator = "rk818_ldo8_reg";
28                 vref_pmu_enable_level = <1>; //1->HIGH, 0->LOW
29
30                 WIFI,poweren_gpio = <&gpio3 GPIO_A4 GPIO_ACTIVE_HIGH>;
31                 WIFI,host_wake_irq = <&gpio3 GPIO_A6 GPIO_ACTIVE_HIGH>;
32
33                 status = "okay";
34         };
35
36         wireless-bluetooth {
37                 compatible = "bluetooth-platdata";
38                 uart_rts_gpios = <&gpio2 GPIO_D3 GPIO_ACTIVE_LOW>;
39                 pinctrl-names = "default","rts_gpio";
40                 pinctrl-0 = <&uart0_rts>;
41                 pinctrl-1 = <&uart0_rts_gpio>;
42
43                 BT,power_gpio = <&gpio3 GPIO_A3 GPIO_ACTIVE_HIGH>;
44                 BT,reset_gpio = <&gpio3 GPIO_A5 GPIO_ACTIVE_HIGH>;
45                 BT,wake_gpio = <&gpio3 GPIO_A2 GPIO_ACTIVE_HIGH>;
46                 BT,wake_host_irq = <&gpio3 GPIO_A7 GPIO_ACTIVE_HIGH>;
47
48                 status = "okay";
49         };
50
51         hallsensor {
52                compatible = "hall_och165t";
53                type = <SENSOR_TYPE_HALL>;
54                irq-gpio = <&gpio0 GPIO_C0 IRQ_TYPE_EDGE_BOTH>;
55         };
56
57         backlight: backlight {
58                 compatible = "pwm-backlight";
59                 pwms = <&pwm0 0 25000>;
60                 brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
61                 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
62                 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
63                 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
64                 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
65                 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
66                 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
67                 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
68                 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
69                 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
70                 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
71                 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
72                 243 244 245 246 247 248 249 250 251 252 253 254 255>;
73                 default-brightness-level = <128>;
74                 enable-gpios = <&gpio0 GPIO_C4 GPIO_ACTIVE_HIGH>;
75         };
76
77         pwm_regulator {
78                 compatible = "rockchip_pwm_regulator";
79                 pwms = <&pwm1 0 2000>;
80                 rockchip,pwm_id= <1>;
81                 rockchip,pwm_voltage_map= <925000 950000 975000 1000000 1025000 1050000 1075000 1100000 1125000 1150000 1175000 1200000 1225000 1250000 1275000 1300000 1325000 1350000 1375000 1400000>;
82                 rockchip,pwm_voltage= <1000000>;
83                 rockchip,pwm_min_voltage= <925000>;
84                 rockchip,pwm_max_voltage= <1400000>;
85                 rockchip,pwm_suspend_voltage= <950000>;
86                 rockchip,pwm_coefficient= <475>;
87                 regulators {
88                         #address-cells = <1>;
89                         #size-cells = <0>;
90                         pwm_reg0: regulator@0 {
91                                 regulator-compatible = "pwm_dcdc1";
92                                 regulator-name= "vdd_logic";
93                                 regulator-min-microvolt = <925000>;
94                                 regulator-max-microvolt = <1400000>;
95                                 regulator-always-on;
96                                 regulator-boot-on;
97                         };
98                 };
99         };
100
101         codec_hdmi_i2s: codec-hdmi-i2s {
102                 compatible = "hdmi-i2s";
103         };
104
105         codec_hdmi_spdif: codec-hdmi-spdif {
106                 compatible = "hdmi-spdif";
107         };
108
109         rockchip-hdmi-i2s {
110                 compatible = "rockchip-hdmi-i2s";
111                 dais {
112                         dai0 {
113                                 audio-codec = <&codec_hdmi_i2s>;
114                                 i2s-controller = <&i2s0>;
115                                 format = "i2s";
116                         };
117                 };
118         };
119
120         rockchip-hdmi-spdif {
121                 compatible = "rockchip-hdmi-spdif";
122                 dais {
123                         dai0 {
124                                 audio-codec = <&codec_hdmi_spdif>;
125                                 i2s-controller = <&spdif>;
126                         };
127                 };
128         };
129
130         rockchip-es8316 {
131                 compatible = "rockchip-es8316";
132                 dais {
133                         dai0 {
134                                 audio-codec = <&es8316>;
135                                 i2s-controller = <&i2s0>;
136                                 format = "i2s";
137                         };
138                 };
139         };
140
141         io-domains {
142                 compatible = "rockchip,rk3368-io-voltage-domain";
143                 rockchip,grf = <&grf>;
144                 rockchip,pmugrf = <&pmugrf>;
145
146                 /*GRF_IO_VSEL*/
147                 gpio30-supply = <&rk818_dcdc4_reg>;     /*APIO1_VDD*/
148                 wifi-supply = <&rk818_ldo8_reg>;     /*APIO2_VDD*/
149                 audio-supply = <&rk818_dcdc4_reg>;   /*APIO3_VDD*/
150                 gpio1830-supply = <&rk818_dcdc4_reg>;   /*ADIO4_VDD*/
151                 sdcard-supply = <&rk818_ldo9_reg>;   /*SDMMC_VDD*/
152
153                 /*PMU_GRF_IO_VSEL*/
154                 pmu-supply = <&rk818_ldo5_reg>;      /*PMUIO_VDD*/
155                 vop-supply = <&rk818_ldo5_reg>;      /*LCDC_VDD*/
156         };
157 };
158
159 &tsadc {
160        tsadc-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
161        //tsadc-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
162        status = "okay";
163 };
164
165 &pinctrl {
166         //used for init some gpio
167         init-gpios = <&gpio0 GPIO_A6 GPIO_ACTIVE_HIGH>;
168
169         gpio0_gpio {
170                         gpio0_c7: gpio0-c7 {
171                                 rockchip,pins = <0 GPIO_C7 RK_FUNC_GPIO &pcfg_pull_down>;
172                         };
173                         gpio0_a3: gpio0-a3 {
174                                 rockchip,pins = <0 GPIO_A3 RK_FUNC_3 &pcfg_pull_none>;
175                         };
176                         gpio0_c2: gpio0-c2 {
177                                 rockchip,pins = <0 GPIO_C2 RK_FUNC_GPIO &pcfg_pull_down>;
178                         };
179                         gpio0_c3: gpio0-c3{
180                                 rockchip,pins = <0 GPIO_C3 RK_FUNC_GPIO &pcfg_pull_down>;
181                         };
182                         //to add
183                 };
184
185 };
186
187 &nandc0 {
188         status = "disabled"; // used nand set "disabled" ,used emmc set "okay"
189 };
190
191 &nandc0reg {
192         status = "okay"; // used nand set "disabled" ,used emmc set "okay"
193 };
194
195 &emmc {
196         clock-frequency = <150000000>;
197         clock-freq-min-max = <400000 150000000>;
198
199         supports-highspeed;
200         supports-emmc;
201         bootpart-no-access;
202
203         //supports-tSD;
204         supports-DDR_MODE; //you should set the two value in your project. only close in RK3288-SDK board.
205         caps2-mmc-hs200;
206
207         ignore-pm-notify;
208         keep-power-in-suspend;
209
210         //poll-hw-reset
211         status = "okay";
212 };
213
214 &sdmmc {
215         clock-frequency = <50000000>;
216         clock-freq-min-max = <400000 50000000>;
217         supports-highspeed;
218         supports-sd;
219         broken-cd;
220         card-detect-delay = <200>;
221
222         ignore-pm-notify;
223         keep-power-in-suspend;
224
225         vmmc-supply = <&rk818_ldo1_reg>;
226                 status = "okay";
227 };
228
229 &sdio {
230         clock-frequency = <50000000>;
231         clock-freq-min-max = <200000 50000000>;
232         supports-highspeed;
233         supports-sdio;
234         ignore-pm-notify;
235         keep-power-in-suspend;
236         //cap-sdio-irq;
237         status = "okay";
238 };
239
240 &spi0 {
241         status = "disabled";
242 };
243
244 &spi1 {
245         status = "disabled";
246 };
247
248 &spi2 {
249         status = "disabled";
250 };
251
252 &gmac {
253         status = "disabled";
254 };
255
256 &uart_dbg {
257         status = "okay";
258 };
259
260 &uart_bt {
261         status = "okay";
262         dma-names = "!tx", "!rx";
263         pinctrl-0 = <&uart0_xfer &uart0_cts>;
264 };
265
266 &i2c0 {
267         status = "okay";
268         syr827: syr827@40 {
269                 compatible = "silergy,syr82x";
270                 reg = <0x40>;
271                 status = "okay";
272                 regulators {
273                         #address-cells = <1>;
274                         #size-cells = <0>;
275                         syr827_dc1: regulator@0 {
276                         reg = <0>;
277                         regulator-compatible = "syr82x_dcdc1";
278                         regulator-name = "vdd_arm";
279                         regulator-min-microvolt = <712500>;
280                         regulator-max-microvolt = <1500000>;
281                         regulator-always-on;
282                         regulator-boot-on;
283                         regulator-initial-mode = <0x2>;
284                         regulator-initial-state = <3>;
285                         regulator-state-mem {
286                                 regulator-state-mode = <0x2>;
287                                 regulator-state-disabled;
288                                 regulator-state-uv = <900000>;
289                         };
290                 };
291            };
292         };
293         syr828: syr828@41 {
294                 compatible = "silergy,syr82x";
295                 reg = <0x41>;
296                 status = "okay";
297                 regulators {
298                         #address-cells = <1>;
299                         #size-cells = <0>;
300                         syr828_dc1: regulator@0 {
301                         reg = <0>;
302                         regulator-compatible = "syr82x_dcdc1";
303                         regulator-name = "vdd_gpu";
304                         regulator-min-microvolt = <712500>;
305                         regulator-max-microvolt = <1500000>;
306                         regulator-always-on;
307                         regulator-boot-on;
308                         regulator-initial-mode = <0x2>;
309                         regulator-initial-state = <3>;
310                         regulator-state-mem {
311                                 regulator-state-mode = <0x2>;
312                                 regulator-state-enabled;
313                                 regulator-state-uv = <900000>;
314                         };
315                 };
316            };
317         };
318
319         rk818: rk818@1c {
320                 reg = <0x1c>;
321                 status = "okay";
322                 compatible = "rockchip,rk818";
323                 battery {
324                         ocv_table = <3400 3650 3693 3707 3731 3749 3760
325                                      3770 3782 3796 3812 3829 3852 3882
326                                      3915 3951 3981 4047 4086 4132 4182>;
327                         design_capacity = <8650>;
328                         design_qmax = <8800>;
329                         max_overcharge = <100>;
330                         bat_res = <85>;
331                         max_charge_ilimitmA  = <2000>;
332                         max_charge_currentmA = <1800>;
333                         max_charge_voltagemV = <4200>;
334                         max_bat_voltagemV = <4200>;
335                         sleep_enter_current = <150>;
336                         sleep_exit_current = <180>;
337                 };
338         };
339 };
340
341 &i2c1 {
342         status = "okay";
343         es8316: es8316@10 {
344                 compatible = "es8316";
345                 reg = <0x10>;
346                 spk-con-gpio = <&gpio0 GPIO_C3 GPIO_ACTIVE_HIGH>;
347                 hp-det-gpio = <&gpio0 GPIO_C7 GPIO_ACTIVE_HIGH>;
348                 status = "okay";
349         };
350 };
351
352 &i2c2 {
353         status = "okay";
354         touchscreen@14 {
355                 compatible = "goodix,gt9xx";
356                 reg = <0x14>;
357                 touch-gpio = <&gpio0 GPIO_B4 IRQ_TYPE_LEVEL_LOW>;
358                 reset-gpio = <&gpio0 GPIO_B3 GPIO_ACTIVE_HIGH>;  
359                 max-x = <1920>;                  
360                 max-y = <1200>;
361                 tp-size = <89>;
362         };
363 };
364
365 &i2c3 {
366         status = "okay";
367 };
368
369 &i2c4 {
370         status = "okay";
371         mpu6500_acc:mpu_acc@68{
372                 compatible = "mpu6500_acc";
373                 reg = <0x68>;
374                 irq_enable = <0>;
375                 poll_delay_ms = <30>;
376                 type = <SENSOR_TYPE_ACCEL>;
377                 layout = <7>;
378         };
379 };
380
381 &i2c5 {
382         status = "disabled";
383 };
384
385 &fb {
386         status = "okay";
387         rockchip,disp-mode = <NO_DUAL>;
388         rockchip,uboot-logo-on = <0>;
389 };
390
391 &rk_screen {
392         status = "okay";
393         display-timings = <&disp_timings>;
394 };
395
396 &lcdc {
397         status = "okay";
398         backlight = <&backlight>;
399         rockchip,mirror = <NO_MIRROR>;
400         rockchip,cabc_mode = <0>;
401         rockchip,fb-win-map = <FB_DEFAULT_ORDER>;
402         power_ctr: power_ctr {
403                 rockchip,debug = <0>;
404                 lcd_en:lcd_en {
405                         rockchip,power_type = <GPIO>;
406                         gpios = <&gpio0 GPIO_C6 GPIO_ACTIVE_HIGH>;
407                         rockchip,delay = <120>;
408                 };
409
410                 lcd_cs:lcd_cs {
411                         rockchip,power_type = <GPIO>;
412                         gpios = <&gpio0 GPIO_C5 GPIO_ACTIVE_HIGH>;
413                         rockchip,delay = <10>;
414                 };
415
416                 /*lcd_rst:lcd_rst {
417                         rockchip,power_type = <GPIO>;
418                         gpios = <&gpio3 GPIO_D6 GPIO_ACTIVE_HIGH>;
419                         rockchip,delay = <5>;
420                 };*/
421         };
422 };
423
424
425 &hdmi {
426         status = "okay";
427         rockchips,hdmi_audio_source = <0>;
428 };
429
430 &adc {
431         status = "okay";
432
433         rockchip_headset {
434                 compatible = "rockchip_headset";
435                 headset_gpio = <&gpio0 GPIO_C7 GPIO_ACTIVE_LOW>;
436                 pinctrl-names = "default";
437                 pinctrl-0 = <&gpio0_c7>;//gpio0_c7
438                 io-channels = <&adc 2>;
439        /*
440                hook_gpio = ;
441                hook_down_type = ; //interrupt hook key down status
442                 */
443        };
444
445         key {
446                 compatible = "rockchip,key";
447                 io-channels = <&adc 1>;
448
449                 vol-up-key {
450                         linux,code = <115>;
451                         label = "volume up";
452                         rockchip,adc_value = <1>;
453                 };
454
455                 vol-down-key {
456                         linux,code = <114>;
457                         label = "volume down";
458                         rockchip,adc_value = <170>;
459                 };
460
461                 power-key {
462                         gpios = <&gpio0 GPIO_A2 GPIO_ACTIVE_LOW>;
463                         linux,code = <116>;
464                         label = "power";
465                         gpio-key,wakeup;
466                 };
467         };
468 };
469
470 &pwm0 {
471         status = "okay";
472 };
473
474 &pwm1 {
475         status = "disabled";
476 };
477
478 &clk_ddr_dvfs_table {
479         operating-points = <
480                 /* KHz    uV */
481                 200000 1100000
482                 300000 1100000
483                 400000 1100000
484                 533000 1150000
485                 >;
486
487         freq-table = <
488                 /*status                freq(KHz)*/
489                 SYS_STATUS_NORMAL       400000
490                 SYS_STATUS_SUSPEND      200000
491                 SYS_STATUS_VIDEO_1080P  240000
492                 SYS_STATUS_VIDEO_4K     400000
493                 SYS_STATUS_PERFORMANCE  528000
494                 SYS_STATUS_DUALVIEW     400000
495                 SYS_STATUS_BOOST        324000
496                 SYS_STATUS_ISP          400000
497                 >;
498         auto-freq-table = <
499                 240000
500                 324000
501                 396000
502                 528000
503                 >;
504         auto-freq=<0>;
505         status="disabled";
506 };
507
508 &dwc_control_usb {
509         host_drv_gpio = <&gpio0 GPIO_A4 GPIO_ACTIVE_LOW>;
510         otg_drv_gpio = <&gpio0 GPIO_D1 GPIO_ACTIVE_LOW>;
511         rockchip,remote_wakeup;
512         rockchip,usb_irq_wakeup;
513 };
514
515 /include/ "../../../arm/boot/dts/rk818.dtsi"
516 &rk818 {
517         gpios =<&gpio0 GPIO_A1 GPIO_ACTIVE_HIGH>,<&gpio0 GPIO_A0 GPIO_ACTIVE_LOW>;
518         rk818,system-power-controller;
519         
520         regulators {
521
522                 rk818_dcdc1_reg: regulator@0{
523                         regulator-name= "vdd_arm";/*vcc arm*/
524                         regulator-min-microvolt = <700000>;/*<725000>;*/
525                         regulator-max-microvolt = <1500000>;
526                         regulator-initial-mode = <0x2>;
527                         regulator-initial-state = <3>;
528                         regulator-state-mem {
529                                 regulator-state-mode = <0x2>;
530                                 regulator-state-enabled;
531                                 regulator-state-uv =<900000>;
532                         };
533                 };
534
535                 rk818_dcdc2_reg: regulator@1 {
536                         regulator-name= "vdd_logic";/*vcc gpu*/
537                         regulator-min-microvolt = <700000>;
538                         regulator-max-microvolt = <1200000>;
539                         regulator-initial-mode = <0x2>;
540                         regulator-initial-state = <3>;
541                         regulator-state-mem {
542                                 regulator-state-mode = <0x2>;
543                                 regulator-state-enabled;
544                                 regulator-state-uv = <1200000>;
545                         };
546                 };
547
548                 rk818_dcdc3_reg: regulator@2 {
549                         regulator-name= "vcc_ddr";
550                         regulator-min-microvolt = <1200000>;
551                         regulator-max-microvolt = <1200000>;
552                         regulator-initial-mode = <0x2>;
553                         regulator-initial-state = <3>;
554                         regulator-state-mem {
555                                 regulator-state-mode = <0x2>;
556                                 regulator-state-enabled;
557                                 regulator-state-uv = <1200000>;
558                         };
559                 };
560
561                 rk818_dcdc4_reg: regulator@3 {
562                         regulator-name= "vccio";
563                         regulator-min-microvolt = <3000000>;
564                         regulator-max-microvolt = <3000000>;
565                         regulator-initial-mode = <0x2>;
566                         regulator-initial-state = <3>;
567                         regulator-state-mem {
568                                 regulator-state-mode = <0x2>;
569                                 regulator-state-enabled;
570                                 regulator-state-uv = <3000000>;
571                         };
572                 };
573
574                 rk818_ldo1_reg: regulator@4 {
575                         regulator-name= "vcc_codec";
576                         regulator-min-microvolt = <3300000>;
577                         regulator-max-microvolt = <3300000>;
578                         regulator-initial-state = <3>;
579                         regulator-state-mem {
580                                 regulator-state-enabled;
581                                 regulator-state-uv = <3300000>;
582                         };
583                 };
584
585                 rk818_ldo2_reg: regulator@5 {
586                         regulator-name= "vcc_tp";
587                         regulator-min-microvolt = <3300000>;
588                         regulator-max-microvolt = <3300000>;
589                         regulator-initial-state = <3>;
590                         regulator-state-mem {
591                                 regulator-state-enabled;
592                                 regulator-state-uv = <3300000>;
593                         };
594                 };
595
596                 rk818_ldo3_reg: regulator@6 {
597                         regulator-name= "vdd_10";
598                         regulator-min-microvolt = <1000000>;
599                         regulator-max-microvolt = <1000000>;
600                         regulator-initial-state = <3>;
601                         regulator-state-mem {
602                                 regulator-state-enabled;
603                                 regulator-state-uv = <1000000>;
604                         };
605                 };
606
607                 rk818_ldo4_reg:regulator@7 {
608                         regulator-name= "vcc18_lcd";
609                         regulator-min-microvolt = <1800000>;
610                         regulator-max-microvolt = <1800000>;
611                         regulator-initial-state = <3>;
612                         regulator-state-mem {
613                                 regulator-state-disabled;
614                                 regulator-state-uv = <1800000>;
615                         };
616                 };
617
618                 rk818_ldo5_reg: regulator@8 {
619                         regulator-name= "vccio_pmu";
620                         regulator-min-microvolt = <1800000>;
621                         regulator-max-microvolt = <1800000>;
622                         regulator-initial-state = <3>;
623                         regulator-state-mem {
624                                 regulator-state-enabled;
625                                 regulator-state-uv = <1800000>;
626                         };
627                 };
628
629                 rk818_ldo6_reg: regulator@9 {
630                         regulator-name= "vdd10_lcd";
631                         regulator-min-microvolt = <1000000>;
632                         regulator-max-microvolt = <1000000>;
633                         regulator-initial-state = <3>;
634                         regulator-state-mem {
635                                 regulator-state-disabled;
636                                 regulator-state-uv = <1000000>;
637                         };
638                 };
639
640                 rk818_ldo7_reg: regulator@10 {
641                         regulator-name= "vcc_18";
642                         regulator-min-microvolt = <1800000>;
643                         regulator-max-microvolt = <1800000>;
644                         regulator-initial-state = <3>;
645                         regulator-state-mem {
646                                 regulator-state-enabled;
647                                 regulator-state-uv = <1800000>;
648                         };
649                 };
650
651                 rk818_ldo8_reg: regulator@11 {
652                         regulator-name= "vccio_wl";
653                         regulator-min-microvolt = <1800000>;
654                         regulator-max-microvolt = <1800000>;
655                         regulator-initial-state = <3>;
656                         regulator-state-mem {
657                                 regulator-state-enabled;
658                                 regulator-state-uv = <1800000>;
659                         };
660                 };
661
662                 rk818_ldo9_reg: regulator@12 {
663                         regulator-name= "vcc_sd";
664                         regulator-min-microvolt = <1800000>;
665                         regulator-max-microvolt = <3300000>;
666                         regulator-initial-state = <3>;
667                         regulator-state-mem {
668                                 regulator-state-enabled;
669                                 regulator-state-uv = <3300000>;
670                         };
671                 };
672
673                 rk818_ldo10_reg: regulator@13 {
674                         regulator-name= "rk818_ldo10";
675                         regulator-state-mem {
676                                 regulator-state-disabled;
677                         };
678                 };
679         };
680 };
681
682 &ion_cma {
683        reg = <0x00000000 0x28000000>; /* 640MB */
684 };
685