1/* 2 * Copyright (C) 2015 3 * Nikolaus Schaller <hns@goldelico.com> 4 * 5 * Common device tree include for OpenPandora devices. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12#include <dt-bindings/input/input.h> 13 14/ { 15 cpus { 16 cpu@0 { 17 cpu0-supply = <&vcc>; 18 }; 19 }; 20 21 memory@80000000 { 22 device_type = "memory"; 23 reg = <0x80000000 0x20000000>; /* 512 MB */ 24 }; 25 26 aliases { 27 display0 = &lcd; 28 }; 29 30 /* fixed 26MHz oscillator */ 31 hfclk_26m: oscillator { 32 #clock-cells = <0>; 33 compatible = "fixed-clock"; 34 clock-frequency = <26000000>; 35 }; 36 37 tv: connector { 38 compatible = "connector-analog-tv"; 39 label = "tv"; 40 41 port { 42 tv_connector_in: endpoint { 43 remote-endpoint = <&venc_out>; 44 }; 45 }; 46 }; 47 48 gpio-leds { 49 50 compatible = "gpio-leds"; 51 52 pinctrl-names = "default"; 53 pinctrl-0 = <&led_pins>; 54 55 led1 { 56 label = "pandora::sd1"; 57 gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>; /* GPIO_128 */ 58 linux,default-trigger = "mmc0"; 59 default-state = "off"; 60 }; 61 62 led2 { 63 label = "pandora::sd2"; 64 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; /* GPIO_129 */ 65 linux,default-trigger = "mmc1"; 66 default-state = "off"; 67 }; 68 69 led3 { 70 label = "pandora::bluetooth"; 71 gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>; /* GPIO_158 */ 72 linux,default-trigger = "heartbeat"; 73 default-state = "off"; 74 }; 75 76 led4 { 77 label = "pandora::wifi"; 78 gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>; /* GPIO_159 */ 79 linux,default-trigger = "mmc2"; 80 default-state = "off"; 81 }; 82 }; 83 84 gpio-keys { 85 compatible = "gpio-keys"; 86 87 pinctrl-names = "default"; 88 pinctrl-0 = <&button_pins>; 89 90 up-button { 91 label = "up"; 92 linux,code = <KEY_UP>; 93 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* GPIO_110 */ 94 wakeup-source; 95 }; 96 97 down-button { 98 label = "down"; 99 linux,code = <KEY_DOWN>; 100 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* GPIO_103 */ 101 wakeup-source; 102 }; 103 104 left-button { 105 label = "left"; 106 linux,code = <KEY_LEFT>; 107 gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; /* GPIO_96 */ 108 wakeup-source; 109 }; 110 111 right-button { 112 label = "right"; 113 linux,code = <KEY_RIGHT>; 114 gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; /* GPIO_98 */ 115 wakeup-source; 116 }; 117 118 pageup-button { 119 label = "game 1"; 120 linux,code = <KEY_PAGEUP>; 121 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* GPIO_109 */ 122 wakeup-source; 123 }; 124 125 pagedown-button { 126 label = "game 3"; 127 linux,code = <KEY_PAGEDOWN>; 128 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* GPIO_106 */ 129 wakeup-source; 130 }; 131 132 home-button { 133 label = "game 4"; 134 linux,code = <KEY_HOME>; 135 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* GPIO_101 */ 136 wakeup-source; 137 }; 138 139 end-button { 140 label = "game 2"; 141 linux,code = <KEY_END>; 142 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* GPIO_111 */ 143 wakeup-source; 144 }; 145 146 right-shift { 147 label = "l"; 148 linux,code = <KEY_RIGHTSHIFT>; 149 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* GPIO_102 */ 150 wakeup-source; 151 }; 152 153 kp-plus { 154 label = "l2"; 155 linux,code = <KEY_KPPLUS>; 156 gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; /* GPIO_97 */ 157 wakeup-source; 158 }; 159 160 right-ctrl { 161 label = "r"; 162 linux,code = <KEY_RIGHTCTRL>; 163 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* GPIO_105 */ 164 wakeup-source; 165 }; 166 167 kp-minus { 168 label = "r2"; 169 linux,code = <KEY_KPMINUS>; 170 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* GPIO_107 */ 171 wakeup-source; 172 }; 173 174 left-ctrl { 175 label = "ctrl"; 176 linux,code = <KEY_LEFTCTRL>; 177 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* GPIO_104 */ 178 wakeup-source; 179 }; 180 181 menu { 182 label = "menu"; 183 linux,code = <KEY_MENU>; 184 gpios = <&gpio4 3 GPIO_ACTIVE_LOW>; /* GPIO_99 */ 185 wakeup-source; 186 }; 187 188 hold { 189 label = "hold"; 190 linux,code = <KEY_COFFEE>; 191 gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* GPIO_176 */ 192 wakeup-source; 193 }; 194 195 left-alt { 196 label = "alt"; 197 linux,code = <KEY_LEFTALT>; 198 gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; /* GPIO_100 */ 199 wakeup-source; 200 }; 201 202 lid { 203 label = "lid"; 204 linux,code = <0x00>; /* SW_LID lid shut */ 205 linux,input-type = <0x05>; /* EV_SW */ 206 gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; /* GPIO_108 */ 207 }; 208 }; 209 210 /* HS USB Host PHY on PORT 2 */ 211 hsusb2_phy: hsusb2_phy { 212 compatible = "usb-nop-xceiv"; 213 reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */ 214 vcc-supply = <&vaux2>; 215 #phy-cells = <0>; 216 }; 217 218 /* HS USB Host VBUS supply 219 * disabling this regulator causes current leakage, and LCD flicker 220 * on earlier (CC) board revisions, so keep it always on */ 221 usb_host_5v: fixed-regulator-usb_host_5v { 222 compatible = "regulator-fixed"; 223 regulator-name = "usb_host_5v"; 224 regulator-min-microvolt = <5000000>; 225 regulator-max-microvolt = <5000000>; 226 regulator-always-on; 227 regulator-boot-on; 228 enable-active-high; 229 gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* GPIO_164 */ 230 }; 231 232 /* wl1251 wifi+bt module */ 233 wlan_en: fixed-regulator-wg7210_en { 234 compatible = "regulator-fixed"; 235 regulator-name = "vwlan"; 236 regulator-min-microvolt = <1800000>; 237 regulator-max-microvolt = <1800000>; 238 startup-delay-us = <50000>; 239 enable-active-high; 240 gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>; 241 }; 242 243 /* wg7210 (wifi+bt module) 32k clock buffer */ 244 wg7210_32k: fixed-regulator-wg7210_32k { 245 compatible = "regulator-fixed"; 246 regulator-name = "wg7210_32k"; 247 regulator-min-microvolt = <1800000>; 248 regulator-max-microvolt = <1800000>; 249 regulator-always-on; 250 enable-active-high; 251 gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>; 252 }; 253}; 254 255&omap3_pmx_core { 256 257 mmc1_pins: pinmux_mmc1_pins { 258 pinctrl-single,pins = < 259 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ 260 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ 261 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ 262 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ 263 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ 264 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 265 >; 266 }; 267 268 mmc2_pins: pinmux_mmc2_pins { 269 pinctrl-single,pins = < 270 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ 271 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ 272 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ 273 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ 274 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ 275 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ 276 OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat4.sdmmc2_dirdat0 */ 277 OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat5.sdmmc2_dirdat1 */ 278 OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat6.sdmmc2_dircmd */ 279 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat7.sdmmc2_clkin */ 280 >; 281 }; 282 283 dss_dpi_pins: pinmux_dss_dpi_pins { 284 pinctrl-single,pins = < 285 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 286 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */ 287 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */ 288 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */ 289 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */ 290 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */ 291 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */ 292 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */ 293 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */ 294 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */ 295 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */ 296 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */ 297 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */ 298 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */ 299 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */ 300 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */ 301 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */ 302 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */ 303 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */ 304 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */ 305 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */ 306 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */ 307 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */ 308 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */ 309 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */ 310 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */ 311 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */ 312 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */ 313 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* GPIO_157 = lcd reset */ 314 >; 315 }; 316 317 uart3_pins: pinmux_uart3_pins { 318 pinctrl-single,pins = < 319 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 320 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ 321 >; 322 }; 323 324 led_pins: pinmux_leds_pins { 325 pinctrl-single,pins = < 326 OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4) /* GPIO_128 */ 327 OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4) /* GPIO_129 */ 328 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4) /* GPIO_158 */ 329 OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4) /* GPIO_159 */ 330 >; 331 }; 332 333 button_pins: pinmux_button_pins { 334 pinctrl-single,pins = < 335 OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4) /* GPIO_96 */ 336 OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4) /* GPIO_97 */ 337 OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4) /* GPIO_98 */ 338 OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4) /* GPIO_99 */ 339 OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4) /* GPIO_100 */ 340 OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4) /* GPIO_101 */ 341 OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4) /* GPIO_102 */ 342 OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4) /* GPIO_103 */ 343 OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4) /* GPIO_104 */ 344 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4) /* GPIO_105 */ 345 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4) /* GPIO_106 */ 346 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4) /* GPIO_107 */ 347 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4) /* GPIO_108 */ 348 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4) /* GPIO_109 */ 349 OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4) /* GPIO_110 */ 350 OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4) /* GPIO_111 */ 351 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* GPIO_176 */ 352 >; 353 }; 354 355 penirq_pins: pinmux_penirq_pins { 356 pinctrl-single,pins = < 357 /* here we could enable to wakeup the cpu from suspend by a pen touch */ 358 OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4) /* GPIO_94 */ 359 >; 360 }; 361 362}; 363 364&omap3_pmx_core2 { 365 /* define in CPU specific file that includes this one 366 * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD() 367 */ 368}; 369 370&i2c1 { 371 clock-frequency = <2600000>; 372 373 twl: twl@48 { 374 reg = <0x48>; 375 interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 376 interrupt-parent = <&intc>; 377 378 clocks = <&hfclk_26m>; 379 clock-names = "fck"; 380 381 twl_power: power { 382 compatible = "ti,twl4030-power-reset"; 383 ti,use_poweroff; 384 }; 385 386 twl_audio: audio { 387 compatible = "ti,twl4030-audio"; 388 389 codec { 390 ti,ramp_delay_value = <3>; 391 }; 392 }; 393 }; 394}; 395 396#include "twl4030.dtsi" 397#include "twl4030_omap3.dtsi" 398 399&twl_keypad { 400 keypad,num-rows = <8>; 401 keypad,num-columns = <6>; 402 linux,keymap = < 403 MATRIX_KEY(0, 0, KEY_9) 404 MATRIX_KEY(0, 1, KEY_8) 405 MATRIX_KEY(0, 2, KEY_I) 406 MATRIX_KEY(0, 3, KEY_J) 407 MATRIX_KEY(0, 4, KEY_N) 408 MATRIX_KEY(0, 5, KEY_M) 409 MATRIX_KEY(1, 0, KEY_0) 410 MATRIX_KEY(1, 1, KEY_7) 411 MATRIX_KEY(1, 2, KEY_U) 412 MATRIX_KEY(1, 3, KEY_H) 413 MATRIX_KEY(1, 4, KEY_B) 414 MATRIX_KEY(1, 5, KEY_SPACE) 415 MATRIX_KEY(2, 0, KEY_BACKSPACE) 416 MATRIX_KEY(2, 1, KEY_6) 417 MATRIX_KEY(2, 2, KEY_Y) 418 MATRIX_KEY(2, 3, KEY_G) 419 MATRIX_KEY(2, 4, KEY_V) 420 MATRIX_KEY(2, 5, KEY_FN) 421 MATRIX_KEY(3, 0, KEY_O) 422 MATRIX_KEY(3, 1, KEY_5) 423 MATRIX_KEY(3, 2, KEY_T) 424 MATRIX_KEY(3, 3, KEY_F) 425 MATRIX_KEY(3, 4, KEY_C) 426 MATRIX_KEY(4, 0, KEY_P) 427 MATRIX_KEY(4, 1, KEY_4) 428 MATRIX_KEY(4, 2, KEY_R) 429 MATRIX_KEY(4, 3, KEY_D) 430 MATRIX_KEY(4, 4, KEY_X) 431 MATRIX_KEY(5, 0, KEY_K) 432 MATRIX_KEY(5, 1, KEY_3) 433 MATRIX_KEY(5, 2, KEY_E) 434 MATRIX_KEY(5, 3, KEY_S) 435 MATRIX_KEY(5, 4, KEY_Z) 436 MATRIX_KEY(6, 0, KEY_L) 437 MATRIX_KEY(6, 1, KEY_2) 438 MATRIX_KEY(6, 2, KEY_W) 439 MATRIX_KEY(6, 3, KEY_A) 440 MATRIX_KEY(6, 4, KEY_RIGHTBRACE) 441 MATRIX_KEY(7, 0, KEY_ENTER) 442 MATRIX_KEY(7, 1, KEY_1) 443 MATRIX_KEY(7, 2, KEY_Q) 444 MATRIX_KEY(7, 3, KEY_LEFTSHIFT) 445 MATRIX_KEY(7, 4, KEY_LEFTBRACE ) 446 >; 447}; 448 449/* backup battery charger */ 450&charger { 451 ti,bb-uvolt = <3200000>; 452 ti,bb-uamp = <150>; 453}; 454 455/* MMC2 */ 456&vmmc2 { 457 regulator-min-microvolt = <1850000>; 458 regulator-max-microvolt = <3150000>; 459}; 460 461/* LCD */ 462&vaux1 { 463 regulator-min-microvolt = <3000000>; 464 regulator-max-microvolt = <3000000>; 465}; 466 467/* USB Host PHY */ 468&vaux2 { 469 regulator-min-microvolt = <1800000>; 470 regulator-max-microvolt = <1800000>; 471}; 472 473/* available on expansion connector */ 474&vaux3 { 475 regulator-min-microvolt = <2800000>; 476 regulator-max-microvolt = <2800000>; 477}; 478 479/* ADS7846 and nubs */ 480&vaux4 { 481 regulator-min-microvolt = <2800000>; 482 regulator-max-microvolt = <2800000>; 483}; 484 485/* power audio DAC and LID sensor */ 486&vsim { 487 regulator-min-microvolt = <2800000>; 488 regulator-max-microvolt = <2800000>; 489 regulator-always-on; 490}; 491 492&i2c2 { 493 clock-frequency = <100000>; 494 /* no clients so we should disable clock */ 495}; 496 497&i2c3 { 498 clock-frequency = <100000>; 499 500 bq27500@55 { 501 compatible = "ti,bq27500"; 502 reg = <0x55>; 503 }; 504 505}; 506 507&usb_otg_hs { 508 interface-type = <0>; 509 usb-phy = <&usb2_phy>; 510 phys = <&usb2_phy>; 511 phy-names = "usb2-phy"; 512 mode = <3>; 513 power = <50>; 514}; 515 516/* 517 * Many pandora boards have been produced with defective write-protect switches 518 * on either slot, so it was decided not to use this feature. If you know 519 * your board has good switches, feel free to uncomment wp-gpios below. 520 */ 521&mmc1 { 522 pinctrl-names = "default"; 523 pinctrl-0 = <&mmc1_pins>; 524 vmmc-supply = <&vmmc1>; 525 bus-width = <4>; 526 cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>; 527 /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/ /* GPIO_126 */ 528}; 529 530&mmc2 { 531 pinctrl-names = "default"; 532 pinctrl-0 = <&mmc2_pins>; 533 vmmc-supply = <&vmmc2>; 534 bus-width = <4>; 535 cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>; 536 /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/ /* GPIO_127 */ 537}; 538 539&mmc3 { 540 vmmc-supply = <&wlan_en>; 541 542 bus-width = <4>; 543 non-removable; 544 ti,non-removable; 545 cap-power-off-card; 546 547 pinctrl-names = "default"; 548 pinctrl-0 = <&mmc3_pins>; 549 550 #address-cells = <1>; 551 #size-cells = <0>; 552 553 wlan: wifi@1 { 554 compatible = "ti,wl1251"; 555 556 reg = <1>; 557 558 interrupt-parent = <&gpio1>; 559 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_21 */ 560 561 ti,wl1251-has-eeprom; 562 }; 563}; 564 565/* bluetooth*/ 566&uart1 { 567}; 568 569/* spare (expansion connector) */ 570&uart2 { 571}; 572 573/* console (expansion connector) */ 574&uart3 { 575 pinctrl-names = "default"; 576 pinctrl-0 = <&uart3_pins>; 577 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>; 578}; 579 580&usbhshost { 581 port2-mode = "ehci-phy"; 582}; 583 584&usbhsehci { 585 phys = <0 &hsusb2_phy>; 586}; 587 588&gpmc { 589 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */ 590 591 nand@0,0 { 592 compatible = "ti,omap2-nand"; 593 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 594 interrupt-parent = <&gpmc>; 595 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 596 <1 IRQ_TYPE_NONE>; /* termcount */ 597 nand-bus-width = <16>; 598 ti,nand-ecc-opt = "sw"; 599 600 gpmc,sync-clk-ps = <0>; 601 gpmc,cs-on-ns = <0>; 602 gpmc,cs-rd-off-ns = <44>; 603 gpmc,cs-wr-off-ns = <44>; 604 gpmc,adv-on-ns = <6>; 605 gpmc,adv-rd-off-ns = <34>; 606 gpmc,adv-wr-off-ns = <44>; 607 gpmc,we-off-ns = <40>; 608 gpmc,oe-off-ns = <54>; 609 gpmc,access-ns = <64>; 610 gpmc,rd-cycle-ns = <82>; 611 gpmc,wr-cycle-ns = <82>; 612 gpmc,wr-access-ns = <40>; 613 gpmc,wr-data-mux-bus-ns = <0>; 614 gpmc,device-width = <2>; 615 616 #address-cells = <1>; 617 #size-cells = <1>; 618 619 /* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */ 620 621 x-loader@0 { 622 label = "xloader"; 623 reg = <0 0x80000>; 624 }; 625 626 bootloaders@80000 { 627 label = "uboot"; 628 reg = <0x80000 0x1e0000>; 629 }; 630 631 bootloaders_env@260000 { 632 label = "uboot-env"; 633 reg = <0x260000 0x20000>; 634 }; 635 636 kernel@280000 { 637 label = "boot"; 638 reg = <0x280000 0xa00000>; 639 }; 640 641 filesystem@c80000 { 642 label = "rootfs"; 643 reg = <0xc80000 0>; /* 0 = MTDPART_SIZ_FULL */ 644 }; 645 }; 646}; 647 648&mcspi1 { 649 tsc2046@0 { 650 reg = <0>; /* CS0 */ 651 compatible = "ti,tsc2046"; 652 spi-max-frequency = <1000000>; 653 pinctrl-names = "default"; 654 pinctrl-0 = <&penirq_pins>; 655 interrupt-parent = <&gpio3>; 656 interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */ 657 pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; 658 vcc-supply = <&vaux4>; 659 660 ti,x-min = /bits/ 16 <0>; 661 ti,x-max = /bits/ 16 <8000>; 662 ti,y-min = /bits/ 16 <0>; 663 ti,y-max = /bits/ 16 <4800>; 664 ti,x-plate-ohms = /bits/ 16 <40>; 665 ti,pressure-max = /bits/ 16 <255>; 666 667 wakeup-source; 668 }; 669 670 lcd: lcd@1 { 671 reg = <1>; /* CS1 */ 672 compatible = "tpo,td043mtea1"; 673 spi-max-frequency = <100000>; 674 spi-cpol; 675 spi-cpha; 676 677 label = "lcd"; 678 reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>; /* GPIO_157 */ 679 vcc-supply = <&vaux1>; 680 681 port { 682 lcd_in: endpoint { 683 remote-endpoint = <&dpi_out>; 684 }; 685 }; 686 }; 687 688 689}; 690 691/* n/a - used as GPIOs */ 692&mcbsp1 { 693}; 694 695/* audio DAC */ 696&mcbsp2 { 697}; 698 699/* bluetooth */ 700&mcbsp3 { 701}; 702 703/* to twl4030*/ 704&mcbsp4 { 705}; 706 707&venc { 708 status = "ok"; 709 710 vdda-supply = <&vdac>; 711 712 port { 713 venc_out: endpoint { 714 remote-endpoint = <&tv_connector_in>; 715 ti,channels = <2>; 716 }; 717 }; 718}; 719 720&dss { 721 pinctrl-names = "default"; 722 pinctrl-0 = < &dss_dpi_pins >; 723 724 status = "ok"; 725 vdds_dsi-supply = <&vpll2>; 726 727 port { 728 dpi_out: endpoint { 729 remote-endpoint = <&lcd_in>; 730 data-lines = <24>; 731 }; 732 }; 733}; 734