]> git.ipfire.org Git - people/arne_f/kernel.git/blob - arch/arm/boot/dts/omap4-sdp.dts
sun7i: dts: add bananapro.
[people/arne_f/kernel.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 };