Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
4 */
5/dts-v1/;
6
7#include "omap443x.dtsi"
8#include "elpida_ecb240abacn.dtsi"
9#include "omap4-mcpdm.dtsi"
10
11/ {
12 model = "TI OMAP4 SDP board";
13 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
14
15 memory@80000000 {
16 device_type = "memory";
17 reg = <0x80000000 0x40000000>; /* 1 GB */
18 };
19
20 aliases {
21 display0 = &lcd0;
22 display1 = &lcd1;
23 display2 = &hdmi0;
24 };
25
26 vdd_eth: fixedregulator-vdd-eth {
27 pinctrl-names = "default";
28 pinctrl-0 = <&enet_enable_gpio>;
29
30 compatible = "regulator-fixed";
31 regulator-name = "VDD_ETH";
32 regulator-min-microvolt = <3300000>;
33 regulator-max-microvolt = <3300000>;
34 gpio = <&gpio2 16 GPIO_ACTIVE_HIGH>; /* gpio line 48 */
35 enable-active-high;
36 regulator-boot-on;
37 startup-delay-us = <25000>;
38 };
39
40 vbat: fixedregulator-vbat {
41 compatible = "regulator-fixed";
42 regulator-name = "VBAT";
43 regulator-min-microvolt = <3750000>;
44 regulator-max-microvolt = <3750000>;
45 regulator-boot-on;
46 };
47
48 led-controller-1 {
49 compatible = "gpio-leds";
50
51 led-1 {
52 label = "omap4:green:debug0";
53 gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
54 };
55
56 led-2 {
57 label = "omap4:green:debug1";
58 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
59 };
60
61 led-3 {
62 label = "omap4:green:debug2";
63 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
64 };
65
66 led-4 {
67 label = "omap4:green:debug3";
68 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
69 };
70
71 led-5 {
72 label = "omap4:green:debug4";
73 gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
74 };
75
76 led-6 {
77 label = "omap4:blue:user";
78 gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
79 };
80
81 led-7 {
82 label = "omap4:red:user";
83 gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
84 };
85
86 led-8 {
87 label = "omap4:green:user";
88 gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
89 };
90 };
91
92 led-controller-2 {
93 compatible = "pwm-leds";
94
95 led-9 {
96 label = "omap4::keypad";
97 pwms = <&twl_pwm 0 7812500>;
98 max-brightness = <127>;
99 };
100
101 led-10 {
102 label = "omap4:green:chrg";
103 pwms = <&twl_pwmled 0 7812500>;
104 max-brightness = <255>;
105 };
106 };
107
108 backlight {
109 compatible = "pwm-backlight";
110 pwms = <&twl_pwm 1 7812500>;
111 brightness-levels = <
112 0 10 20 30 40
113 50 60 70 80 90
114 100 110 120 127
115 >;
116 default-brightness-level = <13>;
117 };
118
119 sound {
120 compatible = "ti,abe-twl6040";
121 ti,model = "SDP4430";
122
123 ti,jack-detection = <1>;
124 ti,mclk-freq = <38400000>;
125
126 ti,mcpdm = <&mcpdm>;
127 ti,dmic = <&dmic>;
128
129 ti,twl6040 = <&twl6040>;
130
131 /* Audio routing */
132 ti,audio-routing =
133 "Headset Stereophone", "HSOL",
134 "Headset Stereophone", "HSOR",
135 "Earphone Spk", "EP",
136 "Ext Spk", "HFL",
137 "Ext Spk", "HFR",
138 "Line Out", "AUXL",
139 "Line Out", "AUXR",
140 "Vibrator", "VIBRAL",
141 "Vibrator", "VIBRAR",
142 "HSMIC", "Headset Mic",
143 "Headset Mic", "Headset Mic Bias",
144 "MAINMIC", "Main Handset Mic",
145 "Main Handset Mic", "Main Mic Bias",
146 "SUBMIC", "Sub Handset Mic",
147 "Sub Handset Mic", "Main Mic Bias",
148 "AFML", "Line In",
149 "AFMR", "Line In",
150 "DMic", "Digital Mic",
151 "Digital Mic", "Digital Mic1 Bias";
152 };
153
154 /* regulator for wl12xx on sdio5 */
155 wl12xx_vmmc: wl12xx_vmmc {
156 pinctrl-names = "default";
157 pinctrl-0 = <&wl12xx_gpio>;
158 compatible = "regulator-fixed";
159 regulator-name = "vwl1271";
160 regulator-min-microvolt = <1800000>;
161 regulator-max-microvolt = <1800000>;
162 gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>;
163 startup-delay-us = <70000>;
164 enable-active-high;
165 };
166
167 tpd12s015: encoder {
168 compatible = "ti,tpd12s015";
169
170 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */
171 <&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */
172 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */
173
174 ports {
175 #address-cells = <1>;
176 #size-cells = <0>;
177
178 port@0 {
179 reg = <0>;
180
181 tpd12s015_in: endpoint {
182 remote-endpoint = <&hdmi_out>;
183 };
184 };
185
186 port@1 {
187 reg = <1>;
188
189 tpd12s015_out: endpoint {
190 remote-endpoint = <&hdmi_connector_in>;
191 };
192 };
193 };
194 };
195
196 hdmi0: connector {
197 compatible = "hdmi-connector";
198 label = "hdmi";
199
200 type = "c";
201
202 port {
203 hdmi_connector_in: endpoint {
204 remote-endpoint = <&tpd12s015_out>;
205 };
206 };
207 };
208};
209
210&omap4_pmx_core {
211 pinctrl-names = "default";
212 pinctrl-0 = <
213 &dss_hdmi_pins
214 &tpd12s015_pins
215 >;
216
217 uart2_pins: pinmux_uart2_pins {
218 pinctrl-single,pins = <
219 OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */
220 OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */
221 OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */
222 OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
223 >;
224 };
225
226 uart3_pins: pinmux_uart3_pins {
227 pinctrl-single,pins = <
228 OMAP4_IOPAD(0x140, PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */
229 OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */
230 OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
231 OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
232 >;
233 };
234
235 uart4_pins: pinmux_uart4_pins {
236 pinctrl-single,pins = <
237 OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx.uart4_rx */
238 OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx.uart4_tx */
239 >;
240 };
241
242 twl6040_pins: pinmux_twl6040_pins {
243 pinctrl-single,pins = <
244 OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
245 OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
246 >;
247 };
248
249 dmic_pins: pinmux_dmic_pins {
250 pinctrl-single,pins = <
251 OMAP4_IOPAD(0x110, PIN_OUTPUT | MUX_MODE0) /* abe_dmic_clk1.abe_dmic_clk1 */
252 OMAP4_IOPAD(0x112, PIN_INPUT | MUX_MODE0) /* abe_dmic_din1.abe_dmic_din1 */
253 OMAP4_IOPAD(0x114, PIN_INPUT | MUX_MODE0) /* abe_dmic_din2.abe_dmic_din2 */
254 OMAP4_IOPAD(0x116, PIN_INPUT | MUX_MODE0) /* abe_dmic_din3.abe_dmic_din3 */
255 >;
256 };
257
258 mcbsp1_pins: pinmux_mcbsp1_pins {
259 pinctrl-single,pins = <
260 OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
261 OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
262 OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
263 OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
264 >;
265 };
266
267 mcbsp2_pins: pinmux_mcbsp2_pins {
268 pinctrl-single,pins = <
269 OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
270 OMAP4_IOPAD(0x0f8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dr.abe_mcbsp2_dr */
271 OMAP4_IOPAD(0x0fa, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dx.abe_mcbsp2_dx */
272 OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
273 >;
274 };
275
276 mcspi1_pins: pinmux_mcspi1_pins {
277 pinctrl-single,pins = <
278 OMAP4_IOPAD(0x132, PIN_INPUT | MUX_MODE0) /* mcspi1_clk.mcspi1_clk */
279 OMAP4_IOPAD(0x134, PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */
280 OMAP4_IOPAD(0x136, PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */
281 OMAP4_IOPAD(0x138, PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */
282 >;
283 };
284
285 dss_hdmi_pins: pinmux_dss_hdmi_pins {
286 pinctrl-single,pins = <
287 OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0) /* hdmi_cec.hdmi_cec */
288 OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
289 OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
290 >;
291 };
292
293 tpd12s015_pins: pinmux_tpd12s015_pins {
294 pinctrl-single,pins = <
295 OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
296 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
297 OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
298 >;
299 };
300
301 i2c1_pins: pinmux_i2c1_pins {
302 pinctrl-single,pins = <
303 OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
304 OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
305 >;
306 };
307
308 i2c2_pins: pinmux_i2c2_pins {
309 pinctrl-single,pins = <
310 OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
311 OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
312 >;
313 };
314
315 i2c3_pins: pinmux_i2c3_pins {
316 pinctrl-single,pins = <
317 OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
318 OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
319 >;
320 };
321
322 i2c4_pins: pinmux_i2c4_pins {
323 pinctrl-single,pins = <
324 OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
325 OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
326 >;
327 };
328
329 /* wl12xx GPIO output for WLAN_EN */
330 wl12xx_gpio: pinmux_wl12xx_gpio {
331 pinctrl-single,pins = <
332 OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) /* gpmc_nwp.gpio_54 */
333 >;
334 };
335
336 /* wl12xx GPIO inputs and SDIO pins */
337 wl12xx_pins: pinmux_wl12xx_pins {
338 pinctrl-single,pins = <
339 OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
340 OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
341 OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
342 OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
343 OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
344 OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
345 OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
346 >;
347 };
348
349 /* gpio_48 for ENET_ENABLE */
350 enet_enable_gpio: pinmux_enet_enable_gpio {
351 pinctrl-single,pins = <
352 OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a24.gpio_48 */
353 >;
354 };
355
356 ks8851_pins: pinmux_ks8851_pins {
357 pinctrl-single,pins = <
358 /* ENET_INT */
359 OMAP4_IOPAD(0x054, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.gpio_34 */
360 /*
361 * Misterious pin which makes the ethernet working
362 * The legacy board file requested this pin on boot
363 * (ETH_KS8851_QUART) and set it to high, similarly to
364 * the ENET_ENABLE pin.
365 * We could use gpio-hog to keep it high, but let's use
366 * it as a reset GPIO for ks8851.
367 */
368 OMAP4_IOPAD(0x13a, PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.gpio_138 */
369 >;
370 };
371};
372
373&i2c1 {
374 pinctrl-names = "default";
375 pinctrl-0 = <&i2c1_pins>;
376
377 clock-frequency = <400000>;
378
379 twl: twl@48 {
380 reg = <0x48>;
381 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
382 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
383 };
384
385 twl6040: twl@4b {
386 compatible = "ti,twl6040";
387 #clock-cells = <0>;
388 reg = <0x4b>;
389
390 pinctrl-names = "default";
391 pinctrl-0 = <&twl6040_pins>;
392
393 /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
394 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
395 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
396
397 vio-supply = <&v1v8>;
398 v2v1-supply = <&v2v1>;
399 enable-active-high;
400
401 /* regulators for vibra motor */
402 vddvibl-supply = <&vbat>;
403 vddvibr-supply = <&vbat>;
404
405 vibra {
406 /* Vibra driver, motor resistance parameters */
407 ti,vibldrv-res = <8>;
408 ti,vibrdrv-res = <3>;
409 ti,viblmotor-res = <10>;
410 ti,vibrmotor-res = <10>;
411 };
412 };
413};
414
415#include "twl6030.dtsi"
416#include "twl6030_omap4.dtsi"
417
418&i2c2 {
419 pinctrl-names = "default";
420 pinctrl-0 = <&i2c2_pins>;
421
422 clock-frequency = <400000>;
423};
424
425&i2c3 {
426 pinctrl-names = "default";
427 pinctrl-0 = <&i2c3_pins>;
428
429 clock-frequency = <400000>;
430
431 /*
432 * Temperature Sensor
433 * https://www.ti.com/lit/ds/symlink/tmp105.pdf
434 */
435 tmp105@48 {
436 compatible = "ti,tmp105";
437 reg = <0x48>;
438 };
439
440 /*
441 * Ambient Light Sensor
442 * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
443 */
444 bh1780@29 {
445 compatible = "rohm,bh1780";
446 reg = <0x29>;
447 };
448};
449
450&i2c4 {
451 pinctrl-names = "default";
452 pinctrl-0 = <&i2c4_pins>;
453
454 clock-frequency = <400000>;
455
456 /*
457 * 3-Axis Digital Compass
458 * https://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
459 */
460 hmc5843@1e {
461 compatible = "honeywell,hmc5843";
462 reg = <0x1e>;
463 };
464};
465
466&mcspi1 {
467 pinctrl-names = "default";
468 pinctrl-0 = <&mcspi1_pins>;
469
470 eth@0 {
471 pinctrl-names = "default";
472 pinctrl-0 = <&ks8851_pins>;
473
474 compatible = "ks8851";
475 spi-max-frequency = <24000000>;
476 reg = <0>;
477 interrupt-parent = <&gpio2>;
478 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
479 vdd-supply = <&vdd_eth>;
480 reset-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
481 };
482};
483
484&mmc1 {
485 vmmc-supply = <&vmmc>;
486 bus-width = <8>;
487};
488
489&mmc2 {
490 vmmc-supply = <&vaux1>;
491 bus-width = <8>;
492 ti,non-removable;
493};
494
495&mmc3 {
496 status = "disabled";
497};
498
499&mmc4 {
500 status = "disabled";
501};
502
503&mmc5 {
504 pinctrl-names = "default";
505 pinctrl-0 = <&wl12xx_pins>;
506 vmmc-supply = <&wl12xx_vmmc>;
507 non-removable;
508 bus-width = <4>;
509 cap-power-off-card;
510
511 #address-cells = <1>;
512 #size-cells = <0>;
513 wlcore: wlcore@2 {
514 compatible = "ti,wl1281";
515 reg = <2>;
516 interrupt-parent = <&gpio1>;
517 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
518 ref-clock-frequency = <26000000>;
519 tcxo-clock-frequency = <26000000>;
520 };
521};
522
523&emif1 {
524 cs1-used;
525 device-handle = <&elpida_ECB240ABACN>;
526};
527
528&emif2 {
529 cs1-used;
530 device-handle = <&elpida_ECB240ABACN>;
531};
532
533&keypad {
534 keypad,num-rows = <8>;
535 keypad,num-columns = <8>;
536 linux,keymap = <0x00000012 /* KEY_E */
537 0x00010013 /* KEY_R */
538 0x00020014 /* KEY_T */
539 0x00030066 /* KEY_HOME */
540 0x0004003f /* KEY_F5 */
541 0x000500f0 /* KEY_UNKNOWN */
542 0x00060017 /* KEY_I */
543 0x0007002a /* KEY_LEFTSHIFT */
544 0x01000020 /* KEY_D*/
545 0x01010021 /* KEY_F */
546 0x01020022 /* KEY_G */
547 0x010300e7 /* KEY_SEND */
548 0x01040040 /* KEY_F6 */
549 0x010500f0 /* KEY_UNKNOWN */
550 0x01060025 /* KEY_K */
551 0x0107001c /* KEY_ENTER */
552 0x0200002d /* KEY_X */
553 0x0201002e /* KEY_C */
554 0x0202002f /* KEY_V */
555 0x0203006b /* KEY_END */
556 0x02040041 /* KEY_F7 */
557 0x020500f0 /* KEY_UNKNOWN */
558 0x02060034 /* KEY_DOT */
559 0x0207003a /* KEY_CAPSLOCK */
560 0x0300002c /* KEY_Z */
561 0x0301004e /* KEY_KPLUS */
562 0x03020030 /* KEY_B */
563 0x0303003b /* KEY_F1 */
564 0x03040042 /* KEY_F8 */
565 0x030500f0 /* KEY_UNKNOWN */
566 0x03060018 /* KEY_O */
567 0x03070039 /* KEY_SPACE */
568 0x04000011 /* KEY_W */
569 0x04010015 /* KEY_Y */
570 0x04020016 /* KEY_U */
571 0x0403003c /* KEY_F2 */
572 0x04040073 /* KEY_VOLUMEUP */
573 0x040500f0 /* KEY_UNKNOWN */
574 0x04060026 /* KEY_L */
575 0x04070069 /* KEY_LEFT */
576 0x0500001f /* KEY_S */
577 0x05010023 /* KEY_H */
578 0x05020024 /* KEY_J */
579 0x0503003d /* KEY_F3 */
580 0x05040043 /* KEY_F9 */
581 0x05050072 /* KEY_VOLUMEDOWN */
582 0x05060032 /* KEY_M */
583 0x0507006a /* KEY_RIGHT */
584 0x06000010 /* KEY_Q */
585 0x0601001e /* KEY_A */
586 0x06020031 /* KEY_N */
587 0x0603009e /* KEY_BACK */
588 0x0604000e /* KEY_BACKSPACE */
589 0x060500f0 /* KEY_UNKNOWN */
590 0x06060019 /* KEY_P */
591 0x06070067 /* KEY_UP */
592 0x07000094 /* KEY_PROG1 */
593 0x07010095 /* KEY_PROG2 */
594 0x070200ca /* KEY_PROG3 */
595 0x070300cb /* KEY_PROG4 */
596 0x0704003e /* KEY_F4 */
597 0x070500f0 /* KEY_UNKNOWN */
598 0x07060160 /* KEY_OK */
599 0x0707006c>; /* KEY_DOWN */
600 linux,input-no-autorepeat;
601};
602
603&uart2 {
604 interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
605 &omap4_pmx_core OMAP4_UART2_RX>;
606 pinctrl-names = "default";
607 pinctrl-0 = <&uart2_pins>;
608};
609
610&uart3 {
611 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
612 &omap4_pmx_core OMAP4_UART3_RX>;
613 pinctrl-names = "default";
614 pinctrl-0 = <&uart3_pins>;
615};
616
617&uart4 {
618 interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
619 &omap4_pmx_core OMAP4_UART4_RX>;
620 pinctrl-names = "default";
621 pinctrl-0 = <&uart4_pins>;
622};
623
624&mcbsp1 {
625 pinctrl-names = "default";
626 pinctrl-0 = <&mcbsp1_pins>;
627 status = "okay";
628};
629
630&mcbsp2 {
631 pinctrl-names = "default";
632 pinctrl-0 = <&mcbsp2_pins>;
633 status = "okay";
634};
635
636&dmic {
637 pinctrl-names = "default";
638 pinctrl-0 = <&dmic_pins>;
639 status = "okay";
640};
641
642&twl_usb_comparator {
643 usb-supply = <&vusb>;
644};
645
646&usb_otg_hs {
647 interface-type = <1>;
648 mode = <3>;
649 power = <50>;
650};
651
652&dss {
653 status = "okay";
654};
655
656&dsi1 {
657 status = "okay";
658 vdd-supply = <&vcxio>;
659
660 port {
661 dsi1_out_ep: endpoint {
662 remote-endpoint = <&lcd0_in>;
663 lanes = <0 1 2 3 4 5>;
664 };
665 };
666
667 lcd0: panel@0 {
668 compatible = "tpo,taal", "panel-dsi-cm";
669 reg = <0>;
670 label = "lcd0";
671
672 reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
673
674 port {
675 lcd0_in: endpoint {
676 remote-endpoint = <&dsi1_out_ep>;
677 };
678 };
679 };
680};
681
682&dsi2 {
683 status = "okay";
684 vdd-supply = <&vcxio>;
685
686 port {
687 dsi2_out_ep: endpoint {
688 remote-endpoint = <&lcd1_in>;
689 lanes = <0 1 2 3 4 5>;
690 };
691 };
692
693 lcd1: panel@0 {
694 compatible = "tpo,taal", "panel-dsi-cm";
695 reg = <0>;
696 label = "lcd1";
697
698 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
699
700 port {
701 lcd1_in: endpoint {
702 remote-endpoint = <&dsi2_out_ep>;
703 };
704 };
705 };
706};
707
708&hdmi {
709 status = "okay";
710 vdda-supply = <&vdac>;
711
712 port {
713 hdmi_out: endpoint {
714 remote-endpoint = <&tpd12s015_in>;
715 };
716 };
717};
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
4 */
5/dts-v1/;
6
7#include "omap443x.dtsi"
8#include "elpida_ecb240abacn.dtsi"
9#include "omap4-mcpdm.dtsi"
10
11/ {
12 model = "TI OMAP4 SDP board";
13 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
14
15 memory@80000000 {
16 device_type = "memory";
17 reg = <0x80000000 0x40000000>; /* 1 GB */
18 };
19
20 aliases {
21 display0 = &lcd0;
22 display1 = &lcd1;
23 display2 = &hdmi0;
24 };
25
26 vdd_eth: fixedregulator-vdd-eth {
27 pinctrl-names = "default";
28 pinctrl-0 = <&enet_enable_gpio>;
29
30 compatible = "regulator-fixed";
31 regulator-name = "VDD_ETH";
32 regulator-min-microvolt = <3300000>;
33 regulator-max-microvolt = <3300000>;
34 gpio = <&gpio2 16 GPIO_ACTIVE_HIGH>; /* gpio line 48 */
35 enable-active-high;
36 regulator-boot-on;
37 startup-delay-us = <25000>;
38 };
39
40 vbat: fixedregulator-vbat {
41 compatible = "regulator-fixed";
42 regulator-name = "VBAT";
43 regulator-min-microvolt = <3750000>;
44 regulator-max-microvolt = <3750000>;
45 regulator-boot-on;
46 };
47
48 leds {
49 compatible = "gpio-leds";
50 debug0 {
51 label = "omap4:green:debug0";
52 gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
53 };
54
55 debug1 {
56 label = "omap4:green:debug1";
57 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
58 };
59
60 debug2 {
61 label = "omap4:green:debug2";
62 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
63 };
64
65 debug3 {
66 label = "omap4:green:debug3";
67 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
68 };
69
70 debug4 {
71 label = "omap4:green:debug4";
72 gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
73 };
74
75 user1 {
76 label = "omap4:blue:user";
77 gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
78 };
79
80 user2 {
81 label = "omap4:red:user";
82 gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
83 };
84
85 user3 {
86 label = "omap4:green:user";
87 gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
88 };
89 };
90
91 pwmleds {
92 compatible = "pwm-leds";
93 kpad {
94 label = "omap4::keypad";
95 pwms = <&twl_pwm 0 7812500>;
96 max-brightness = <127>;
97 };
98
99 charging {
100 label = "omap4:green:chrg";
101 pwms = <&twl_pwmled 0 7812500>;
102 max-brightness = <255>;
103 };
104 };
105
106 backlight {
107 compatible = "pwm-backlight";
108 pwms = <&twl_pwm 1 7812500>;
109 brightness-levels = <
110 0 10 20 30 40
111 50 60 70 80 90
112 100 110 120 127
113 >;
114 default-brightness-level = <13>;
115 };
116
117 sound {
118 compatible = "ti,abe-twl6040";
119 ti,model = "SDP4430";
120
121 ti,jack-detection = <1>;
122 ti,mclk-freq = <38400000>;
123
124 ti,mcpdm = <&mcpdm>;
125 ti,dmic = <&dmic>;
126
127 ti,twl6040 = <&twl6040>;
128
129 /* Audio routing */
130 ti,audio-routing =
131 "Headset Stereophone", "HSOL",
132 "Headset Stereophone", "HSOR",
133 "Earphone Spk", "EP",
134 "Ext Spk", "HFL",
135 "Ext Spk", "HFR",
136 "Line Out", "AUXL",
137 "Line Out", "AUXR",
138 "Vibrator", "VIBRAL",
139 "Vibrator", "VIBRAR",
140 "HSMIC", "Headset Mic",
141 "Headset Mic", "Headset Mic Bias",
142 "MAINMIC", "Main Handset Mic",
143 "Main Handset Mic", "Main Mic Bias",
144 "SUBMIC", "Sub Handset Mic",
145 "Sub Handset Mic", "Main Mic Bias",
146 "AFML", "Line In",
147 "AFMR", "Line In",
148 "DMic", "Digital Mic",
149 "Digital Mic", "Digital Mic1 Bias";
150 };
151
152 /* regulator for wl12xx on sdio5 */
153 wl12xx_vmmc: wl12xx_vmmc {
154 pinctrl-names = "default";
155 pinctrl-0 = <&wl12xx_gpio>;
156 compatible = "regulator-fixed";
157 regulator-name = "vwl1271";
158 regulator-min-microvolt = <1800000>;
159 regulator-max-microvolt = <1800000>;
160 gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>;
161 startup-delay-us = <70000>;
162 enable-active-high;
163 };
164
165 tpd12s015: encoder {
166 compatible = "ti,tpd12s015";
167
168 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */
169 <&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */
170 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */
171
172 ports {
173 #address-cells = <1>;
174 #size-cells = <0>;
175
176 port@0 {
177 reg = <0>;
178
179 tpd12s015_in: endpoint {
180 remote-endpoint = <&hdmi_out>;
181 };
182 };
183
184 port@1 {
185 reg = <1>;
186
187 tpd12s015_out: endpoint {
188 remote-endpoint = <&hdmi_connector_in>;
189 };
190 };
191 };
192 };
193
194 hdmi0: connector {
195 compatible = "hdmi-connector";
196 label = "hdmi";
197
198 type = "c";
199
200 port {
201 hdmi_connector_in: endpoint {
202 remote-endpoint = <&tpd12s015_out>;
203 };
204 };
205 };
206};
207
208&omap4_pmx_core {
209 pinctrl-names = "default";
210 pinctrl-0 = <
211 &dss_hdmi_pins
212 &tpd12s015_pins
213 >;
214
215 uart2_pins: pinmux_uart2_pins {
216 pinctrl-single,pins = <
217 OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */
218 OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */
219 OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */
220 OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
221 >;
222 };
223
224 uart3_pins: pinmux_uart3_pins {
225 pinctrl-single,pins = <
226 OMAP4_IOPAD(0x140, PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */
227 OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */
228 OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
229 OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
230 >;
231 };
232
233 uart4_pins: pinmux_uart4_pins {
234 pinctrl-single,pins = <
235 OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx.uart4_rx */
236 OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx.uart4_tx */
237 >;
238 };
239
240 twl6040_pins: pinmux_twl6040_pins {
241 pinctrl-single,pins = <
242 OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
243 OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
244 >;
245 };
246
247 dmic_pins: pinmux_dmic_pins {
248 pinctrl-single,pins = <
249 OMAP4_IOPAD(0x110, PIN_OUTPUT | MUX_MODE0) /* abe_dmic_clk1.abe_dmic_clk1 */
250 OMAP4_IOPAD(0x112, PIN_INPUT | MUX_MODE0) /* abe_dmic_din1.abe_dmic_din1 */
251 OMAP4_IOPAD(0x114, PIN_INPUT | MUX_MODE0) /* abe_dmic_din2.abe_dmic_din2 */
252 OMAP4_IOPAD(0x116, PIN_INPUT | MUX_MODE0) /* abe_dmic_din3.abe_dmic_din3 */
253 >;
254 };
255
256 mcbsp1_pins: pinmux_mcbsp1_pins {
257 pinctrl-single,pins = <
258 OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
259 OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
260 OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
261 OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
262 >;
263 };
264
265 mcbsp2_pins: pinmux_mcbsp2_pins {
266 pinctrl-single,pins = <
267 OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
268 OMAP4_IOPAD(0x0f8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dr.abe_mcbsp2_dr */
269 OMAP4_IOPAD(0x0fa, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dx.abe_mcbsp2_dx */
270 OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
271 >;
272 };
273
274 mcspi1_pins: pinmux_mcspi1_pins {
275 pinctrl-single,pins = <
276 OMAP4_IOPAD(0x132, PIN_INPUT | MUX_MODE0) /* mcspi1_clk.mcspi1_clk */
277 OMAP4_IOPAD(0x134, PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */
278 OMAP4_IOPAD(0x136, PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */
279 OMAP4_IOPAD(0x138, PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */
280 >;
281 };
282
283 dss_hdmi_pins: pinmux_dss_hdmi_pins {
284 pinctrl-single,pins = <
285 OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0) /* hdmi_cec.hdmi_cec */
286 OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
287 OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
288 >;
289 };
290
291 tpd12s015_pins: pinmux_tpd12s015_pins {
292 pinctrl-single,pins = <
293 OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
294 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
295 OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
296 >;
297 };
298
299 i2c1_pins: pinmux_i2c1_pins {
300 pinctrl-single,pins = <
301 OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
302 OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
303 >;
304 };
305
306 i2c2_pins: pinmux_i2c2_pins {
307 pinctrl-single,pins = <
308 OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
309 OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
310 >;
311 };
312
313 i2c3_pins: pinmux_i2c3_pins {
314 pinctrl-single,pins = <
315 OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
316 OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
317 >;
318 };
319
320 i2c4_pins: pinmux_i2c4_pins {
321 pinctrl-single,pins = <
322 OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
323 OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
324 >;
325 };
326
327 /* wl12xx GPIO output for WLAN_EN */
328 wl12xx_gpio: pinmux_wl12xx_gpio {
329 pinctrl-single,pins = <
330 OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) /* gpmc_nwp.gpio_54 */
331 >;
332 };
333
334 /* wl12xx GPIO inputs and SDIO pins */
335 wl12xx_pins: pinmux_wl12xx_pins {
336 pinctrl-single,pins = <
337 OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
338 OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
339 OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
340 OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
341 OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
342 OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
343 OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
344 >;
345 };
346
347 /* gpio_48 for ENET_ENABLE */
348 enet_enable_gpio: pinmux_enet_enable_gpio {
349 pinctrl-single,pins = <
350 OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a24.gpio_48 */
351 >;
352 };
353
354 ks8851_pins: pinmux_ks8851_pins {
355 pinctrl-single,pins = <
356 /* ENET_INT */
357 OMAP4_IOPAD(0x054, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.gpio_34 */
358 /*
359 * Misterious pin which makes the ethernet working
360 * The legacy board file requested this pin on boot
361 * (ETH_KS8851_QUART) and set it to high, similarly to
362 * the ENET_ENABLE pin.
363 * We could use gpio-hog to keep it high, but let's use
364 * it as a reset GPIO for ks8851.
365 */
366 OMAP4_IOPAD(0x13a, PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.gpio_138 */
367 >;
368 };
369};
370
371&i2c1 {
372 pinctrl-names = "default";
373 pinctrl-0 = <&i2c1_pins>;
374
375 clock-frequency = <400000>;
376
377 twl: twl@48 {
378 reg = <0x48>;
379 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
380 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
381 };
382
383 twl6040: twl@4b {
384 compatible = "ti,twl6040";
385 #clock-cells = <0>;
386 reg = <0x4b>;
387
388 pinctrl-names = "default";
389 pinctrl-0 = <&twl6040_pins>;
390
391 /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
392 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
393 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
394
395 vio-supply = <&v1v8>;
396 v2v1-supply = <&v2v1>;
397 enable-active-high;
398
399 /* regulators for vibra motor */
400 vddvibl-supply = <&vbat>;
401 vddvibr-supply = <&vbat>;
402
403 vibra {
404 /* Vibra driver, motor resistance parameters */
405 ti,vibldrv-res = <8>;
406 ti,vibrdrv-res = <3>;
407 ti,viblmotor-res = <10>;
408 ti,vibrmotor-res = <10>;
409 };
410 };
411};
412
413#include "twl6030.dtsi"
414#include "twl6030_omap4.dtsi"
415
416&i2c2 {
417 pinctrl-names = "default";
418 pinctrl-0 = <&i2c2_pins>;
419
420 clock-frequency = <400000>;
421};
422
423&i2c3 {
424 pinctrl-names = "default";
425 pinctrl-0 = <&i2c3_pins>;
426
427 clock-frequency = <400000>;
428
429 /*
430 * Temperature Sensor
431 * http://www.ti.com/lit/ds/symlink/tmp105.pdf
432 */
433 tmp105@48 {
434 compatible = "ti,tmp105";
435 reg = <0x48>;
436 };
437
438 /*
439 * Ambient Light Sensor
440 * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
441 */
442 bh1780@29 {
443 compatible = "rohm,bh1780";
444 reg = <0x29>;
445 };
446};
447
448&i2c4 {
449 pinctrl-names = "default";
450 pinctrl-0 = <&i2c4_pins>;
451
452 clock-frequency = <400000>;
453
454 /*
455 * 3-Axis Digital Compass
456 * http://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
457 */
458 hmc5843@1e {
459 compatible = "honeywell,hmc5843";
460 reg = <0x1e>;
461 };
462};
463
464&mcspi1 {
465 pinctrl-names = "default";
466 pinctrl-0 = <&mcspi1_pins>;
467
468 eth@0 {
469 pinctrl-names = "default";
470 pinctrl-0 = <&ks8851_pins>;
471
472 compatible = "ks8851";
473 spi-max-frequency = <24000000>;
474 reg = <0>;
475 interrupt-parent = <&gpio2>;
476 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
477 vdd-supply = <&vdd_eth>;
478 reset-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
479 };
480};
481
482&mmc1 {
483 vmmc-supply = <&vmmc>;
484 bus-width = <8>;
485};
486
487&mmc2 {
488 vmmc-supply = <&vaux1>;
489 bus-width = <8>;
490 ti,non-removable;
491};
492
493&mmc3 {
494 status = "disabled";
495};
496
497&mmc4 {
498 status = "disabled";
499};
500
501&mmc5 {
502 pinctrl-names = "default";
503 pinctrl-0 = <&wl12xx_pins>;
504 vmmc-supply = <&wl12xx_vmmc>;
505 non-removable;
506 bus-width = <4>;
507 cap-power-off-card;
508
509 #address-cells = <1>;
510 #size-cells = <0>;
511 wlcore: wlcore@2 {
512 compatible = "ti,wl1281";
513 reg = <2>;
514 interrupt-parent = <&gpio1>;
515 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
516 ref-clock-frequency = <26000000>;
517 tcxo-clock-frequency = <26000000>;
518 };
519};
520
521&emif1 {
522 cs1-used;
523 device-handle = <&elpida_ECB240ABACN>;
524};
525
526&emif2 {
527 cs1-used;
528 device-handle = <&elpida_ECB240ABACN>;
529};
530
531&keypad {
532 keypad,num-rows = <8>;
533 keypad,num-columns = <8>;
534 linux,keymap = <0x00000012 /* KEY_E */
535 0x00010013 /* KEY_R */
536 0x00020014 /* KEY_T */
537 0x00030066 /* KEY_HOME */
538 0x0004003f /* KEY_F5 */
539 0x000500f0 /* KEY_UNKNOWN */
540 0x00060017 /* KEY_I */
541 0x0007002a /* KEY_LEFTSHIFT */
542 0x01000020 /* KEY_D*/
543 0x01010021 /* KEY_F */
544 0x01020022 /* KEY_G */
545 0x010300e7 /* KEY_SEND */
546 0x01040040 /* KEY_F6 */
547 0x010500f0 /* KEY_UNKNOWN */
548 0x01060025 /* KEY_K */
549 0x0107001c /* KEY_ENTER */
550 0x0200002d /* KEY_X */
551 0x0201002e /* KEY_C */
552 0x0202002f /* KEY_V */
553 0x0203006b /* KEY_END */
554 0x02040041 /* KEY_F7 */
555 0x020500f0 /* KEY_UNKNOWN */
556 0x02060034 /* KEY_DOT */
557 0x0207003a /* KEY_CAPSLOCK */
558 0x0300002c /* KEY_Z */
559 0x0301004e /* KEY_KPLUS */
560 0x03020030 /* KEY_B */
561 0x0303003b /* KEY_F1 */
562 0x03040042 /* KEY_F8 */
563 0x030500f0 /* KEY_UNKNOWN */
564 0x03060018 /* KEY_O */
565 0x03070039 /* KEY_SPACE */
566 0x04000011 /* KEY_W */
567 0x04010015 /* KEY_Y */
568 0x04020016 /* KEY_U */
569 0x0403003c /* KEY_F2 */
570 0x04040073 /* KEY_VOLUMEUP */
571 0x040500f0 /* KEY_UNKNOWN */
572 0x04060026 /* KEY_L */
573 0x04070069 /* KEY_LEFT */
574 0x0500001f /* KEY_S */
575 0x05010023 /* KEY_H */
576 0x05020024 /* KEY_J */
577 0x0503003d /* KEY_F3 */
578 0x05040043 /* KEY_F9 */
579 0x05050072 /* KEY_VOLUMEDOWN */
580 0x05060032 /* KEY_M */
581 0x0507006a /* KEY_RIGHT */
582 0x06000010 /* KEY_Q */
583 0x0601001e /* KEY_A */
584 0x06020031 /* KEY_N */
585 0x0603009e /* KEY_BACK */
586 0x0604000e /* KEY_BACKSPACE */
587 0x060500f0 /* KEY_UNKNOWN */
588 0x06060019 /* KEY_P */
589 0x06070067 /* KEY_UP */
590 0x07000094 /* KEY_PROG1 */
591 0x07010095 /* KEY_PROG2 */
592 0x070200ca /* KEY_PROG3 */
593 0x070300cb /* KEY_PROG4 */
594 0x0704003e /* KEY_F4 */
595 0x070500f0 /* KEY_UNKNOWN */
596 0x07060160 /* KEY_OK */
597 0x0707006c>; /* KEY_DOWN */
598 linux,input-no-autorepeat;
599};
600
601&uart2 {
602 interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
603 &omap4_pmx_core OMAP4_UART2_RX>;
604 pinctrl-names = "default";
605 pinctrl-0 = <&uart2_pins>;
606};
607
608&uart3 {
609 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
610 &omap4_pmx_core OMAP4_UART3_RX>;
611 pinctrl-names = "default";
612 pinctrl-0 = <&uart3_pins>;
613};
614
615&uart4 {
616 interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
617 &omap4_pmx_core OMAP4_UART4_RX>;
618 pinctrl-names = "default";
619 pinctrl-0 = <&uart4_pins>;
620};
621
622&mcbsp1 {
623 pinctrl-names = "default";
624 pinctrl-0 = <&mcbsp1_pins>;
625 status = "okay";
626};
627
628&mcbsp2 {
629 pinctrl-names = "default";
630 pinctrl-0 = <&mcbsp2_pins>;
631 status = "okay";
632};
633
634&dmic {
635 pinctrl-names = "default";
636 pinctrl-0 = <&dmic_pins>;
637 status = "okay";
638};
639
640&twl_usb_comparator {
641 usb-supply = <&vusb>;
642};
643
644&usb_otg_hs {
645 interface-type = <1>;
646 mode = <3>;
647 power = <50>;
648};
649
650&dss {
651 status = "ok";
652};
653
654&dsi1 {
655 status = "ok";
656 vdd-supply = <&vcxio>;
657
658 port {
659 dsi1_out_ep: endpoint {
660 remote-endpoint = <&lcd0_in>;
661 lanes = <0 1 2 3 4 5>;
662 };
663 };
664
665 lcd0: display {
666 compatible = "tpo,taal", "panel-dsi-cm";
667 label = "lcd0";
668
669 reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
670
671 port {
672 lcd0_in: endpoint {
673 remote-endpoint = <&dsi1_out_ep>;
674 };
675 };
676 };
677};
678
679&dsi2 {
680 status = "ok";
681 vdd-supply = <&vcxio>;
682
683 port {
684 dsi2_out_ep: endpoint {
685 remote-endpoint = <&lcd1_in>;
686 lanes = <0 1 2 3 4 5>;
687 };
688 };
689
690 lcd1: display {
691 compatible = "tpo,taal", "panel-dsi-cm";
692 label = "lcd1";
693
694 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
695
696 port {
697 lcd1_in: endpoint {
698 remote-endpoint = <&dsi2_out_ep>;
699 };
700 };
701 };
702};
703
704&hdmi {
705 status = "ok";
706 vdda-supply = <&vdac>;
707
708 port {
709 hdmi_out: endpoint {
710 remote-endpoint = <&tpd12s015_in>;
711 };
712 };
713};