1/* 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License version 2 as 4 * published by the Free Software Foundation. 5 */ 6/dts-v1/; 7 8#include <dt-bindings/input/input.h> 9#include "omap443x.dtsi" 10#include "motorola-cpcap-mapphone.dtsi" 11 12/ { 13 model = "Motorola Droid 4 XT894"; 14 compatible = "motorola,droid4", "ti,omap4430", "ti,omap4"; 15 16 chosen { 17 stdout-path = &uart3; 18 }; 19 20 aliases { 21 display0 = &lcd0; 22 display1 = &hdmi0; 23 }; 24 25 /* 26 * We seem to have only 1021 MB accessible, 1021 - 1022 is locked, 27 * then 1023 - 1024 seems to contain mbm. 28 */ 29 memory { 30 device_type = "memory"; 31 reg = <0x80000000 0x3fd00000>; /* 1021 MB */ 32 }; 33 34 /* Poweroff GPIO probably connected to CPCAP */ 35 gpio-poweroff { 36 compatible = "gpio-poweroff"; 37 pinctrl-0 = <&poweroff_gpio>; 38 pinctrl-names = "default"; 39 gpios = <&gpio2 18 GPIO_ACTIVE_LOW>; /* gpio50 */ 40 }; 41 42 hdmi0: connector { 43 compatible = "hdmi-connector"; 44 pinctrl-0 = <&hdmi_hpd_gpio>; 45 pinctrl-names = "default"; 46 label = "hdmi"; 47 type = "d"; 48 49 hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; /* gpio63 */ 50 51 port { 52 hdmi_connector_in: endpoint { 53 remote-endpoint = <&hdmi_out>; 54 }; 55 }; 56 }; 57 58 /* 59 * HDMI 5V regulator probably sourced from battery. Let's keep 60 * keep this as always enabled for HDMI to work until we've 61 * figured what the encoder chip is. 62 */ 63 hdmi_regulator: regulator-hdmi { 64 compatible = "regulator-fixed"; 65 regulator-name = "hdmi"; 66 regulator-min-microvolt = <5000000>; 67 regulator-max-microvolt = <5000000>; 68 gpio = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio59 */ 69 enable-active-high; 70 regulator-always-on; 71 }; 72 73 /* FS USB Host PHY on port 1 for mdm6600 */ 74 fsusb1_phy: usb-phy@1 { 75 compatible = "motorola,mapphone-mdm6600"; 76 pinctrl-0 = <&usb_mdm6600_pins>; 77 pinctrl-names = "default"; 78 enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; /* gpio_95 */ 79 power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54 */ 80 reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; /* gpio_49 */ 81 /* mode: gpio_148 gpio_149 */ 82 motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>, 83 <&gpio5 21 GPIO_ACTIVE_HIGH>; 84 /* cmd: gpio_103 gpio_104 gpio_142 */ 85 motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>, 86 <&gpio4 8 GPIO_ACTIVE_HIGH>, 87 <&gpio5 14 GPIO_ACTIVE_HIGH>; 88 /* status: gpio_52 gpio_53 gpio_55 */ 89 motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>, 90 <&gpio2 21 GPIO_ACTIVE_HIGH>, 91 <&gpio2 23 GPIO_ACTIVE_HIGH>; 92 #phy-cells = <0>; 93 }; 94 95 /* HS USB host TLL nop-phy on port 2 for w3glte */ 96 hsusb2_phy: usb-phy@2 { 97 compatible = "usb-nop-xceiv"; 98 #phy-cells = <0>; 99 }; 100 101 /* LCD regulator from sw5 source */ 102 lcd_regulator: regulator-lcd { 103 compatible = "regulator-fixed"; 104 regulator-name = "lcd"; 105 regulator-min-microvolt = <5050000>; 106 regulator-max-microvolt = <5050000>; 107 gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>; /* gpio96 */ 108 enable-active-high; 109 vin-supply = <&sw5>; 110 }; 111 112 /* This is probably coming straight from the battery.. */ 113 wl12xx_vmmc: regulator-wl12xx { 114 compatible = "regulator-fixed"; 115 regulator-name = "vwl1271"; 116 regulator-min-microvolt = <1650000>; 117 regulator-max-microvolt = <1650000>; 118 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; /* gpio94 */ 119 startup-delay-us = <70000>; 120 enable-active-high; 121 }; 122 123 gpio_keys { 124 compatible = "gpio-keys"; 125 126 volume_down { 127 label = "Volume Down"; 128 gpios = <&gpio5 26 GPIO_ACTIVE_LOW>; /* gpio154 */ 129 linux,code = <KEY_VOLUMEDOWN>; 130 linux,can-disable; 131 /* Value above 7.95ms for no GPIO hardware debounce */ 132 debounce-interval = <10>; 133 }; 134 135 slider { 136 label = "Keypad Slide"; 137 gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */ 138 linux,input-type = <EV_SW>; 139 linux,code = <SW_KEYPAD_SLIDE>; 140 linux,can-disable; 141 /* Value above 7.95ms for no GPIO hardware debounce */ 142 debounce-interval = <10>; 143 }; 144 }; 145 146 soundcard { 147 compatible = "audio-graph-card"; 148 label = "Droid 4 Audio"; 149 150 simple-graph-card,widgets = 151 "Speaker", "Earpiece", 152 "Speaker", "Loudspeaker", 153 "Headphone", "Headphone Jack", 154 "Microphone", "Internal Mic"; 155 156 simple-graph-card,routing = 157 "Earpiece", "EP", 158 "Loudspeaker", "SPKR", 159 "Headphone Jack", "HSL", 160 "Headphone Jack", "HSR", 161 "MICR", "Internal Mic"; 162 163 dais = <&mcbsp2_port>, <&mcbsp3_port>; 164 }; 165 166 pwm8: dmtimer-pwm-8 { 167 pinctrl-names = "default"; 168 pinctrl-0 = <&vibrator_direction_pin>; 169 170 compatible = "ti,omap-dmtimer-pwm"; 171 #pwm-cells = <3>; 172 ti,timers = <&timer8>; 173 ti,clock-source = <0x01>; 174 }; 175 176 pwm9: dmtimer-pwm-9 { 177 pinctrl-names = "default"; 178 pinctrl-0 = <&vibrator_enable_pin>; 179 180 compatible = "ti,omap-dmtimer-pwm"; 181 #pwm-cells = <3>; 182 ti,timers = <&timer9>; 183 ti,clock-source = <0x01>; 184 }; 185 186 vibrator { 187 compatible = "pwm-vibrator"; 188 pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>; 189 pwm-names = "enable", "direction"; 190 direction-duty-cycle-ns = <10000000>; 191 }; 192}; 193 194&dss { 195 status = "okay"; 196}; 197 198&dsi1 { 199 status = "okay"; 200 vdd-supply = <&vcsi>; 201 202 port { 203 dsi1_out_ep: endpoint { 204 remote-endpoint = <&lcd0_in>; 205 lanes = <0 1 2 3 4 5>; 206 }; 207 }; 208 209 lcd0: display { 210 compatible = "panel-dsi-cm"; 211 label = "lcd0"; 212 vddi-supply = <&lcd_regulator>; 213 reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */ 214 215 width-mm = <50>; 216 height-mm = <89>; 217 backlight = <&lcd_backlight>; 218 219 panel-timing { 220 clock-frequency = <0>; /* Calculated by dsi */ 221 222 hback-porch = <2>; 223 hactive = <540>; 224 hfront-porch = <0>; 225 hsync-len = <2>; 226 227 vback-porch = <1>; 228 vactive = <960>; 229 vfront-porch = <0>; 230 vsync-len = <1>; 231 232 hsync-active = <0>; 233 vsync-active = <0>; 234 de-active = <1>; 235 pixelclk-active = <1>; 236 }; 237 238 port { 239 lcd0_in: endpoint { 240 remote-endpoint = <&dsi1_out_ep>; 241 }; 242 }; 243 }; 244}; 245 246&hdmi { 247 status = "okay"; 248 pinctrl-0 = <&dss_hdmi_pins>; 249 pinctrl-names = "default"; 250 vdda-supply = <&vdac>; 251 252 port { 253 hdmi_out: endpoint { 254 remote-endpoint = <&hdmi_connector_in>; 255 lanes = <1 0 3 2 5 4 7 6>; 256 }; 257 }; 258}; 259 260&i2c1 { 261 tmp105@48 { 262 compatible = "ti,tmp105"; 263 reg = <0x48>; 264 pinctrl-0 = <&tmp105_irq>; 265 pinctrl-names = "default"; 266 /* kpd_row0.gpio_178 */ 267 interrupts-extended = <&gpio6 18 IRQ_TYPE_EDGE_FALLING 268 &omap4_pmx_core 0x14e>; 269 interrupt-names = "irq", "wakeup"; 270 wakeup-source; 271 }; 272}; 273 274&keypad { 275 keypad,num-rows = <8>; 276 keypad,num-columns = <8>; 277 linux,keymap = < 278 279 /* Row 1 */ 280 MATRIX_KEY(0, 2, KEY_1) 281 MATRIX_KEY(0, 6, KEY_2) 282 MATRIX_KEY(2, 3, KEY_3) 283 MATRIX_KEY(0, 7, KEY_4) 284 MATRIX_KEY(0, 4, KEY_5) 285 MATRIX_KEY(5, 5, KEY_6) 286 MATRIX_KEY(0, 1, KEY_7) 287 MATRIX_KEY(0, 5, KEY_8) 288 MATRIX_KEY(0, 0, KEY_9) 289 MATRIX_KEY(1, 6, KEY_0) 290 291 /* Row 2 */ 292 MATRIX_KEY(3, 4, KEY_APOSTROPHE) 293 MATRIX_KEY(7, 6, KEY_Q) 294 MATRIX_KEY(7, 7, KEY_W) 295 MATRIX_KEY(7, 2, KEY_E) 296 MATRIX_KEY(1, 0, KEY_R) 297 MATRIX_KEY(4, 4, KEY_T) 298 MATRIX_KEY(1, 2, KEY_Y) 299 MATRIX_KEY(6, 7, KEY_U) 300 MATRIX_KEY(2, 2, KEY_I) 301 MATRIX_KEY(5, 6, KEY_O) 302 MATRIX_KEY(3, 7, KEY_P) 303 MATRIX_KEY(6, 5, KEY_BACKSPACE) 304 305 /* Row 3 */ 306 MATRIX_KEY(5, 4, KEY_TAB) 307 MATRIX_KEY(5, 7, KEY_A) 308 MATRIX_KEY(2, 7, KEY_S) 309 MATRIX_KEY(7, 0, KEY_D) 310 MATRIX_KEY(2, 6, KEY_F) 311 MATRIX_KEY(6, 2, KEY_G) 312 MATRIX_KEY(6, 6, KEY_H) 313 MATRIX_KEY(1, 4, KEY_J) 314 MATRIX_KEY(3, 1, KEY_K) 315 MATRIX_KEY(2, 1, KEY_L) 316 MATRIX_KEY(4, 6, KEY_ENTER) 317 318 /* Row 4 */ 319 MATRIX_KEY(3, 6, KEY_LEFTSHIFT) /* KEY_CAPSLOCK */ 320 MATRIX_KEY(6, 1, KEY_Z) 321 MATRIX_KEY(7, 4, KEY_X) 322 MATRIX_KEY(5, 1, KEY_C) 323 MATRIX_KEY(1, 7, KEY_V) 324 MATRIX_KEY(2, 4, KEY_B) 325 MATRIX_KEY(4, 1, KEY_N) 326 MATRIX_KEY(1, 1, KEY_M) 327 MATRIX_KEY(3, 5, KEY_COMMA) 328 MATRIX_KEY(5, 2, KEY_DOT) 329 MATRIX_KEY(6, 3, KEY_UP) 330 MATRIX_KEY(7, 3, KEY_OK) 331 332 /* Row 5 */ 333 MATRIX_KEY(2, 5, KEY_LEFTCTRL) /* KEY_LEFTSHIFT */ 334 MATRIX_KEY(4, 5, KEY_LEFTALT) /* SYM */ 335 MATRIX_KEY(6, 0, KEY_MINUS) 336 MATRIX_KEY(4, 7, KEY_EQUAL) 337 MATRIX_KEY(1, 5, KEY_SPACE) 338 MATRIX_KEY(3, 2, KEY_SLASH) 339 MATRIX_KEY(4, 3, KEY_LEFT) 340 MATRIX_KEY(5, 3, KEY_DOWN) 341 MATRIX_KEY(3, 3, KEY_RIGHT) 342 343 /* Side buttons, KEY_VOLUMEDOWN and KEY_PWER are on CPCAP? */ 344 MATRIX_KEY(5, 0, KEY_VOLUMEUP) 345 >; 346}; 347 348&mmc1 { 349 vmmc-supply = <&vwlan2>; 350 bus-width = <4>; 351 cd-gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* gpio176 */ 352}; 353 354&mmc2 { 355 vmmc-supply = <&vsdio>; 356 bus-width = <8>; 357 ti,non-removable; 358}; 359 360&mmc3 { 361 vmmc-supply = <&wl12xx_vmmc>; 362 interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 363 &omap4_pmx_core 0xde>; 364 365 non-removable; 366 bus-width = <4>; 367 cap-power-off-card; 368 369 #address-cells = <1>; 370 #size-cells = <0>; 371 wlcore: wlcore@2 { 372 compatible = "ti,wl1285", "ti,wl1283"; 373 reg = <2>; 374 interrupt-parent = <&gpio4>; 375 interrupts = <4 IRQ_TYPE_EDGE_RISING>; /* gpio100 */ 376 ref-clock-frequency = <26000000>; 377 tcxo-clock-frequency = <26000000>; 378 }; 379}; 380 381&i2c1 { 382 lm3532@38 { 383 compatible = "ti,lm3532"; 384 reg = <0x38>; 385 386 enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; 387 388 lcd_backlight: backlight { 389 compatible = "ti,lm3532-backlight"; 390 391 lcd { 392 led-sources = <0 1 2>; 393 ramp-up-msec = <1>; 394 ramp-down-msec = <0>; 395 }; 396 }; 397 }; 398}; 399 400&i2c2 { 401 touchscreen@4a { 402 compatible = "atmel,maxtouch"; 403 reg = <0x4a>; 404 pinctrl-names = "default"; 405 pinctrl-0 = <&touchscreen_pins>; 406 407 reset-gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; /* gpio173 */ 408 409 /* gpio_183 with sys_nirq2 pad as wakeup */ 410 interrupts-extended = <&gpio6 23 IRQ_TYPE_EDGE_FALLING>, 411 <&omap4_pmx_core 0x160>; 412 interrupt-names = "irq", "wakeup"; 413 wakeup-source; 414 }; 415 416 isl29030@44 { 417 compatible = "isil,isl29030"; 418 reg = <0x44>; 419 420 pinctrl-names = "default"; 421 pinctrl-0 = <&als_proximity_pins>; 422 423 interrupt-parent = <&gpio6>; 424 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; /* gpio177 */ 425 }; 426}; 427 428&omap4_pmx_core { 429 430 /* hdmi_hpd.gpio_63 */ 431 hdmi_hpd_gpio: pinmux_hdmi_hpd_pins { 432 pinctrl-single,pins = < 433 OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3) 434 >; 435 }; 436 437 /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */ 438 dss_hdmi_pins: pinmux_dss_hdmi_pins { 439 pinctrl-single,pins = < 440 OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0) 441 OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0) 442 OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0) 443 >; 444 }; 445 446 /* gpmc_ncs0.gpio_50 */ 447 poweroff_gpio: pinmux_poweroff_pins { 448 pinctrl-single,pins = < 449 OMAP4_IOPAD(0x074, PIN_OUTPUT_PULLUP | MUX_MODE3) 450 >; 451 }; 452 453 /* kpd_row0.gpio_178 */ 454 tmp105_irq: pinmux_tmp105_irq { 455 pinctrl-single,pins = < 456 OMAP4_IOPAD(0x18e, PIN_INPUT_PULLUP | MUX_MODE3) 457 >; 458 }; 459 460 usb_gpio_mux_sel1: pinmux_usb_gpio_mux_sel1_pins { 461 /* gpio_60 */ 462 pinctrl-single,pins = < 463 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) 464 >; 465 }; 466 467 touchscreen_pins: pinmux_touchscreen_pins { 468 pinctrl-single,pins = < 469 OMAP4_IOPAD(0x180, PIN_OUTPUT | MUX_MODE3) 470 OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3) 471 >; 472 }; 473 474 als_proximity_pins: pinmux_als_proximity_pins { 475 pinctrl-single,pins = < 476 OMAP4_IOPAD(0x18c, PIN_INPUT_PULLUP | MUX_MODE3) 477 >; 478 }; 479 480 usb_mdm6600_pins: pinmux_usb_mdm6600_pins { 481 pinctrl-single,pins = < 482 /* enable 0x4a1000d8 usbb1_ulpitll_dat7.gpio_95 ag16 */ 483 OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3) 484 485 /* power 0x4a10007c gpmc_nwp.gpio_54 c25 */ 486 OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) 487 488 /* reset 0x4a100072 gpmc_a25.gpio_49 d20 */ 489 OMAP4_IOPAD(0x072, PIN_OUTPUT | MUX_MODE3) 490 491 /* mode0/bpwake 0x4a10014e sdmmc5_dat1.gpio_148 af4 */ 492 OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3) 493 494 /* mode1/apwake 0x4a100150 sdmmc5_dat2.gpio_149 ag3 */ 495 OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3) 496 497 /* status0 0x4a10007e gpmc_clk.gpio_55 b22 */ 498 OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3) 499 500 /* status1 0x4a10007a gpmc_ncs3.gpio_53 c22 */ 501 OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) 502 503 /* status2 0x4a100078 gpmc_ncs2.gpio_52 d21 */ 504 OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3) 505 506 /* cmd0 0x4a100094 gpmc_ncs6.gpio_103 c24 */ 507 OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3) 508 509 /* cmd1 0x4a100096 gpmc_ncs7.gpio_104 d24 */ 510 OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3) 511 512 /* cmd2 0x4a100142 uart3_rts_sd.gpio_142 f28 */ 513 OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) 514 >; 515 }; 516 517 usb_ulpi_pins: pinmux_usb_ulpi_pins { 518 pinctrl-single,pins = < 519 OMAP4_IOPAD(0x196, MUX_MODE7) 520 OMAP4_IOPAD(0x198, MUX_MODE7) 521 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE0) 522 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0) 523 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE0) 524 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE0) 525 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE0) 526 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE0) 527 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE0) 528 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE0) 529 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE0) 530 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE0) 531 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE0) 532 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE0) 533 >; 534 }; 535 536 /* usb0_otg_dp and usb0_otg_dm */ 537 usb_utmi_pins: pinmux_usb_utmi_pins { 538 pinctrl-single,pins = < 539 OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0) 540 OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0) 541 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7) 542 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7) 543 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7) 544 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7) 545 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE7) 546 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE7) 547 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7) 548 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7) 549 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7) 550 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7) 551 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7) 552 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7) 553 >; 554 }; 555 556 /* 557 * Note that the v3.0.8 stock userspace dynamically remuxes uart1 558 * rts pin probably for PM purposes to PIN_INPUT_PULLUP | MUX_MODE7 559 * when not used. If needed, we can add rts pin remux later based 560 * on power measurements. 561 */ 562 uart1_pins: pinmux_uart1_pins { 563 pinctrl-single,pins = < 564 /* 0x4a10013c mcspi1_cs2.uart1_cts ag23 */ 565 OMAP4_IOPAD(0x13c, PIN_INPUT_PULLUP | MUX_MODE1) 566 567 /* 0x4a10013e mcspi1_cs3.uart1_rts ah23 */ 568 OMAP4_IOPAD(0x13e, MUX_MODE1) 569 570 /* 0x4a100140 uart3_cts_rctx.uart1_tx f27 */ 571 OMAP4_IOPAD(0x140, PIN_OUTPUT | MUX_MODE1) 572 573 /* 0x4a1001ca dpm_emu14.uart1_rx aa3 */ 574 OMAP4_IOPAD(0x1ca, PIN_INPUT_PULLUP | MUX_MODE2) 575 >; 576 }; 577 578 /* uart3_tx_irtx and uart3_rx_irrx */ 579 uart3_pins: pinmux_uart3_pins { 580 pinctrl-single,pins = < 581 OMAP4_IOPAD(0x196, MUX_MODE7) 582 OMAP4_IOPAD(0x198, MUX_MODE7) 583 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7) 584 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7) 585 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7) 586 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7) 587 OMAP4_IOPAD(0x1ba, MUX_MODE2) 588 OMAP4_IOPAD(0x1bc, PIN_INPUT | MUX_MODE2) 589 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7) 590 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7) 591 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7) 592 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7) 593 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7) 594 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7) 595 >; 596 }; 597 598 uart4_pins: pinmux_uart4_pins { 599 pinctrl-single,pins = < 600 OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx */ 601 OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx */ 602 OMAP4_IOPAD(0x110, PIN_INPUT_PULLUP | MUX_MODE5) /* uart4_cts */ 603 OMAP4_IOPAD(0x112, PIN_OUTPUT_PULLUP | MUX_MODE5) /* uart4_rts */ 604 >; 605 }; 606 607 mcbsp2_pins: pinmux_mcbsp2_pins { 608 pinctrl-single,pins = < 609 OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx */ 610 OMAP4_IOPAD(0x0f8, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_dr */ 611 OMAP4_IOPAD(0x0fa, PIN_OUTPUT | MUX_MODE0) /* abe_mcbsp2_dx */ 612 OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx */ 613 >; 614 }; 615 616 mcbsp3_pins: pinmux_mcbsp3_pins { 617 pinctrl-single,pins = < 618 OMAP4_IOPAD(0x106, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_dr */ 619 OMAP4_IOPAD(0x108, PIN_OUTPUT | MUX_MODE1) /* abe_mcbsp3_dx */ 620 OMAP4_IOPAD(0x10a, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_clkx */ 621 OMAP4_IOPAD(0x10c, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_fsx */ 622 >; 623 }; 624 625 vibrator_direction_pin: pinmux_vibrator_direction_pin { 626 pinctrl-single,pins = < 627 OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */ 628 >; 629 }; 630 631 vibrator_enable_pin: pinmux_vibrator_enable_pin { 632 pinctrl-single,pins = < 633 OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */ 634 >; 635 }; 636}; 637 638&omap4_pmx_wkup { 639 usb_gpio_mux_sel2: pinmux_usb_gpio_mux_sel2_pins { 640 /* gpio_wk0 */ 641 pinctrl-single,pins = < 642 OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3) 643 >; 644 }; 645}; 646 647/* Configure pwm clock source for timers 8 & 9 */ 648&timer8 { 649 assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>; 650 assigned-clock-parents = <&sys_clkin_ck>; 651}; 652 653&timer9 { 654 assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>; 655 assigned-clock-parents = <&sys_clkin_ck>; 656}; 657 658/* 659 * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for 660 * uart1 wakeirq. 661 */ 662&uart1 { 663 pinctrl-names = "default"; 664 pinctrl-0 = <&uart1_pins>; 665 interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH 666 &omap4_pmx_core 0xfc>; 667}; 668 669&uart3 { 670 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH 671 &omap4_pmx_core 0x17c>; 672}; 673 674&uart4 { 675 pinctrl-names = "default"; 676 pinctrl-0 = <&uart4_pins>; 677 678 bluetooth { 679 compatible = "ti,wl1285-st"; 680 enable-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; /* gpio 174 */ 681 max-speed = <3686400>; 682 }; 683}; 684 685&usbhsohci { 686 phys = <&fsusb1_phy>; 687 phy-names = "usb"; 688}; 689 690&usbhsehci { 691 phys = <&hsusb2_phy>; 692}; 693 694&usbhshost { 695 port1-mode = "ohci-phy-4pin-dpdm"; 696 port2-mode = "ehci-tll"; 697}; 698 699/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */ 700&usb_otg_hs { 701 interface-type = <1>; 702 mode = <3>; 703 power = <50>; 704}; 705 706&i2c4 { 707 ak8975: magnetometer@c { 708 compatible = "asahi-kasei,ak8975"; 709 reg = <0x0c>; 710 711 vdd-supply = <&vhvio>; 712 713 interrupt-parent = <&gpio6>; 714 interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */ 715 716 rotation-matrix = "-1", "0", "0", 717 "0", "1", "0", 718 "0", "0", "-1"; 719 720 }; 721 722 lis3dh: accelerometer@18 { 723 compatible = "st,lis3dh-accel"; 724 reg = <0x18>; 725 726 vdd-supply = <&vhvio>; 727 728 interrupt-parent = <&gpio2>; 729 interrupts = <2 IRQ_TYPE_EDGE_BOTH>; /* gpio34 */ 730 731 rotation-matrix = "0", "-1", "0", 732 "1", "0", "0", 733 "0", "0", "1"; 734 }; 735}; 736 737&mcbsp2 { 738 #sound-dai-cells = <0>; 739 pinctrl-names = "default"; 740 pinctrl-0 = <&mcbsp2_pins>; 741 status = "okay"; 742 743 mcbsp2_port: port { 744 cpu_dai2: endpoint { 745 dai-format = "i2s"; 746 remote-endpoint = <&cpcap_audio_codec0>; 747 frame-master = <&cpcap_audio_codec0>; 748 bitclock-master = <&cpcap_audio_codec0>; 749 }; 750 }; 751}; 752 753&mcbsp3 { 754 #sound-dai-cells = <0>; 755 pinctrl-names = "default"; 756 pinctrl-0 = <&mcbsp3_pins>; 757 status = "okay"; 758 759 mcbsp3_port: port { 760 cpu_dai3: endpoint { 761 dai-format = "dsp_a"; 762 frame-master = <&cpcap_audio_codec1>; 763 bitclock-master = <&cpcap_audio_codec1>; 764 remote-endpoint = <&cpcap_audio_codec1>; 765 }; 766 }; 767}; 768 769&cpcap_audio_codec0 { 770 remote-endpoint = <&cpu_dai2>; 771}; 772 773&cpcap_audio_codec1 { 774 remote-endpoint = <&cpu_dai3>; 775}; 776