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