1/* 2 * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/ 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8#include "elpida_ecb240abacn.dtsi" 9 10/ { 11 memory { 12 device_type = "memory"; 13 reg = <0x80000000 0x40000000>; /* 1 GB */ 14 }; 15 16 aliases { 17 display0 = &dvi0; 18 display1 = &hdmi0; 19 }; 20 21 leds: leds { 22 compatible = "gpio-leds"; 23 pinctrl-names = "default"; 24 pinctrl-0 = < 25 &led_wkgpio_pins 26 >; 27 28 heartbeat { 29 label = "pandaboard::status1"; 30 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 31 linux,default-trigger = "heartbeat"; 32 }; 33 34 mmc { 35 label = "pandaboard::status2"; 36 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; 37 linux,default-trigger = "mmc0"; 38 }; 39 }; 40 41 sound: sound { 42 compatible = "ti,abe-twl6040"; 43 ti,model = "PandaBoard"; 44 45 ti,mclk-freq = <38400000>; 46 47 ti,mcpdm = <&mcpdm>; 48 49 ti,twl6040 = <&twl6040>; 50 51 /* Audio routing */ 52 ti,audio-routing = 53 "Headset Stereophone", "HSOL", 54 "Headset Stereophone", "HSOR", 55 "Ext Spk", "HFL", 56 "Ext Spk", "HFR", 57 "Line Out", "AUXL", 58 "Line Out", "AUXR", 59 "HSMIC", "Headset Mic", 60 "Headset Mic", "Headset Mic Bias", 61 "AFML", "Line In", 62 "AFMR", "Line In"; 63 }; 64 65 /* HS USB Port 1 Power */ 66 hsusb1_power: hsusb1_power_reg { 67 compatible = "regulator-fixed"; 68 regulator-name = "hsusb1_vbus"; 69 regulator-min-microvolt = <3300000>; 70 regulator-max-microvolt = <3300000>; 71 gpio = <&gpio1 1 0>; /* gpio_1 */ 72 startup-delay-us = <70000>; 73 enable-active-high; 74 /* 75 * boot-on is required along with always-on as the 76 * regulator framework doesn't enable the regulator 77 * if boot-on is not there. 78 */ 79 regulator-always-on; 80 regulator-boot-on; 81 }; 82 83 /* HS USB Host PHY on PORT 1 */ 84 hsusb1_phy: hsusb1_phy { 85 compatible = "usb-nop-xceiv"; 86 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; /* gpio_62 */ 87 vcc-supply = <&hsusb1_power>; 88 clocks = <&auxclk3_ck>; 89 clock-names = "main_clk"; 90 clock-frequency = <19200000>; 91 }; 92 93 /* regulator for wl12xx on sdio5 */ 94 wl12xx_vmmc: wl12xx_vmmc { 95 pinctrl-names = "default"; 96 pinctrl-0 = <&wl12xx_gpio>; 97 compatible = "regulator-fixed"; 98 regulator-name = "vwl1271"; 99 regulator-min-microvolt = <1800000>; 100 regulator-max-microvolt = <1800000>; 101 gpio = <&gpio2 11 0>; 102 startup-delay-us = <70000>; 103 enable-active-high; 104 }; 105 106 tfp410: encoder@0 { 107 compatible = "ti,tfp410"; 108 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* gpio_0 */ 109 110 ports { 111 #address-cells = <1>; 112 #size-cells = <0>; 113 114 port@0 { 115 reg = <0>; 116 117 tfp410_in: endpoint@0 { 118 remote-endpoint = <&dpi_out>; 119 }; 120 }; 121 122 port@1 { 123 reg = <1>; 124 125 tfp410_out: endpoint@0 { 126 remote-endpoint = <&dvi_connector_in>; 127 }; 128 }; 129 }; 130 }; 131 132 dvi0: connector@0 { 133 compatible = "dvi-connector"; 134 label = "dvi"; 135 136 digital; 137 138 ddc-i2c-bus = <&i2c3>; 139 140 port { 141 dvi_connector_in: endpoint { 142 remote-endpoint = <&tfp410_out>; 143 }; 144 }; 145 }; 146 147 tpd12s015: encoder@1 { 148 compatible = "ti,tpd12s015"; 149 150 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ 151 <&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */ 152 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */ 153 154 ports { 155 #address-cells = <1>; 156 #size-cells = <0>; 157 158 port@0 { 159 reg = <0>; 160 161 tpd12s015_in: endpoint@0 { 162 remote-endpoint = <&hdmi_out>; 163 }; 164 }; 165 166 port@1 { 167 reg = <1>; 168 169 tpd12s015_out: endpoint@0 { 170 remote-endpoint = <&hdmi_connector_in>; 171 }; 172 }; 173 }; 174 }; 175 176 hdmi0: connector@1 { 177 compatible = "hdmi-connector"; 178 label = "hdmi"; 179 180 type = "a"; 181 182 port { 183 hdmi_connector_in: endpoint { 184 remote-endpoint = <&tpd12s015_out>; 185 }; 186 }; 187 }; 188}; 189 190&omap4_pmx_core { 191 pinctrl-names = "default"; 192 pinctrl-0 = < 193 &dss_dpi_pins 194 &tfp410_pins 195 &dss_hdmi_pins 196 &tpd12s015_pins 197 &hsusbb1_pins 198 >; 199 200 twl6040_pins: pinmux_twl6040_pins { 201 pinctrl-single,pins = < 202 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ 203 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */ 204 >; 205 }; 206 207 mcpdm_pins: pinmux_mcpdm_pins { 208 pinctrl-single,pins = < 209 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */ 210 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */ 211 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */ 212 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */ 213 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */ 214 >; 215 }; 216 217 mcbsp1_pins: pinmux_mcbsp1_pins { 218 pinctrl-single,pins = < 219 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */ 220 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */ 221 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */ 222 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */ 223 >; 224 }; 225 226 dss_dpi_pins: pinmux_dss_dpi_pins { 227 pinctrl-single,pins = < 228 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */ 229 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */ 230 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */ 231 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */ 232 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */ 233 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */ 234 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */ 235 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */ 236 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */ 237 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */ 238 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */ 239 240 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */ 241 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */ 242 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */ 243 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */ 244 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */ 245 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */ 246 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */ 247 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */ 248 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */ 249 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */ 250 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */ 251 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */ 252 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */ 253 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */ 254 255 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */ 256 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */ 257 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */ 258 >; 259 }; 260 261 tfp410_pins: pinmux_tfp410_pins { 262 pinctrl-single,pins = < 263 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */ 264 >; 265 }; 266 267 dss_hdmi_pins: pinmux_dss_hdmi_pins { 268 pinctrl-single,pins = < 269 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 270 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 271 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 272 >; 273 }; 274 275 tpd12s015_pins: pinmux_tpd12s015_pins { 276 pinctrl-single,pins = < 277 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */ 278 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */ 279 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */ 280 >; 281 }; 282 283 hsusbb1_pins: pinmux_hsusbb1_pins { 284 pinctrl-single,pins = < 285 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */ 286 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */ 287 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */ 288 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */ 289 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */ 290 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */ 291 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */ 292 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */ 293 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */ 294 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */ 295 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */ 296 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */ 297 >; 298 }; 299 300 i2c1_pins: pinmux_i2c1_pins { 301 pinctrl-single,pins = < 302 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 303 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 304 >; 305 }; 306 307 i2c2_pins: pinmux_i2c2_pins { 308 pinctrl-single,pins = < 309 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ 310 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ 311 >; 312 }; 313 314 i2c3_pins: pinmux_i2c3_pins { 315 pinctrl-single,pins = < 316 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ 317 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ 318 >; 319 }; 320 321 i2c4_pins: pinmux_i2c4_pins { 322 pinctrl-single,pins = < 323 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */ 324 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ 325 >; 326 }; 327 328 /* 329 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP 330 * REVISIT: Are the pull-ups needed for GPIO 48 and 49? 331 */ 332 wl12xx_gpio: pinmux_wl12xx_gpio { 333 pinctrl-single,pins = < 334 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */ 335 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */ 336 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */ 337 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */ 338 >; 339 }; 340 341 /* wl12xx GPIO inputs and SDIO pins */ 342 wl12xx_pins: pinmux_wl12xx_pins { 343 pinctrl-single,pins = < 344 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */ 345 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ 346 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ 347 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */ 348 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */ 349 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */ 350 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */ 351 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ 352 >; 353 }; 354}; 355 356&omap4_pmx_wkup { 357 led_wkgpio_pins: pinmux_leds_wkpins { 358 pinctrl-single,pins = < 359 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ 360 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ 361 >; 362 }; 363}; 364 365&i2c1 { 366 pinctrl-names = "default"; 367 pinctrl-0 = <&i2c1_pins>; 368 369 clock-frequency = <400000>; 370 371 twl: twl@48 { 372 reg = <0x48>; 373 /* IRQ# = 7 */ 374 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */ 375 interrupt-parent = <&gic>; 376 }; 377 378 twl6040: twl@4b { 379 compatible = "ti,twl6040"; 380 reg = <0x4b>; 381 382 pinctrl-names = "default"; 383 pinctrl-0 = <&twl6040_pins>; 384 385 /* IRQ# = 119 */ 386 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */ 387 interrupt-parent = <&gic>; 388 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */ 389 390 vio-supply = <&v1v8>; 391 v2v1-supply = <&v2v1>; 392 enable-active-high; 393 }; 394}; 395 396#include "twl6030.dtsi" 397#include "twl6030_omap4.dtsi" 398 399&i2c2 { 400 pinctrl-names = "default"; 401 pinctrl-0 = <&i2c2_pins>; 402 403 clock-frequency = <400000>; 404}; 405 406&i2c3 { 407 pinctrl-names = "default"; 408 pinctrl-0 = <&i2c3_pins>; 409 410 clock-frequency = <100000>; 411 412 /* 413 * Display monitor features are burnt in their EEPROM as EDID data. 414 * The EEPROM is connected as I2C slave device. 415 */ 416 eeprom@50 { 417 compatible = "ti,eeprom"; 418 reg = <0x50>; 419 }; 420}; 421 422&i2c4 { 423 pinctrl-names = "default"; 424 pinctrl-0 = <&i2c4_pins>; 425 426 clock-frequency = <400000>; 427}; 428 429&mmc1 { 430 vmmc-supply = <&vmmc>; 431 bus-width = <8>; 432}; 433 434&mmc2 { 435 status = "disabled"; 436}; 437 438&mmc3 { 439 status = "disabled"; 440}; 441 442&mmc4 { 443 status = "disabled"; 444}; 445 446&mmc5 { 447 pinctrl-names = "default"; 448 pinctrl-0 = <&wl12xx_pins>; 449 vmmc-supply = <&wl12xx_vmmc>; 450 non-removable; 451 bus-width = <4>; 452 cap-power-off-card; 453}; 454 455&emif1 { 456 cs1-used; 457 device-handle = <&elpida_ECB240ABACN>; 458}; 459 460&emif2 { 461 cs1-used; 462 device-handle = <&elpida_ECB240ABACN>; 463}; 464 465&mcbsp1 { 466 pinctrl-names = "default"; 467 pinctrl-0 = <&mcbsp1_pins>; 468 status = "okay"; 469}; 470 471&mcpdm { 472 pinctrl-names = "default"; 473 pinctrl-0 = <&mcpdm_pins>; 474 status = "okay"; 475}; 476 477&twl_usb_comparator { 478 usb-supply = <&vusb>; 479}; 480 481&uart2 { 482 interrupts-extended = <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH 483 &omap4_pmx_core OMAP4_UART2_RX>; 484}; 485 486&uart3 { 487 interrupts-extended = <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH 488 &omap4_pmx_core OMAP4_UART3_RX>; 489}; 490 491&uart4 { 492 interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH 493 &omap4_pmx_core OMAP4_UART4_RX>; 494}; 495 496&usb_otg_hs { 497 interface-type = <1>; 498 mode = <3>; 499 power = <50>; 500}; 501 502&usbhshost { 503 port1-mode = "ehci-phy"; 504}; 505 506&usbhsehci { 507 phys = <&hsusb1_phy>; 508}; 509 510&dss { 511 status = "ok"; 512 513 port { 514 dpi_out: endpoint { 515 remote-endpoint = <&tfp410_in>; 516 data-lines = <24>; 517 }; 518 }; 519}; 520 521&dsi2 { 522 status = "ok"; 523 vdd-supply = <&vcxio>; 524}; 525 526&hdmi { 527 status = "ok"; 528 vdda-supply = <&vdac>; 529 530 port { 531 hdmi_out: endpoint { 532 remote-endpoint = <&tpd12s015_in>; 533 }; 534 }; 535}; 536