]> Pileus Git - ~andy/linux/blob - arch/arm/boot/dts/omap4-sdp.dts
Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[~andy/linux] / 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_wkup {
159         pinctrl-names = "default";
160         pinctrl-0 = <
161                         &twl6030_wkup_pins
162         >;
163
164         twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
165                 pinctrl-single,pins = <
166                         0x14 (PIN_OUTPUT | MUX_MODE2)           /* fref_clk0_out.sys_drm_msecure */
167                 >;
168         };
169 };
170
171 &omap4_pmx_core {
172         pinctrl-names = "default";
173         pinctrl-0 = <
174                         &twl6030_pins
175                         &twl6040_pins
176                         &mcpdm_pins
177                         &dmic_pins
178                         &mcbsp1_pins
179                         &mcbsp2_pins
180                         &dss_hdmi_pins
181                         &tpd12s015_pins
182         >;
183
184         uart2_pins: pinmux_uart2_pins {
185                 pinctrl-single,pins = <
186                         0xd8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_cts.uart2_cts */
187                         0xda (PIN_OUTPUT | MUX_MODE0)           /* uart2_rts.uart2_rts */
188                         0xdc (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_rx.uart2_rx */
189                         0xde (PIN_OUTPUT | MUX_MODE0)           /* uart2_tx.uart2_tx */
190                 >;
191         };
192
193         uart3_pins: pinmux_uart3_pins {
194                 pinctrl-single,pins = <
195                         0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart3_cts_rctx.uart3_cts_rctx */
196                         0x102 (PIN_OUTPUT | MUX_MODE0)          /* uart3_rts_sd.uart3_rts_sd */
197                         0x104 (PIN_INPUT | MUX_MODE0)           /* uart3_rx_irrx.uart3_rx_irrx */
198                         0x106 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx_irtx.uart3_tx_irtx */
199                 >;
200         };
201
202         uart4_pins: pinmux_uart4_pins {
203                 pinctrl-single,pins = <
204                         0x11c (PIN_INPUT | MUX_MODE0)           /* uart4_rx.uart4_rx */
205                         0x11e (PIN_OUTPUT | MUX_MODE0)          /* uart4_tx.uart4_tx */
206                 >;
207         };
208
209         twl6030_pins: pinmux_twl6030_pins {
210                 pinctrl-single,pins = <
211                         0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)        /* sys_nirq1.sys_nirq1 */
212                 >;
213         };
214
215         twl6040_pins: pinmux_twl6040_pins {
216                 pinctrl-single,pins = <
217                         0xe0 (PIN_OUTPUT | MUX_MODE3)           /* hdq_sio.gpio_127 */
218                         0x160 (PIN_INPUT | MUX_MODE0)           /* sys_nirq2.sys_nirq2 */
219                 >;
220         };
221
222         mcpdm_pins: pinmux_mcpdm_pins {
223                 pinctrl-single,pins = <
224                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
225                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
226                         0xca (PIN_INPUT_PULLUP | MUX_MODE0)     /* abe_pdm_frame.abe_pdm_frame */
227                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
228                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
229                 >;
230         };
231
232         dmic_pins: pinmux_dmic_pins {
233                 pinctrl-single,pins = <
234                         0xd0 (PIN_OUTPUT | MUX_MODE0)           /* abe_dmic_clk1.abe_dmic_clk1 */
235                         0xd2 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din1.abe_dmic_din1 */
236                         0xd4 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din2.abe_dmic_din2 */
237                         0xd6 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din3.abe_dmic_din3 */
238                 >;
239         };
240
241         mcbsp1_pins: pinmux_mcbsp1_pins {
242                 pinctrl-single,pins = <
243                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
244                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
245                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
246                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
247                 >;
248         };
249
250         mcbsp2_pins: pinmux_mcbsp2_pins {
251                 pinctrl-single,pins = <
252                         0xb6 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
253                         0xb8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp2_dr.abe_mcbsp2_dr */
254                         0xba (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp2_dx.abe_mcbsp2_dx */
255                         0xbc (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
256                 >;
257         };
258
259         mcspi1_pins: pinmux_mcspi1_pins {
260                 pinctrl-single,pins = <
261                         0xf2 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_clk.mcspi1_clk */
262                         0xf4 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_somi.mcspi1_somi */
263                         0xf6 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_simo.mcspi1_simo */
264                         0xf8 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_cs0.mcspi1_cs0 */
265                 >;
266         };
267
268         dss_hdmi_pins: pinmux_dss_hdmi_pins {
269                 pinctrl-single,pins = <
270                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
271                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
272                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
273                 >;
274         };
275
276         tpd12s015_pins: pinmux_tpd12s015_pins {
277                 pinctrl-single,pins = <
278                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
279                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
280                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
281                 >;
282         };
283
284         i2c1_pins: pinmux_i2c1_pins {
285                 pinctrl-single,pins = <
286                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
287                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
288                 >;
289         };
290
291         i2c2_pins: pinmux_i2c2_pins {
292                 pinctrl-single,pins = <
293                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
294                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
295                 >;
296         };
297
298         i2c3_pins: pinmux_i2c3_pins {
299                 pinctrl-single,pins = <
300                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
301                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
302                 >;
303         };
304
305         i2c4_pins: pinmux_i2c4_pins {
306                 pinctrl-single,pins = <
307                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
308                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
309                 >;
310         };
311
312         /* wl12xx GPIO output for WLAN_EN */
313         wl12xx_gpio: pinmux_wl12xx_gpio {
314                 pinctrl-single,pins = <
315                         0x3c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nwp.gpio_54 */
316                 >;
317         };
318
319         /* wl12xx GPIO inputs and SDIO pins */
320         wl12xx_pins: pinmux_wl12xx_pins {
321                 pinctrl-single,pins = <
322                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
323                         0x108 (PIN_OUTPUT | MUX_MODE3)          /* sdmmc5_clk.sdmmc5_clk */
324                         0x10a (PIN_INPUT_PULLUP | MUX_MODE3)    /* sdmmc5_cmd.sdmmc5_cmd */
325                         0x10c (PIN_INPUT_PULLUP | MUX_MODE3)    /* sdmmc5_dat0.sdmmc5_dat0 */
326                         0x10e (PIN_INPUT_PULLUP | MUX_MODE3)    /* sdmmc5_dat1.sdmmc5_dat1 */
327                         0x110 (PIN_INPUT_PULLUP | MUX_MODE3)    /* sdmmc5_dat2.sdmmc5_dat2 */
328                         0x112 (PIN_INPUT_PULLUP | MUX_MODE3)    /* sdmmc5_dat3.sdmmc5_dat3 */
329                 >;
330         };
331 };
332
333 &i2c1 {
334         pinctrl-names = "default";
335         pinctrl-0 = <&i2c1_pins>;
336
337         clock-frequency = <400000>;
338
339         twl: twl@48 {
340                 reg = <0x48>;
341                 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
342                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
343                 interrupt-parent = <&gic>;
344         };
345
346         twl6040: twl@4b {
347                 compatible = "ti,twl6040";
348                 reg = <0x4b>;
349                 /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
350                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
351                 interrupt-parent = <&gic>;
352                 ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
353
354                 vio-supply = <&v1v8>;
355                 v2v1-supply = <&v2v1>;
356                 enable-active-high;
357
358                 /* regulators for vibra motor */
359                 vddvibl-supply = <&vbat>;
360                 vddvibr-supply = <&vbat>;
361
362                 vibra {
363                         /* Vibra driver, motor resistance parameters */
364                         ti,vibldrv-res = <8>;
365                         ti,vibrdrv-res = <3>;
366                         ti,viblmotor-res = <10>;
367                         ti,vibrmotor-res = <10>;
368                 };
369         };
370 };
371
372 #include "twl6030.dtsi"
373
374 &i2c2 {
375         pinctrl-names = "default";
376         pinctrl-0 = <&i2c2_pins>;
377
378         clock-frequency = <400000>;
379 };
380
381 &i2c3 {
382         pinctrl-names = "default";
383         pinctrl-0 = <&i2c3_pins>;
384
385         clock-frequency = <400000>;
386
387         /*
388          * Temperature Sensor
389          * http://www.ti.com/lit/ds/symlink/tmp105.pdf
390          */
391         tmp105@48 {
392                 compatible = "ti,tmp105";
393                 reg = <0x48>;
394         };
395
396         /*
397          * Ambient Light Sensor
398          * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
399          */
400         bh1780@29 {
401                 compatible = "rohm,bh1780";
402                 reg = <0x29>;
403         };
404 };
405
406 &i2c4 {
407         pinctrl-names = "default";
408         pinctrl-0 = <&i2c4_pins>;
409
410         clock-frequency = <400000>;
411
412         /*
413          * 3-Axis Digital Compass
414          * http://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
415          */
416         hmc5843@1e {
417                 compatible = "honeywell,hmc5843";
418                 reg = <0x1e>;
419         };
420 };
421
422 &mcspi1 {
423         pinctrl-names = "default";
424         pinctrl-0 = <&mcspi1_pins>;
425
426         eth@0 {
427                 compatible = "ks8851";
428                 spi-max-frequency = <24000000>;
429                 reg = <0>;
430                 interrupt-parent = <&gpio2>;
431                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
432                 vdd-supply = <&vdd_eth>;
433         };
434 };
435
436 &mmc1 {
437         vmmc-supply = <&vmmc>;
438         bus-width = <8>;
439 };
440
441 &mmc2 {
442         vmmc-supply = <&vaux1>;
443         bus-width = <8>;
444         ti,non-removable;
445 };
446
447 &mmc3 {
448         status = "disabled";
449 };
450
451 &mmc4 {
452         status = "disabled";
453 };
454
455 &mmc5 {
456         pinctrl-names = "default";
457         pinctrl-0 = <&wl12xx_pins>;
458         vmmc-supply = <&wl12xx_vmmc>;
459         non-removable;
460         bus-width = <4>;
461         cap-power-off-card;
462 };
463
464 &emif1 {
465         cs1-used;
466         device-handle = <&elpida_ECB240ABACN>;
467 };
468
469 &emif2 {
470         cs1-used;
471         device-handle = <&elpida_ECB240ABACN>;
472 };
473
474 &keypad {
475         keypad,num-rows = <8>;
476         keypad,num-columns = <8>;
477         linux,keymap = <0x00000012      /* KEY_E */
478                         0x00010013      /* KEY_R */
479                         0x00020014      /* KEY_T */
480                         0x00030066      /* KEY_HOME */
481                         0x0004003f      /* KEY_F5 */
482                         0x000500f0      /* KEY_UNKNOWN */
483                         0x00060017      /* KEY_I */
484                         0x0007002a      /* KEY_LEFTSHIFT */
485                         0x01000020      /* KEY_D*/
486                         0x01010021      /* KEY_F */
487                         0x01020022      /* KEY_G */
488                         0x010300e7      /* KEY_SEND */
489                         0x01040040      /* KEY_F6 */
490                         0x010500f0      /* KEY_UNKNOWN */
491                         0x01060025      /* KEY_K */
492                         0x0107001c      /* KEY_ENTER */
493                         0x0200002d      /* KEY_X */
494                         0x0201002e      /* KEY_C */
495                         0x0202002f      /* KEY_V */
496                         0x0203006b      /* KEY_END */
497                         0x02040041      /* KEY_F7 */
498                         0x020500f0      /* KEY_UNKNOWN */
499                         0x02060034      /* KEY_DOT */
500                         0x0207003a      /* KEY_CAPSLOCK */
501                         0x0300002c      /* KEY_Z */
502                         0x0301004e      /* KEY_KPLUS */
503                         0x03020030      /* KEY_B */
504                         0x0303003b      /* KEY_F1 */
505                         0x03040042      /* KEY_F8 */
506                         0x030500f0      /* KEY_UNKNOWN */
507                         0x03060018      /* KEY_O */
508                         0x03070039      /* KEY_SPACE */
509                         0x04000011      /* KEY_W */
510                         0x04010015      /* KEY_Y */
511                         0x04020016      /* KEY_U */
512                         0x0403003c      /* KEY_F2 */
513                         0x04040073      /* KEY_VOLUMEUP */
514                         0x040500f0      /* KEY_UNKNOWN */
515                         0x04060026      /* KEY_L */
516                         0x04070069      /* KEY_LEFT */
517                         0x0500001f      /* KEY_S */
518                         0x05010023      /* KEY_H */
519                         0x05020024      /* KEY_J */
520                         0x0503003d      /* KEY_F3 */
521                         0x05040043      /* KEY_F9 */
522                         0x05050072      /* KEY_VOLUMEDOWN */
523                         0x05060032      /* KEY_M */
524                         0x0507006a      /* KEY_RIGHT */
525                         0x06000010      /* KEY_Q */
526                         0x0601001e      /* KEY_A */
527                         0x06020031      /* KEY_N */
528                         0x0603009e      /* KEY_BACK */
529                         0x0604000e      /* KEY_BACKSPACE */
530                         0x060500f0      /* KEY_UNKNOWN */
531                         0x06060019      /* KEY_P */
532                         0x06070067      /* KEY_UP */
533                         0x07000094      /* KEY_PROG1 */
534                         0x07010095      /* KEY_PROG2 */
535                         0x070200ca      /* KEY_PROG3 */
536                         0x070300cb      /* KEY_PROG4 */
537                         0x0704003e      /* KEY_F4 */
538                         0x070500f0      /* KEY_UNKNOWN */
539                         0x07060160      /* KEY_OK */
540                         0x0707006c>;    /* KEY_DOWN */
541         linux,input-no-autorepeat;
542 };
543
544 &uart2 {
545         pinctrl-names = "default";
546         pinctrl-0 = <&uart2_pins>;
547 };
548
549 &uart3 {
550         pinctrl-names = "default";
551         pinctrl-0 = <&uart3_pins>;
552 };
553
554 &uart4 {
555         pinctrl-names = "default";
556         pinctrl-0 = <&uart4_pins>;
557 };
558
559 &mcbsp3 {
560         status = "disabled";
561 };
562
563 &twl_usb_comparator {
564         usb-supply = <&vusb>;
565 };
566
567 &usb_otg_hs {
568         interface-type = <1>;
569         mode = <3>;
570         power = <50>;
571 };