Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
[cascardo/linux.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 0>; /* 61 */
45                 };
46
47                 debug1 {
48                         label = "omap4:green:debug1";
49                         gpios = <&gpio1 30 0>; /* 30 */
50                 };
51
52                 debug2 {
53                         label = "omap4:green:debug2";
54                         gpios = <&gpio1 7 0>; /* 7 */
55                 };
56
57                 debug3 {
58                         label = "omap4:green:debug3";
59                         gpios = <&gpio1 8 0>; /* 8 */
60                 };
61
62                 debug4 {
63                         label = "omap4:green:debug4";
64                         gpios = <&gpio2 18 0>; /* 50 */
65                 };
66
67                 user1 {
68                         label = "omap4:blue:user";
69                         gpios = <&gpio6 9 0>; /* 169 */
70                 };
71
72                 user2 {
73                         label = "omap4:red:user";
74                         gpios = <&gpio6 10 0>; /* 170 */
75                 };
76
77                 user3 {
78                         label = "omap4:green:user";
79                         gpios = <&gpio5 11 0>; /* 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
145 &omap4_pmx_core {
146         pinctrl-names = "default";
147         pinctrl-0 = <
148                         &twl6040_pins
149                         &mcpdm_pins
150                         &dmic_pins
151                         &mcbsp1_pins
152                         &mcbsp2_pins
153                         &dss_hdmi_pins
154                         &tpd12s015_pins
155         >;
156
157         uart2_pins: pinmux_uart2_pins {
158                 pinctrl-single,pins = <
159                         0xd8 0x118      /* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */
160                         0xda 0          /* uart2_rts.uart2_rts OUTPUT | MODE0 */
161                         0xdc 0x118      /* uart2_rx.uart2_rx INPUT_PULLUP | MODE0 */
162                         0xde 0          /* uart2_tx.uart2_tx OUTPUT | MODE0 */
163                 >;
164         };
165
166         uart3_pins: pinmux_uart3_pins {
167                 pinctrl-single,pins = <
168                         0x100 0x118     /* uart3_cts_rctx.uart3_cts_rctx INPUT_PULLUP | MODE0 */
169                         0x102 0         /* uart3_rts_sd.uart3_rts_sd OUTPUT | MODE0 */
170                         0x104 0x100     /* uart3_rx_irrx.uart3_rx_irrx INPUT | MODE0 */
171                         0x106 0         /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
172                 >;
173         };
174
175         uart4_pins: pinmux_uart4_pins {
176                 pinctrl-single,pins = <
177                         0x11c 0x100     /* uart4_rx.uart4_rx INPUT | MODE0 */
178                         0x11e 0         /* uart4_tx.uart4_tx OUTPUT | MODE0 */
179                 >;
180         };
181
182         twl6040_pins: pinmux_twl6040_pins {
183                 pinctrl-single,pins = <
184                         0xe0 0x3        /* hdq_sio.gpio_127 OUTPUT | MODE3 */
185                         0x160 0x100     /* sys_nirq2.sys_nirq2 INPUT | MODE0 */
186                 >;
187         };
188
189         mcpdm_pins: pinmux_mcpdm_pins {
190                 pinctrl-single,pins = <
191                         0xc6 0x108      /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */
192                         0xc8 0x108      /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */
193                         0xca 0x118      /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */
194                         0xcc 0x108      /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */
195                         0xce 0x108      /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */
196                 >;
197         };
198
199         dmic_pins: pinmux_dmic_pins {
200                 pinctrl-single,pins = <
201                         0xd0 0          /* abe_dmic_clk1.abe_dmic_clk1 OUTPUT | MODE0 */
202                         0xd2 0x100      /* abe_dmic_din1.abe_dmic_din1 INPUT | MODE0 */
203                         0xd4 0x100      /* abe_dmic_din2.abe_dmic_din2 INPUT | MODE0 */
204                         0xd6 0x100      /* abe_dmic_din3.abe_dmic_din3 INPUT | MODE0 */
205                 >;
206         };
207
208         mcbsp1_pins: pinmux_mcbsp1_pins {
209                 pinctrl-single,pins = <
210                         0xbe 0x100      /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */
211                         0xc0 0x108      /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */
212                         0xc2 0x8        /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */
213                         0xc4 0x100      /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
214                 >;
215         };
216
217         mcbsp2_pins: pinmux_mcbsp2_pins {
218                 pinctrl-single,pins = <
219                         0xb6 0x100      /* abe_mcbsp2_clkx.abe_mcbsp2_clkx INPUT | MODE0 */
220                         0xb8 0x108      /* abe_mcbsp2_dr.abe_mcbsp2_dr INPUT PULLDOWN | MODE0 */
221                         0xba 0x8        /* abe_mcbsp2_dx.abe_mcbsp2_dx OUTPUT PULLDOWN | MODE0 */
222                         0xbc 0x100      /* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */
223                 >;
224         };
225
226         mcspi1_pins: pinmux_mcspi1_pins {
227                 pinctrl-single,pins = <
228                         0xf2 0x100      /*  mcspi1_clk.mcspi1_clk INPUT | MODE0 */
229                         0xf4 0x100      /*  mcspi1_somi.mcspi1_somi INPUT | MODE0 */
230                         0xf6 0x100      /*  mcspi1_simo.mcspi1_simo INPUT | MODE0 */
231                         0xf8 0x100      /*  mcspi1_cs0.mcspi1_cs0 INPUT | MODE0*/
232                 >;
233         };
234
235         dss_hdmi_pins: pinmux_dss_hdmi_pins {
236                 pinctrl-single,pins = <
237                         0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
238                         0x5c 0x118      /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
239                         0x5e 0x118      /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
240                 >;
241         };
242
243         tpd12s015_pins: pinmux_tpd12s015_pins {
244                 pinctrl-single,pins = <
245                         0x22 0x3        /* gpmc_a17.gpio_41 OUTPUT | MODE3 */
246                         0x48 0x3        /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
247                         0x58 0x10b      /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
248                 >;
249         };
250
251         i2c1_pins: pinmux_i2c1_pins {
252                 pinctrl-single,pins = <
253                         0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
254                         0xe4 0x118       /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
255                 >;
256         };
257
258         i2c2_pins: pinmux_i2c2_pins {
259                 pinctrl-single,pins = <
260                         0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
261                         0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
262                 >;
263         };
264
265         i2c3_pins: pinmux_i2c3_pins {
266                 pinctrl-single,pins = <
267                         0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
268                         0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
269                 >;
270         };
271
272         i2c4_pins: pinmux_i2c4_pins {
273                 pinctrl-single,pins = <
274                         0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
275                         0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
276                 >;
277         };
278 };
279
280 &i2c1 {
281         pinctrl-names = "default";
282         pinctrl-0 = <&i2c1_pins>;
283
284         clock-frequency = <400000>;
285
286         twl: twl@48 {
287                 reg = <0x48>;
288                 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
289                 interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
290                 interrupt-parent = <&gic>;
291         };
292
293         twl6040: twl@4b {
294                 compatible = "ti,twl6040";
295                 reg = <0x4b>;
296                 /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
297                 interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */
298                 interrupt-parent = <&gic>;
299                 ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
300
301                 vio-supply = <&v1v8>;
302                 v2v1-supply = <&v2v1>;
303                 enable-active-high;
304
305                 /* regulators for vibra motor */
306                 vddvibl-supply = <&vbat>;
307                 vddvibr-supply = <&vbat>;
308
309                 vibra {
310                         /* Vibra driver, motor resistance parameters */
311                         ti,vibldrv-res = <8>;
312                         ti,vibrdrv-res = <3>;
313                         ti,viblmotor-res = <10>;
314                         ti,vibrmotor-res = <10>;
315                 };
316         };
317 };
318
319 /include/ "twl6030.dtsi"
320
321 &i2c2 {
322         pinctrl-names = "default";
323         pinctrl-0 = <&i2c2_pins>;
324
325         clock-frequency = <400000>;
326 };
327
328 &i2c3 {
329         pinctrl-names = "default";
330         pinctrl-0 = <&i2c3_pins>;
331
332         clock-frequency = <400000>;
333
334         /*
335          * Temperature Sensor
336          * http://www.ti.com/lit/ds/symlink/tmp105.pdf
337          */
338         tmp105@48 {
339                 compatible = "ti,tmp105";
340                 reg = <0x48>;
341         };
342
343         /*
344          * Ambient Light Sensor
345          * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
346          */
347         bh1780@29 {
348                 compatible = "rohm,bh1780";
349                 reg = <0x29>;
350         };
351 };
352
353 &i2c4 {
354         pinctrl-names = "default";
355         pinctrl-0 = <&i2c4_pins>;
356
357         clock-frequency = <400000>;
358
359         /*
360          * 3-Axis Digital Compass
361          * http://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
362          */
363         hmc5843@1e {
364                 compatible = "honeywell,hmc5843";
365                 reg = <0x1e>;
366         };
367 };
368
369 &mcspi1 {
370         pinctrl-names = "default";
371         pinctrl-0 = <&mcspi1_pins>;
372
373         eth@0 {
374                 compatible = "ks8851";
375                 spi-max-frequency = <24000000>;
376                 reg = <0>;
377                 interrupt-parent = <&gpio2>;
378                 interrupts = <2 8>; /* gpio line 34, low triggered */
379                 vdd-supply = <&vdd_eth>;
380         };
381 };
382
383 &mmc1 {
384         vmmc-supply = <&vmmc>;
385         bus-width = <8>;
386 };
387
388 &mmc2 {
389         vmmc-supply = <&vaux1>;
390         bus-width = <8>;
391         ti,non-removable;
392 };
393
394 &mmc3 {
395         status = "disabled";
396 };
397
398 &mmc4 {
399         status = "disabled";
400 };
401
402 &mmc5 {
403         bus-width = <4>;
404         ti,non-removable;
405 };
406
407 &emif1 {
408         cs1-used;
409         device-handle = <&elpida_ECB240ABACN>;
410 };
411
412 &emif2 {
413         cs1-used;
414         device-handle = <&elpida_ECB240ABACN>;
415 };
416
417 &keypad {
418         keypad,num-rows = <8>;
419         keypad,num-columns = <8>;
420         linux,keymap = <0x00000012      /* KEY_E */
421                         0x00010013      /* KEY_R */
422                         0x00020014      /* KEY_T */
423                         0x00030066      /* KEY_HOME */
424                         0x0004003f      /* KEY_F5 */
425                         0x000500f0      /* KEY_UNKNOWN */
426                         0x00060017      /* KEY_I */
427                         0x0007002a      /* KEY_LEFTSHIFT */
428                         0x01000020      /* KEY_D*/
429                         0x01010021      /* KEY_F */
430                         0x01020022      /* KEY_G */
431                         0x010300e7      /* KEY_SEND */
432                         0x01040040      /* KEY_F6 */
433                         0x010500f0      /* KEY_UNKNOWN */
434                         0x01060025      /* KEY_K */
435                         0x0107001c      /* KEY_ENTER */
436                         0x0200002d      /* KEY_X */
437                         0x0201002e      /* KEY_C */
438                         0x0202002f      /* KEY_V */
439                         0x0203006b      /* KEY_END */
440                         0x02040041      /* KEY_F7 */
441                         0x020500f0      /* KEY_UNKNOWN */
442                         0x02060034      /* KEY_DOT */
443                         0x0207003a      /* KEY_CAPSLOCK */
444                         0x0300002c      /* KEY_Z */
445                         0x0301004e      /* KEY_KPLUS */
446                         0x03020030      /* KEY_B */
447                         0x0303003b      /* KEY_F1 */
448                         0x03040042      /* KEY_F8 */
449                         0x030500f0      /* KEY_UNKNOWN */
450                         0x03060018      /* KEY_O */
451                         0x03070039      /* KEY_SPACE */
452                         0x04000011      /* KEY_W */
453                         0x04010015      /* KEY_Y */
454                         0x04020016      /* KEY_U */
455                         0x0403003c      /* KEY_F2 */
456                         0x04040073      /* KEY_VOLUMEUP */
457                         0x040500f0      /* KEY_UNKNOWN */
458                         0x04060026      /* KEY_L */
459                         0x04070069      /* KEY_LEFT */
460                         0x0500001f      /* KEY_S */
461                         0x05010023      /* KEY_H */
462                         0x05020024      /* KEY_J */
463                         0x0503003d      /* KEY_F3 */
464                         0x05040043      /* KEY_F9 */
465                         0x05050072      /* KEY_VOLUMEDOWN */
466                         0x05060032      /* KEY_M */
467                         0x0507006a      /* KEY_RIGHT */
468                         0x06000010      /* KEY_Q */
469                         0x0601001e      /* KEY_A */
470                         0x06020031      /* KEY_N */
471                         0x0603009e      /* KEY_BACK */
472                         0x0604000e      /* KEY_BACKSPACE */
473                         0x060500f0      /* KEY_UNKNOWN */
474                         0x06060019      /* KEY_P */
475                         0x06070067      /* KEY_UP */
476                         0x07000094      /* KEY_PROG1 */
477                         0x07010095      /* KEY_PROG2 */
478                         0x070200ca      /* KEY_PROG3 */
479                         0x070300cb      /* KEY_PROG4 */
480                         0x0704003e      /* KEY_F4 */
481                         0x070500f0      /* KEY_UNKNOWN */
482                         0x07060160      /* KEY_OK */
483                         0x0707006c>;    /* KEY_DOWN */
484         linux,input-no-autorepeat;
485 };
486
487 &uart2 {
488         pinctrl-names = "default";
489         pinctrl-0 = <&uart2_pins>;
490 };
491
492 &uart3 {
493         pinctrl-names = "default";
494         pinctrl-0 = <&uart3_pins>;
495 };
496
497 &uart4 {
498         pinctrl-names = "default";
499         pinctrl-0 = <&uart4_pins>;
500 };
501
502 &mcbsp3 {
503         status = "disabled";
504 };
505
506 &twl_usb_comparator {
507         usb-supply = <&vusb>;
508 };
509
510 &usb_otg_hs {
511         interface-type = <1>;
512         mode = <3>;
513         power = <50>;
514 };