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 }; 376 377 twl6040: twl@4b { 378 compatible = "ti,twl6040"; 379 reg = <0x4b>; 380 381 pinctrl-names = "default"; 382 pinctrl-0 = <&twl6040_pins>; 383 384 /* IRQ# = 119 */ 385 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */ 386 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */ 387 388 vio-supply = <&v1v8>; 389 v2v1-supply = <&v2v1>; 390 enable-active-high; 391 }; 392}; 393 394#include "twl6030.dtsi" 395#include "twl6030_omap4.dtsi" 396 397&i2c2 { 398 pinctrl-names = "default"; 399 pinctrl-0 = <&i2c2_pins>; 400 401 clock-frequency = <400000>; 402}; 403 404&i2c3 { 405 pinctrl-names = "default"; 406 pinctrl-0 = <&i2c3_pins>; 407 408 clock-frequency = <100000>; 409 410 /* 411 * Display monitor features are burnt in their EEPROM as EDID data. 412 * The EEPROM is connected as I2C slave device. 413 */ 414 eeprom@50 { 415 compatible = "ti,eeprom"; 416 reg = <0x50>; 417 }; 418}; 419 420&i2c4 { 421 pinctrl-names = "default"; 422 pinctrl-0 = <&i2c4_pins>; 423 424 clock-frequency = <400000>; 425}; 426 427&mmc1 { 428 vmmc-supply = <&vmmc>; 429 bus-width = <8>; 430}; 431 432&mmc2 { 433 status = "disabled"; 434}; 435 436&mmc3 { 437 status = "disabled"; 438}; 439 440&mmc4 { 441 status = "disabled"; 442}; 443 444&mmc5 { 445 pinctrl-names = "default"; 446 pinctrl-0 = <&wl12xx_pins>; 447 vmmc-supply = <&wl12xx_vmmc>; 448 non-removable; 449 bus-width = <4>; 450 cap-power-off-card; 451 452 #address-cells = <1>; 453 #size-cells = <0>; 454 wlcore: wlcore@2 { 455 compatible = "ti,wl1271"; 456 reg = <2>; 457 interrupt-parent = <&gpio2>; 458 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */ 459 ref-clock-frequency = <38400000>; 460 }; 461}; 462 463&emif1 { 464 cs1-used; 465 device-handle = <&elpida_ECB240ABACN>; 466}; 467 468&emif2 { 469 cs1-used; 470 device-handle = <&elpida_ECB240ABACN>; 471}; 472 473&mcbsp1 { 474 pinctrl-names = "default"; 475 pinctrl-0 = <&mcbsp1_pins>; 476 status = "okay"; 477}; 478 479&mcpdm { 480 pinctrl-names = "default"; 481 pinctrl-0 = <&mcpdm_pins>; 482 status = "okay"; 483}; 484 485&twl_usb_comparator { 486 usb-supply = <&vusb>; 487}; 488 489&uart2 { 490 interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH 491 &omap4_pmx_core OMAP4_UART2_RX>; 492}; 493 494&uart3 { 495 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH 496 &omap4_pmx_core OMAP4_UART3_RX>; 497}; 498 499&uart4 { 500 interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH 501 &omap4_pmx_core OMAP4_UART4_RX>; 502}; 503 504&usb_otg_hs { 505 interface-type = <1>; 506 mode = <3>; 507 power = <50>; 508}; 509 510&usbhshost { 511 port1-mode = "ehci-phy"; 512}; 513 514&usbhsehci { 515 phys = <&hsusb1_phy>; 516}; 517 518&dss { 519 status = "ok"; 520 521 port { 522 dpi_out: endpoint { 523 remote-endpoint = <&tfp410_in>; 524 data-lines = <24>; 525 }; 526 }; 527}; 528 529&dsi2 { 530 status = "ok"; 531 vdd-supply = <&vcxio>; 532}; 533 534&hdmi { 535 status = "ok"; 536 vdda-supply = <&vdac>; 537 538 port { 539 hdmi_out: endpoint { 540 remote-endpoint = <&tpd12s015_in>; 541 }; 542 }; 543}; 544