Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / exynos5250-spring.dts
1 /*
2  * Google Spring board device tree source
3  *
4  * Copyright (c) 2013 Google, Inc
5  * Copyright (c) 2014 SUSE LINUX Products GmbH
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
11
12 /dts-v1/;
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/input/input.h>
16 #include "exynos5250.dtsi"
17
18 / {
19         model = "Google Spring";
20         compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
21
22         memory {
23                 reg = <0x40000000 0x80000000>;
24         };
25
26         chosen {
27                 bootargs = "console=tty1";
28         };
29
30         gpio-keys {
31                 compatible = "gpio-keys";
32                 pinctrl-names = "default";
33                 pinctrl-0 = <&power_key_irq>, <&lid_irq>;
34
35                 power {
36                         label = "Power";
37                         gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
38                         linux,code = <KEY_POWER>;
39                         gpio-key,wakeup;
40                 };
41
42                 lid-switch {
43                         label = "Lid";
44                         gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
45                         linux,input-type = <5>; /* EV_SW */
46                         linux,code = <0>; /* SW_LID */
47                         debounce-interval = <1>;
48                         gpio-key,wakeup;
49                 };
50         };
51
52         usb-hub {
53                 compatible = "smsc,usb3503a";
54                 reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>;
55                 pinctrl-names = "default";
56                 pinctrl-0 = <&hsic_reset>;
57         };
58
59         fixed-rate-clocks {
60                 xxti {
61                         compatible = "samsung,clock-xxti";
62                         clock-frequency = <24000000>;
63                 };
64         };
65 };
66
67 &dp {
68         status = "okay";
69         pinctrl-names = "default";
70         pinctrl-0 = <&dp_hpd_gpio>;
71         samsung,color-space = <0>;
72         samsung,dynamic-range = <0>;
73         samsung,ycbcr-coeff = <0>;
74         samsung,color-depth = <1>;
75         samsung,link-rate = <0x0a>;
76         samsung,lane-count = <1>;
77         samsung,hpd-gpio = <&gpc3 0 GPIO_ACTIVE_HIGH>;
78 };
79
80 &ehci {
81         samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
82 };
83
84 &fimd {
85         status = "okay";
86         samsung,invert-vclk;
87 };
88
89 &hdmi {
90         hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
91         pinctrl-names = "default";
92         pinctrl-0 = <&hdmi_hpd_irq>;
93         phy = <&hdmiphy>;
94         ddc = <&i2c_2>;
95         hdmi-en-supply = <&ldo8_reg>;
96         vdd-supply = <&ldo8_reg>;
97         vdd_osc-supply = <&ldo10_reg>;
98         vdd_pll-supply = <&ldo8_reg>;
99 };
100
101 &i2c_0 {
102         status = "okay";
103         samsung,i2c-sda-delay = <100>;
104         samsung,i2c-max-bus-freq = <378000>;
105
106         s5m8767-pmic@66 {
107                 compatible = "samsung,s5m8767-pmic";
108                 reg = <0x66>;
109                 interrupt-parent = <&gpx3>;
110                 interrupts = <2 IRQ_TYPE_NONE>;
111                 pinctrl-names = "default";
112                 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
113                 wakeup-source;
114
115                 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, /* DVS1 */
116                                               <&gpd1 1 GPIO_ACTIVE_LOW>, /* DVS2 */
117                                               <&gpd1 2 GPIO_ACTIVE_LOW>; /* DVS3 */
118
119                 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, /* SET1 */
120                                              <&gpx2 4 GPIO_ACTIVE_LOW>, /* SET2 */
121                                              <&gpx2 5 GPIO_ACTIVE_LOW>; /* SET3 */
122
123                 /*
124                  * The following arrays of DVS voltages are not used, since we are
125                  * not using GPIOs to control PMIC bucks, but they must be defined
126                  * to please the driver.
127                  */
128                 s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
129                                                  <1250000>, <1200000>,
130                                                  <1150000>, <1100000>,
131                                                  <1000000>, <950000>;
132
133                 s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
134                                                  <1100000>, <1100000>,
135                                                  <1000000>, <1000000>,
136                                                  <1000000>, <1000000>;
137
138                 s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
139                                                  <1200000>, <1200000>,
140                                                  <1200000>, <1200000>,
141                                                  <1200000>, <1200000>;
142
143                 clocks {
144                         compatible = "samsung,s5m8767-clk";
145                         #clock-cells = <1>;
146                         clock-output-names = "en32khz_ap",
147                                              "en32khz_cp",
148                                              "en32khz_bt";
149                 };
150
151                 regulators {
152                         ldo4_reg: LDO4 {
153                                 regulator-name = "P1.0V_LDO_OUT4";
154                                 regulator-min-microvolt = <1000000>;
155                                 regulator-max-microvolt = <1000000>;
156                                 regulator-always-on;
157                                 op_mode = <0>;
158                         };
159
160                         ldo5_reg: LDO5 {
161                                 regulator-name = "P1.0V_LDO_OUT5";
162                                 regulator-min-microvolt = <1000000>;
163                                 regulator-max-microvolt = <1000000>;
164                                 regulator-always-on;
165                                 op_mode = <0>;
166                         };
167
168                         ldo6_reg: LDO6 {
169                                 regulator-name = "vdd_mydp";
170                                 regulator-min-microvolt = <1000000>;
171                                 regulator-max-microvolt = <1000000>;
172                                 regulator-always-on;
173                                 op_mode = <3>;
174                         };
175
176                         ldo7_reg: LDO7 {
177                                 regulator-name = "P1.1V_LDO_OUT7";
178                                 regulator-min-microvolt = <1100000>;
179                                 regulator-max-microvolt = <1100000>;
180                                 regulator-always-on;
181                                 op_mode = <3>;
182                         };
183
184                         ldo8_reg: LDO8 {
185                                 regulator-name = "P1.0V_LDO_OUT8";
186                                 regulator-min-microvolt = <1000000>;
187                                 regulator-max-microvolt = <1000000>;
188                                 regulator-always-on;
189                                 op_mode = <3>;
190                         };
191
192                         ldo10_reg: LDO10 {
193                                 regulator-name = "P1.8V_LDO_OUT10";
194                                 regulator-min-microvolt = <1800000>;
195                                 regulator-max-microvolt = <1800000>;
196                                 regulator-always-on;
197                                 op_mode = <3>;
198                         };
199
200                         ldo11_reg: LDO11 {
201                                 regulator-name = "P1.8V_LDO_OUT11";
202                                 regulator-min-microvolt = <1800000>;
203                                 regulator-max-microvolt = <1800000>;
204                                 regulator-always-on;
205                                 op_mode = <0>;
206                         };
207
208                         ldo12_reg: LDO12 {
209                                 regulator-name = "P3.0V_LDO_OUT12";
210                                 regulator-min-microvolt = <3000000>;
211                                 regulator-max-microvolt = <3000000>;
212                                 regulator-always-on;
213                                 op_mode = <3>;
214                         };
215
216                         ldo13_reg: LDO13 {
217                                 regulator-name = "P1.8V_LDO_OUT13";
218                                 regulator-min-microvolt = <1800000>;
219                                 regulator-max-microvolt = <1800000>;
220                                 regulator-always-on;
221                                 op_mode = <0>;
222                         };
223
224                         ldo14_reg: LDO14 {
225                                 regulator-name = "P1.8V_LDO_OUT14";
226                                 regulator-min-microvolt = <1800000>;
227                                 regulator-max-microvolt = <1800000>;
228                                 regulator-always-on;
229                                 op_mode = <3>;
230                         };
231
232                         ldo15_reg: LDO15 {
233                                 regulator-name = "P1.0V_LDO_OUT15";
234                                 regulator-min-microvolt = <1000000>;
235                                 regulator-max-microvolt = <1000000>;
236                                 regulator-always-on;
237                                 op_mode = <3>;
238                         };
239
240                         ldo16_reg: LDO16 {
241                                 regulator-name = "P1.8V_LDO_OUT16";
242                                 regulator-min-microvolt = <1800000>;
243                                 regulator-max-microvolt = <1800000>;
244                                 regulator-always-on;
245                                 op_mode = <3>;
246                         };
247
248                         ldo17_reg: LDO17 {
249                                 regulator-name = "P2.8V_LDO_OUT17";
250                                 regulator-min-microvolt = <2800000>;
251                                 regulator-max-microvolt = <2800000>;
252                                 regulator-always-on;
253                                 op_mode = <0>;
254                         };
255
256                         ldo25_reg: LDO25 {
257                                 regulator-name = "vdd_bridge";
258                                 regulator-min-microvolt = <1200000>;
259                                 regulator-max-microvolt = <1200000>;
260                                 regulator-always-on;
261                                 op_mode = <1>;
262                         };
263
264                         buck1_reg: BUCK1 {
265                                 regulator-name = "vdd_mif";
266                                 regulator-min-microvolt = <950000>;
267                                 regulator-max-microvolt = <1300000>;
268                                 regulator-always-on;
269                                 regulator-boot-on;
270                                 op_mode = <3>;
271                         };
272
273                         buck2_reg: BUCK2 {
274                                 regulator-name = "vdd_arm";
275                                 regulator-min-microvolt = <850000>;
276                                 regulator-max-microvolt = <1350000>;
277                                 regulator-always-on;
278                                 regulator-boot-on;
279                                 op_mode = <3>;
280                         };
281
282                         buck3_reg: BUCK3 {
283                                 regulator-name = "vdd_int";
284                                 regulator-min-microvolt = <900000>;
285                                 regulator-max-microvolt = <1200000>;
286                                 regulator-always-on;
287                                 regulator-boot-on;
288                                 op_mode = <3>;
289                         };
290
291                         buck4_reg: BUCK4 {
292                                 regulator-name = "vdd_g3d";
293                                 regulator-min-microvolt = <850000>;
294                                 regulator-max-microvolt = <1300000>;
295                                 regulator-boot-on;
296                                 op_mode = <3>;
297                         };
298
299                         buck5_reg: BUCK5 {
300                                 regulator-name = "P1.8V_BUCK_OUT5";
301                                 regulator-min-microvolt = <1800000>;
302                                 regulator-max-microvolt = <1800000>;
303                                 regulator-always-on;
304                                 regulator-boot-on;
305                                 op_mode = <1>;
306                         };
307
308                         buck6_reg: BUCK6 {
309                                 regulator-name = "P1.2V_BUCK_OUT6";
310                                 regulator-min-microvolt = <1200000>;
311                                 regulator-max-microvolt = <1200000>;
312                                 regulator-always-on;
313                                 regulator-boot-on;
314                                 op_mode = <0>;
315                         };
316
317                         buck9_reg: BUCK9 {
318                                 regulator-name = "vdd_ummc";
319                                 regulator-min-microvolt = <950000>;
320                                 regulator-max-microvolt = <3000000>;
321                                 regulator-always-on;
322                                 regulator-boot-on;
323                                 op_mode = <3>;
324                         };
325                 };
326         };
327 };
328
329 &i2c_1 {
330         status = "okay";
331         samsung,i2c-sda-delay = <100>;
332         samsung,i2c-max-bus-freq = <378000>;
333
334         trackpad@4b {
335                 compatible = "atmel,maxtouch";
336                 reg = <0x4b>;
337                 interrupt-parent = <&gpx1>;
338                 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
339                 pinctrl-names = "default";
340                 pinctrl-0 = <&trackpad_irq>;
341                 linux,gpio-keymap = <KEY_RESERVED
342                                      KEY_RESERVED
343                                      KEY_RESERVED
344                                      KEY_RESERVED
345                                      KEY_RESERVED
346                                      BTN_LEFT>;
347                 wakeup-source;
348         };
349 };
350
351 /*
352  * Disabled pullups since external part has its own pullups and
353  * double-pulling gets us out of spec in some cases.
354  */
355 &i2c2_bus {
356         samsung,pin-pud = <0>;
357 };
358
359 &i2c_2 {
360         status = "okay";
361         samsung,i2c-sda-delay = <100>;
362         samsung,i2c-max-bus-freq = <66000>;
363
364         hdmiddc@50 {
365                 compatible = "samsung,exynos4210-hdmiddc";
366                 reg = <0x50>;
367         };
368 };
369
370 &i2c_3 {
371         status = "okay";
372         samsung,i2c-sda-delay = <100>;
373         samsung,i2c-max-bus-freq = <66000>;
374 };
375
376 &i2c_4 {
377         status = "okay";
378         samsung,i2c-sda-delay = <100>;
379         samsung,i2c-max-bus-freq = <66000>;
380
381         cros_ec: embedded-controller {
382                 compatible = "google,cros-ec-i2c";
383                 reg = <0x1e>;
384                 interrupts = <6 IRQ_TYPE_NONE>;
385                 interrupt-parent = <&gpx1>;
386                 wakeup-source;
387                 pinctrl-names = "default";
388                 pinctrl-0 = <&ec_irq>;
389         };
390 };
391
392 &i2c_5 {
393         status = "okay";
394         samsung,i2c-sda-delay = <100>;
395         samsung,i2c-max-bus-freq = <66000>;
396 };
397
398 &i2c_7 {
399         status = "okay";
400         samsung,i2c-sda-delay = <100>;
401         samsung,i2c-max-bus-freq = <66000>;
402
403         temperature-sensor@4c {
404                 compatible = "gmt,g781";
405                 reg = <0x4c>;
406         };
407 };
408
409 &i2c_8 {
410         status = "okay";
411         samsung,i2c-sda-delay = <100>;
412         samsung,i2c-max-bus-freq = <378000>;
413
414         hdmiphy: hdmiphy@38 {
415                 compatible = "samsung,exynos4212-hdmiphy";
416                 reg = <0x38>;
417         };
418 };
419
420 &i2s0 {
421         status = "okay";
422 };
423
424 &mfc {
425         samsung,mfc-r = <0x43000000 0x800000>;
426         samsung,mfc-l = <0x51000000 0x800000>;
427 };
428
429 &mmc_0 {
430         status = "okay";
431         num-slots = <1>;
432         supports-highspeed;
433         broken-cd;
434         card-detect-delay = <200>;
435         samsung,dw-mshc-ciu-div = <3>;
436         samsung,dw-mshc-sdr-timing = <2 3>;
437         samsung,dw-mshc-ddr-timing = <1 2>;
438         pinctrl-names = "default";
439         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
440
441         slot@0 {
442                 reg = <0>;
443                 bus-width = <8>;
444         };
445 };
446
447 /*
448  * On Spring we've got SIP WiFi and so can keep drive strengths low to
449  * reduce EMI.
450  */
451 &mmc_1 {
452         status = "okay";
453         num-slots = <1>;
454         supports-highspeed;
455         broken-cd;
456         card-detect-delay = <200>;
457         samsung,dw-mshc-ciu-div = <3>;
458         samsung,dw-mshc-sdr-timing = <2 3>;
459         samsung,dw-mshc-ddr-timing = <1 2>;
460         pinctrl-names = "default";
461         pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>;
462
463         slot@0 {
464                 reg = <0>;
465                 bus-width = <4>;
466         };
467 };
468
469 &pinctrl_0 {
470         s5m8767_dvs: s5m8767-dvs {
471                 samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
472                 samsung,pin-function = <0>;
473                 samsung,pin-pud = <1>;
474                 samsung,pin-drv = <0>;
475         };
476
477         dp_hpd_gpio: dp-hpd-gpio {
478                 samsung,pins = "gpc3-0";
479                 samsung,pin-function = <0>;
480                 samsung,pin-pud = <3>;
481                 samsung,pin-drv = <0>;
482         };
483
484         trackpad_irq: trackpad-irq {
485                 samsung,pins = "gpx1-2";
486                 samsung,pin-function = <0xf>;
487                 samsung,pin-pud = <0>;
488                 samsung,pin-drv = <0>;
489         };
490
491         power_key_irq: power-key-irq {
492                 samsung,pins = "gpx1-3";
493                 samsung,pin-function = <0>;
494                 samsung,pin-pud = <0>;
495                 samsung,pin-drv = <0>;
496         };
497
498         ec_irq: ec-irq {
499                 samsung,pins = "gpx1-6";
500                 samsung,pin-function = <0>;
501                 samsung,pin-pud = <0>;
502                 samsung,pin-drv = <0>;
503         };
504
505         s5m8767_ds: s5m8767-ds {
506                 samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
507                 samsung,pin-function = <0>;
508                 samsung,pin-pud = <1>;
509                 samsung,pin-drv = <0>;
510         };
511
512         s5m8767_irq: s5m8767-irq {
513                 samsung,pins = "gpx3-2";
514                 samsung,pin-function = <0>;
515                 samsung,pin-pud = <0>;
516                 samsung,pin-drv = <0>;
517         };
518
519         lid_irq: lid-irq {
520                 samsung,pins = "gpx3-5";
521                 samsung,pin-function = <0>;
522                 samsung,pin-pud = <0>;
523                 samsung,pin-drv = <0>;
524         };
525
526         hdmi_hpd_irq: hdmi-hpd-irq {
527                 samsung,pins = "gpx3-7";
528                 samsung,pin-function = <0>;
529                 samsung,pin-pud = <1>;
530                 samsung,pin-drv = <0>;
531         };
532 };
533
534 &pinctrl_1 {
535         hsic_reset: hsic-reset {
536                 samsung,pins = "gpe1-0";
537                 samsung,pin-function = <1>;
538                 samsung,pin-pud = <0>;
539                 samsung,pin-drv = <0>;
540         };
541 };
542
543 &sd1_bus4 {
544         samsung,pin-drv = <0>;
545 };
546
547 &sd1_cd {
548         samsung,pin-drv = <0>;
549 };
550
551 &sd1_clk {
552         samsung,pin-drv = <0>;
553 };
554
555 &sd1_cmd {
556         samsung,pin-pud = <3>;
557         samsung,pin-drv = <0>;
558 };
559
560 &spi_1 {
561         status = "okay";
562         samsung,spi-src-clk = <0>;
563         num-cs = <1>;
564 };
565
566 #include "cros-ec-keyboard.dtsi"