Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[linux-drm-fsl-dcu.git] / arch / arm / boot / dts / omap4-sdp.dts
1 /*
2  * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 /dts-v1/;
9
10 #include "omap443x.dtsi"
11 #include "elpida_ecb240abacn.dtsi"
12
13 / {
14         model = "TI OMAP4 SDP board";
15         compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
16
17         memory {
18                 device_type = "memory";
19                 reg = <0x80000000 0x40000000>; /* 1 GB */
20         };
21
22         vdd_eth: fixedregulator-vdd-eth {
23                 compatible = "regulator-fixed";
24                 regulator-name = "VDD_ETH";
25                 regulator-min-microvolt = <3300000>;
26                 regulator-max-microvolt = <3300000>;
27                 gpio = <&gpio2 16 0>;  /* gpio line 48 */
28                 enable-active-high;
29                 regulator-boot-on;
30         };
31
32         vbat: fixedregulator-vbat {
33                 compatible = "regulator-fixed";
34                 regulator-name = "VBAT";
35                 regulator-min-microvolt = <3750000>;
36                 regulator-max-microvolt = <3750000>;
37                 regulator-boot-on;
38         };
39
40         leds {
41                 compatible = "gpio-leds";
42                 debug0 {
43                         label = "omap4:green:debug0";
44                         gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
45                 };
46
47                 debug1 {
48                         label = "omap4:green:debug1";
49                         gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
50                 };
51
52                 debug2 {
53                         label = "omap4:green:debug2";
54                         gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
55                 };
56
57                 debug3 {
58                         label = "omap4:green:debug3";
59                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
60                 };
61
62                 debug4 {
63                         label = "omap4:green:debug4";
64                         gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
65                 };
66
67                 user1 {
68                         label = "omap4:blue:user";
69                         gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
70                 };
71
72                 user2 {
73                         label = "omap4:red:user";
74                         gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
75                 };
76
77                 user3 {
78                         label = "omap4:green:user";
79                         gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
80                 };
81         };
82
83         pwmleds {
84                 compatible = "pwm-leds";
85                 kpad {
86                         label = "omap4::keypad";
87                         pwms = <&twl_pwm 0 7812500>;
88                         max-brightness = <127>;
89                 };
90
91                 charging {
92                         label = "omap4:green:chrg";
93                         pwms = <&twl_pwmled 0 7812500>;
94                         max-brightness = <255>;
95                 };
96         };
97
98         backlight {
99                 compatible = "pwm-backlight";
100                 pwms = <&twl_pwm 1 7812500>;
101                 brightness-levels = <
102                                 0 10 20 30 40
103                                 50 60 70 80 90
104                                 100 110 120 127
105                                 >;
106                 default-brightness-level = <13>;
107         };
108
109         sound {
110                 compatible = "ti,abe-twl6040";
111                 ti,model = "SDP4430";
112
113                 ti,jack-detection = <1>;
114                 ti,mclk-freq = <38400000>;
115
116                 ti,mcpdm = <&mcpdm>;
117                 ti,dmic = <&dmic>;
118
119                 ti,twl6040 = <&twl6040>;
120
121                 /* Audio routing */
122                 ti,audio-routing =
123                         "Headset Stereophone", "HSOL",
124                         "Headset Stereophone", "HSOR",
125                         "Earphone Spk", "EP",
126                         "Ext Spk", "HFL",
127                         "Ext Spk", "HFR",
128                         "Line Out", "AUXL",
129                         "Line Out", "AUXR",
130                         "Vibrator", "VIBRAL",
131                         "Vibrator", "VIBRAR",
132                         "HSMIC", "Headset Mic",
133                         "Headset Mic", "Headset Mic Bias",
134                         "MAINMIC", "Main Handset Mic",
135                         "Main Handset Mic", "Main Mic Bias",
136                         "SUBMIC", "Sub Handset Mic",
137                         "Sub Handset Mic", "Main Mic Bias",
138                         "AFML", "Line In",
139                         "AFMR", "Line In",
140                         "DMic", "Digital Mic",
141                         "Digital Mic", "Digital Mic1 Bias";
142         };
143
144         /* regulator for wl12xx on sdio5 */
145         wl12xx_vmmc: wl12xx_vmmc {
146                 pinctrl-names = "default";
147                 pinctrl-0 = <&wl12xx_gpio>;
148                 compatible = "regulator-fixed";
149                 regulator-name = "vwl1271";
150                 regulator-min-microvolt = <1800000>;
151                 regulator-max-microvolt = <1800000>;
152                 gpio = <&gpio2 22 0>;
153                 startup-delay-us = <70000>;
154                 enable-active-high;
155         };
156 };
157
158 &omap4_pmx_core {
159         pinctrl-names = "default";
160         pinctrl-0 = <
161                         &twl6040_pins
162                         &mcpdm_pins
163                         &dmic_pins
164                         &mcbsp1_pins
165                         &mcbsp2_pins
166                         &dss_hdmi_pins
167                         &tpd12s015_pins
168         >;
169
170         uart2_pins: pinmux_uart2_pins {
171                 pinctrl-single,pins = <
172                         0xd8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_cts.uart2_cts */
173                         0xda (PIN_OUTPUT | MUX_MODE0)           /* uart2_rts.uart2_rts */
174                         0xdc (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_rx.uart2_rx */
175                         0xde (PIN_OUTPUT | MUX_MODE0)           /* uart2_tx.uart2_tx */
176                 >;
177         };
178
179         uart3_pins: pinmux_uart3_pins {
180                 pinctrl-single,pins = <
181                         0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart3_cts_rctx.uart3_cts_rctx */
182                         0x102 (PIN_OUTPUT | MUX_MODE0)          /* uart3_rts_sd.uart3_rts_sd */
183                         0x104 (PIN_INPUT | MUX_MODE0)           /* uart3_rx_irrx.uart3_rx_irrx */
184                         0x106 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx_irtx.uart3_tx_irtx */
185                 >;
186         };
187
188         uart4_pins: pinmux_uart4_pins {
189                 pinctrl-single,pins = <
190                         0x11c (PIN_INPUT | MUX_MODE0)           /* uart4_rx.uart4_rx */
191                         0x11e (PIN_OUTPUT | MUX_MODE0)          /* uart4_tx.uart4_tx */
192                 >;
193         };
194
195         twl6040_pins: pinmux_twl6040_pins {
196                 pinctrl-single,pins = <
197                         0xe0 (PIN_OUTPUT | MUX_MODE3)           /* hdq_sio.gpio_127 */
198                         0x160 (PIN_INPUT | MUX_MODE0)           /* sys_nirq2.sys_nirq2 */
199                 >;
200         };
201
202         mcpdm_pins: pinmux_mcpdm_pins {
203                 pinctrl-single,pins = <
204                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
205                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
206                         0xca (PIN_INPUT_PULLUP | MUX_MODE0)     /* abe_pdm_frame.abe_pdm_frame */
207                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
208                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
209                 >;
210         };
211
212         dmic_pins: pinmux_dmic_pins {
213                 pinctrl-single,pins = <
214                         0xd0 (PIN_OUTPUT | MUX_MODE0)           /* abe_dmic_clk1.abe_dmic_clk1 */
215                         0xd2 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din1.abe_dmic_din1 */
216                         0xd4 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din2.abe_dmic_din2 */
217                         0xd6 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din3.abe_dmic_din3 */
218                 >;
219         };
220
221         mcbsp1_pins: pinmux_mcbsp1_pins {
222                 pinctrl-single,pins = <
223                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
224                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
225                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
226                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
227                 >;
228         };
229
230         mcbsp2_pins: pinmux_mcbsp2_pins {
231                 pinctrl-single,pins = <
232                         0xb6 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
233                         0xb8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp2_dr.abe_mcbsp2_dr */
234                         0xba (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp2_dx.abe_mcbsp2_dx */
235                         0xbc (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
236                 >;
237         };
238
239         mcspi1_pins: pinmux_mcspi1_pins {
240                 pinctrl-single,pins = <
241                         0xf2 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_clk.mcspi1_clk */
242                         0xf4 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_somi.mcspi1_somi */
243                         0xf6 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_simo.mcspi1_simo */
244                         0xf8 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_cs0.mcspi1_cs0 */
245                 >;
246         };
247
248         dss_hdmi_pins: pinmux_dss_hdmi_pins {
249                 pinctrl-single,pins = <
250                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
251                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
252                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
253                 >;
254         };
255
256         tpd12s015_pins: pinmux_tpd12s015_pins {
257                 pinctrl-single,pins = <
258                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
259                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
260                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
261                 >;
262         };
263
264         i2c1_pins: pinmux_i2c1_pins {
265                 pinctrl-single,pins = <
266                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
267                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
268                 >;
269         };
270
271         i2c2_pins: pinmux_i2c2_pins {
272                 pinctrl-single,pins = <
273                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
274                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
275                 >;
276         };
277
278         i2c3_pins: pinmux_i2c3_pins {
279                 pinctrl-single,pins = <
280                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
281                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
282                 >;
283         };
284
285         i2c4_pins: pinmux_i2c4_pins {
286                 pinctrl-single,pins = <
287                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
288                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
289                 >;
290         };
291
292         /* wl12xx GPIO output for WLAN_EN */
293         wl12xx_gpio: pinmux_wl12xx_gpio {
294                 pinctrl-single,pins = <
295                         0x3c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nwp.gpio_54 */
296                 >;
297         };
298
299         /* wl12xx GPIO inputs and SDIO pins */
300         wl12xx_pins: pinmux_wl12xx_pins {
301                 pinctrl-single,pins = <
302                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
303                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
304                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
305                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
306                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
307                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
308                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
309                 >;
310         };
311 };
312
313 &i2c1 {
314         pinctrl-names = "default";
315         pinctrl-0 = <&i2c1_pins>;
316
317         clock-frequency = <400000>;
318
319         twl: twl@48 {
320                 reg = <0x48>;
321                 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
322                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
323                 interrupt-parent = <&gic>;
324         };
325
326         twl6040: twl@4b {
327                 compatible = "ti,twl6040";
328                 reg = <0x4b>;
329                 /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
330                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
331                 interrupt-parent = <&gic>;
332                 ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
333
334                 vio-supply = <&v1v8>;
335                 v2v1-supply = <&v2v1>;
336                 enable-active-high;
337
338                 /* regulators for vibra motor */
339                 vddvibl-supply = <&vbat>;
340                 vddvibr-supply = <&vbat>;
341
342                 vibra {
343                         /* Vibra driver, motor resistance parameters */
344                         ti,vibldrv-res = <8>;
345                         ti,vibrdrv-res = <3>;
346                         ti,viblmotor-res = <10>;
347                         ti,vibrmotor-res = <10>;
348                 };
349         };
350 };
351
352 #include "twl6030.dtsi"
353 #include "twl6030_omap4.dtsi"
354
355 &i2c2 {
356         pinctrl-names = "default";
357         pinctrl-0 = <&i2c2_pins>;
358
359         clock-frequency = <400000>;
360 };
361
362 &i2c3 {
363         pinctrl-names = "default";
364         pinctrl-0 = <&i2c3_pins>;
365
366         clock-frequency = <400000>;
367
368         /*
369          * Temperature Sensor
370          * http://www.ti.com/lit/ds/symlink/tmp105.pdf
371          */
372         tmp105@48 {
373                 compatible = "ti,tmp105";
374                 reg = <0x48>;
375         };
376
377         /*
378          * Ambient Light Sensor
379          * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
380          */
381         bh1780@29 {
382                 compatible = "rohm,bh1780";
383                 reg = <0x29>;
384         };
385 };
386
387 &i2c4 {
388         pinctrl-names = "default";
389         pinctrl-0 = <&i2c4_pins>;
390
391         clock-frequency = <400000>;
392
393         /*
394          * 3-Axis Digital Compass
395          * http://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
396          */
397         hmc5843@1e {
398                 compatible = "honeywell,hmc5843";
399                 reg = <0x1e>;
400         };
401 };
402
403 &mcspi1 {
404         pinctrl-names = "default";
405         pinctrl-0 = <&mcspi1_pins>;
406
407         eth@0 {
408                 compatible = "ks8851";
409                 spi-max-frequency = <24000000>;
410                 reg = <0>;
411                 interrupt-parent = <&gpio2>;
412                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
413                 vdd-supply = <&vdd_eth>;
414         };
415 };
416
417 &mmc1 {
418         vmmc-supply = <&vmmc>;
419         bus-width = <8>;
420 };
421
422 &mmc2 {
423         vmmc-supply = <&vaux1>;
424         bus-width = <8>;
425         ti,non-removable;
426 };
427
428 &mmc3 {
429         status = "disabled";
430 };
431
432 &mmc4 {
433         status = "disabled";
434 };
435
436 &mmc5 {
437         pinctrl-names = "default";
438         pinctrl-0 = <&wl12xx_pins>;
439         vmmc-supply = <&wl12xx_vmmc>;
440         non-removable;
441         bus-width = <4>;
442         cap-power-off-card;
443 };
444
445 &emif1 {
446         cs1-used;
447         device-handle = <&elpida_ECB240ABACN>;
448 };
449
450 &emif2 {
451         cs1-used;
452         device-handle = <&elpida_ECB240ABACN>;
453 };
454
455 &keypad {
456         keypad,num-rows = <8>;
457         keypad,num-columns = <8>;
458         linux,keymap = <0x00000012      /* KEY_E */
459                         0x00010013      /* KEY_R */
460                         0x00020014      /* KEY_T */
461                         0x00030066      /* KEY_HOME */
462                         0x0004003f      /* KEY_F5 */
463                         0x000500f0      /* KEY_UNKNOWN */
464                         0x00060017      /* KEY_I */
465                         0x0007002a      /* KEY_LEFTSHIFT */
466                         0x01000020      /* KEY_D*/
467                         0x01010021      /* KEY_F */
468                         0x01020022      /* KEY_G */
469                         0x010300e7      /* KEY_SEND */
470                         0x01040040      /* KEY_F6 */
471                         0x010500f0      /* KEY_UNKNOWN */
472                         0x01060025      /* KEY_K */
473                         0x0107001c      /* KEY_ENTER */
474                         0x0200002d      /* KEY_X */
475                         0x0201002e      /* KEY_C */
476                         0x0202002f      /* KEY_V */
477                         0x0203006b      /* KEY_END */
478                         0x02040041      /* KEY_F7 */
479                         0x020500f0      /* KEY_UNKNOWN */
480                         0x02060034      /* KEY_DOT */
481                         0x0207003a      /* KEY_CAPSLOCK */
482                         0x0300002c      /* KEY_Z */
483                         0x0301004e      /* KEY_KPLUS */
484                         0x03020030      /* KEY_B */
485                         0x0303003b      /* KEY_F1 */
486                         0x03040042      /* KEY_F8 */
487                         0x030500f0      /* KEY_UNKNOWN */
488                         0x03060018      /* KEY_O */
489                         0x03070039      /* KEY_SPACE */
490                         0x04000011      /* KEY_W */
491                         0x04010015      /* KEY_Y */
492                         0x04020016      /* KEY_U */
493                         0x0403003c      /* KEY_F2 */
494                         0x04040073      /* KEY_VOLUMEUP */
495                         0x040500f0      /* KEY_UNKNOWN */
496                         0x04060026      /* KEY_L */
497                         0x04070069      /* KEY_LEFT */
498                         0x0500001f      /* KEY_S */
499                         0x05010023      /* KEY_H */
500                         0x05020024      /* KEY_J */
501                         0x0503003d      /* KEY_F3 */
502                         0x05040043      /* KEY_F9 */
503                         0x05050072      /* KEY_VOLUMEDOWN */
504                         0x05060032      /* KEY_M */
505                         0x0507006a      /* KEY_RIGHT */
506                         0x06000010      /* KEY_Q */
507                         0x0601001e      /* KEY_A */
508                         0x06020031      /* KEY_N */
509                         0x0603009e      /* KEY_BACK */
510                         0x0604000e      /* KEY_BACKSPACE */
511                         0x060500f0      /* KEY_UNKNOWN */
512                         0x06060019      /* KEY_P */
513                         0x06070067      /* KEY_UP */
514                         0x07000094      /* KEY_PROG1 */
515                         0x07010095      /* KEY_PROG2 */
516                         0x070200ca      /* KEY_PROG3 */
517                         0x070300cb      /* KEY_PROG4 */
518                         0x0704003e      /* KEY_F4 */
519                         0x070500f0      /* KEY_UNKNOWN */
520                         0x07060160      /* KEY_OK */
521                         0x0707006c>;    /* KEY_DOWN */
522         linux,input-no-autorepeat;
523 };
524
525 &uart2 {
526         pinctrl-names = "default";
527         pinctrl-0 = <&uart2_pins>;
528 };
529
530 &uart3 {
531         pinctrl-names = "default";
532         pinctrl-0 = <&uart3_pins>;
533 };
534
535 &uart4 {
536         pinctrl-names = "default";
537         pinctrl-0 = <&uart4_pins>;
538 };
539
540 &mcbsp3 {
541         status = "disabled";
542 };
543
544 &twl_usb_comparator {
545         usb-supply = <&vusb>;
546 };
547
548 &usb_otg_hs {
549         interface-type = <1>;
550         mode = <3>;
551         power = <50>;
552 };