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