1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
7 #include "omap443x.dtsi"
8 #include "elpida_ecb240abacn.dtsi"
9 #include "omap4-mcpdm.dtsi"
12 model = "TI OMAP4 SDP board";
13 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
16 device_type = "memory";
17 reg = <0x80000000 0x40000000>; /* 1 GB */
26 vdd_eth: fixedregulator-vdd-eth {
27 pinctrl-names = "default";
28 pinctrl-0 = <&enet_enable_gpio>;
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 */
37 startup-delay-us = <25000>;
40 vbat: fixedregulator-vbat {
41 compatible = "regulator-fixed";
42 regulator-name = "VBAT";
43 regulator-min-microvolt = <3750000>;
44 regulator-max-microvolt = <3750000>;
49 compatible = "gpio-leds";
52 label = "omap4:green:debug0";
53 gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
57 label = "omap4:green:debug1";
58 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
62 label = "omap4:green:debug2";
63 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
67 label = "omap4:green:debug3";
68 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
72 label = "omap4:green:debug4";
73 gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
77 label = "omap4:blue:user";
78 gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
82 label = "omap4:red:user";
83 gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
87 label = "omap4:green:user";
88 gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
93 compatible = "pwm-leds";
96 label = "omap4::keypad";
97 pwms = <&twl_pwm 0 7812500>;
98 max-brightness = <127>;
102 label = "omap4:green:chrg";
103 pwms = <&twl_pwmled 0 7812500>;
104 max-brightness = <255>;
109 compatible = "pwm-backlight";
110 pwms = <&twl_pwm 1 7812500>;
111 brightness-levels = <
116 default-brightness-level = <13>;
120 compatible = "ti,abe-twl6040";
121 ti,model = "SDP4430";
123 ti,jack-detection = <1>;
124 ti,mclk-freq = <38400000>;
129 ti,twl6040 = <&twl6040>;
133 "Headset Stereophone", "HSOL",
134 "Headset Stereophone", "HSOR",
135 "Earphone Spk", "EP",
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",
150 "DMic", "Digital Mic",
151 "Digital Mic", "Digital Mic1 Bias";
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>;
168 compatible = "ti,tpd12s015";
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 */
175 #address-cells = <1>;
181 tpd12s015_in: endpoint {
182 remote-endpoint = <&hdmi_out>;
189 tpd12s015_out: endpoint {
190 remote-endpoint = <&hdmi_connector_in>;
197 compatible = "hdmi-connector";
203 hdmi_connector_in: endpoint {
204 remote-endpoint = <&tpd12s015_out>;
211 pinctrl-names = "default";
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
356 ks8851_pins: pinmux_ks8851_pins {
357 pinctrl-single,pins = <
359 OMAP4_IOPAD(0x054, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.gpio_34 */
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.
368 OMAP4_IOPAD(0x13a, PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.gpio_138 */
374 pinctrl-names = "default";
375 pinctrl-0 = <&i2c1_pins>;
377 clock-frequency = <400000>;
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 */
386 compatible = "ti,twl6040";
390 pinctrl-names = "default";
391 pinctrl-0 = <&twl6040_pins>;
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 */
397 vio-supply = <&v1v8>;
398 v2v1-supply = <&v2v1>;
401 /* regulators for vibra motor */
402 vddvibl-supply = <&vbat>;
403 vddvibr-supply = <&vbat>;
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>;
415 #include "twl6030.dtsi"
416 #include "twl6030_omap4.dtsi"
419 pinctrl-names = "default";
420 pinctrl-0 = <&i2c2_pins>;
422 clock-frequency = <400000>;
426 pinctrl-names = "default";
427 pinctrl-0 = <&i2c3_pins>;
429 clock-frequency = <400000>;
433 * https://www.ti.com/lit/ds/symlink/tmp105.pdf
436 compatible = "ti,tmp105";
441 * Ambient Light Sensor
442 * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
445 compatible = "rohm,bh1780";
451 pinctrl-names = "default";
452 pinctrl-0 = <&i2c4_pins>;
454 clock-frequency = <400000>;
457 * 3-Axis Digital Compass
458 * https://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
461 compatible = "honeywell,hmc5843";
467 pinctrl-names = "default";
468 pinctrl-0 = <&mcspi1_pins>;
471 pinctrl-names = "default";
472 pinctrl-0 = <&ks8851_pins>;
474 compatible = "ks8851";
475 spi-max-frequency = <24000000>;
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>;
485 vmmc-supply = <&vmmc>;
490 vmmc-supply = <&vaux1>;
504 pinctrl-names = "default";
505 pinctrl-0 = <&wl12xx_pins>;
506 vmmc-supply = <&wl12xx_vmmc>;
511 #address-cells = <1>;
514 compatible = "ti,wl1281";
516 interrupt-parent = <&gpio1>;
517 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
518 ref-clock-frequency = <26000000>;
519 tcxo-clock-frequency = <26000000>;
525 device-handle = <&elpida_ECB240ABACN>;
530 device-handle = <&elpida_ECB240ABACN>;
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;
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>;
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>;
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>;
625 pinctrl-names = "default";
626 pinctrl-0 = <&mcbsp1_pins>;
631 pinctrl-names = "default";
632 pinctrl-0 = <&mcbsp2_pins>;
637 pinctrl-names = "default";
638 pinctrl-0 = <&dmic_pins>;
642 &twl_usb_comparator {
643 usb-supply = <&vusb>;
647 interface-type = <1>;
658 vdd-supply = <&vcxio>;
661 dsi1_out_ep: endpoint {
662 remote-endpoint = <&lcd0_in>;
663 lanes = <0 1 2 3 4 5>;
668 compatible = "tpo,taal", "panel-dsi-cm";
672 reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
676 remote-endpoint = <&dsi1_out_ep>;
684 vdd-supply = <&vcxio>;
687 dsi2_out_ep: endpoint {
688 remote-endpoint = <&lcd1_in>;
689 lanes = <0 1 2 3 4 5>;
694 compatible = "tpo,taal", "panel-dsi-cm";
698 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
702 remote-endpoint = <&dsi2_out_ep>;
710 vdda-supply = <&vdac>;
714 remote-endpoint = <&tpd12s015_in>;