1/* 2 * Copyright (C) 2011 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/dts-v1/; 9 10#include "omap36xx.dtsi" 11 12/ { 13 model = "TI OMAP3 BeagleBoard xM"; 14 compatible = "ti,omap3-beagle-xm", "ti,omap36xx", "ti,omap3"; 15 16 cpus { 17 cpu@0 { 18 cpu0-supply = <&vcc>; 19 }; 20 }; 21 22 memory@80000000 { 23 device_type = "memory"; 24 reg = <0x80000000 0x20000000>; /* 512 MB */ 25 }; 26 27 aliases { 28 display0 = &dvi0; 29 display1 = &tv0; 30 ethernet = ðernet; 31 }; 32 33 /* fixed 26MHz oscillator */ 34 hfclk_26m: oscillator { 35 #clock-cells = <0>; 36 compatible = "fixed-clock"; 37 clock-frequency = <26000000>; 38 }; 39 40 leds { 41 compatible = "gpio-leds"; 42 43 heartbeat { 44 label = "beagleboard::usr0"; 45 gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */ 46 linux,default-trigger = "heartbeat"; 47 }; 48 49 mmc { 50 label = "beagleboard::usr1"; 51 gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */ 52 linux,default-trigger = "mmc0"; 53 }; 54 }; 55 56 pwmleds { 57 compatible = "pwm-leds"; 58 59 pmu_stat { 60 label = "beagleboard::pmu_stat"; 61 pwms = <&twl_pwmled 1 7812500>; 62 max-brightness = <127>; 63 }; 64 }; 65 66 sound { 67 compatible = "ti,omap-twl4030"; 68 ti,model = "omap3beagle"; 69 70 ti,mcbsp = <&mcbsp2>; 71 }; 72 73 gpio_keys { 74 compatible = "gpio-keys"; 75 76 user { 77 label = "user"; 78 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; 79 linux,code = <0x114>; 80 wakeup-source; 81 }; 82 83 }; 84 85 /* HS USB Port 2 Power */ 86 hsusb2_power: hsusb2_power_reg { 87 compatible = "regulator-fixed"; 88 regulator-name = "hsusb2_vbus"; 89 regulator-min-microvolt = <3300000>; 90 regulator-max-microvolt = <3300000>; 91 gpio = <&twl_gpio 18 GPIO_ACTIVE_HIGH>; /* GPIO LEDA */ 92 startup-delay-us = <70000>; 93 }; 94 95 /* HS USB Host PHY on PORT 2 */ 96 hsusb2_phy: hsusb2_phy { 97 compatible = "usb-nop-xceiv"; 98 reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */ 99 vcc-supply = <&hsusb2_power>; 100 #phy-cells = <0>; 101 }; 102 103 tfp410: encoder0 { 104 compatible = "ti,tfp410"; 105 powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>; 106 107 /* XXX pinctrl from twl */ 108 109 ports { 110 #address-cells = <1>; 111 #size-cells = <0>; 112 113 port@0 { 114 reg = <0>; 115 116 tfp410_in: endpoint { 117 remote-endpoint = <&dpi_out>; 118 }; 119 }; 120 121 port@1 { 122 reg = <1>; 123 124 tfp410_out: endpoint { 125 remote-endpoint = <&dvi_connector_in>; 126 }; 127 }; 128 }; 129 }; 130 131 dvi0: connector0 { 132 compatible = "dvi-connector"; 133 label = "dvi"; 134 135 digital; 136 137 ddc-i2c-bus = <&i2c3>; 138 139 port { 140 dvi_connector_in: endpoint { 141 remote-endpoint = <&tfp410_out>; 142 }; 143 }; 144 }; 145 146 tv0: connector1 { 147 compatible = "svideo-connector"; 148 label = "tv"; 149 150 port { 151 tv_connector_in: endpoint { 152 remote-endpoint = <&venc_out>; 153 }; 154 }; 155 }; 156 157 etb@5401b000 { 158 compatible = "arm,coresight-etb10", "arm,primecell"; 159 reg = <0x5401b000 0x1000>; 160 161 clocks = <&emu_src_ck>; 162 clock-names = "apb_pclk"; 163 port { 164 etb_in: endpoint { 165 slave-mode; 166 remote-endpoint = <&etm_out>; 167 }; 168 }; 169 }; 170 171 etm@54010000 { 172 compatible = "arm,coresight-etm3x", "arm,primecell"; 173 reg = <0x54010000 0x1000>; 174 175 clocks = <&emu_src_ck>; 176 clock-names = "apb_pclk"; 177 port { 178 etm_out: endpoint { 179 remote-endpoint = <&etb_in>; 180 }; 181 }; 182 }; 183}; 184 185&omap3_pmx_wkup { 186 gpio1_pins: pinmux_gpio1_pins { 187 pinctrl-single,pins = < 188 OMAP3_WKUP_IOPAD(0x2a0e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */ 189 >; 190 }; 191 192 dss_dpi_pins2: pinmux_dss_dpi_pins1 { 193 pinctrl-single,pins = < 194 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */ 195 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */ 196 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */ 197 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */ 198 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */ 199 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */ 200 >; 201 }; 202}; 203 204&omap3_pmx_core { 205 pinctrl-names = "default"; 206 pinctrl-0 = < 207 &hsusb2_pins 208 >; 209 210 uart3_pins: pinmux_uart3_pins { 211 pinctrl-single,pins = < 212 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 213 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */ 214 >; 215 }; 216 217 hsusb2_pins: pinmux_hsusb2_pins { 218 pinctrl-single,pins = < 219 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ 220 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ 221 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ 222 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ 223 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ 224 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ 225 >; 226 }; 227 228 dss_dpi_pins1: pinmux_dss_dpi_pins2 { 229 pinctrl-single,pins = < 230 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 231 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */ 232 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */ 233 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */ 234 235 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */ 236 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */ 237 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */ 238 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */ 239 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */ 240 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */ 241 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */ 242 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */ 243 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */ 244 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */ 245 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */ 246 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */ 247 248 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */ 249 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */ 250 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */ 251 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */ 252 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */ 253 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */ 254 >; 255 }; 256}; 257 258&omap3_pmx_core2 { 259 pinctrl-names = "default"; 260 pinctrl-0 = < 261 &hsusb2_2_pins 262 >; 263 264 hsusb2_2_pins: pinmux_hsusb2_2_pins { 265 pinctrl-single,pins = < 266 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ 267 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ 268 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ 269 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ 270 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ 271 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ 272 >; 273 }; 274}; 275 276&i2c1 { 277 clock-frequency = <2600000>; 278 279 twl: twl@48 { 280 reg = <0x48>; 281 interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 282 interrupt-parent = <&intc>; 283 284 clocks = <&hfclk_26m>; 285 clock-names = "fck"; 286 287 twl_audio: audio { 288 compatible = "ti,twl4030-audio"; 289 codec { 290 }; 291 }; 292 293 twl_power: power { 294 compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off"; 295 ti,use_poweroff; 296 }; 297 }; 298}; 299 300#include "twl4030.dtsi" 301#include "twl4030_omap3.dtsi" 302 303&i2c2 { 304 clock-frequency = <400000>; 305}; 306 307&i2c3 { 308 clock-frequency = <100000>; 309}; 310 311&mmc1 { 312 vmmc-supply = <&vmmc1>; 313 vqmmc-supply = <&vsim>; 314 bus-width = <8>; 315}; 316 317&mmc2 { 318 status = "disabled"; 319}; 320 321&mmc3 { 322 status = "disabled"; 323}; 324 325&twl_gpio { 326 ti,use-leds; 327 /* pullups: BIT(1) */ 328 ti,pullups = <0x000002>; 329 /* 330 * pulldowns: 331 * BIT(2), BIT(6), BIT(7), BIT(8), BIT(13) 332 * BIT(15), BIT(16), BIT(17) 333 */ 334 ti,pulldowns = <0x03a1c4>; 335}; 336 337&usb_otg_hs { 338 interface-type = <0>; 339 usb-phy = <&usb2_phy>; 340 phys = <&usb2_phy>; 341 phy-names = "usb2-phy"; 342 mode = <3>; 343 power = <50>; 344}; 345 346&uart3 { 347 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>; 348 pinctrl-names = "default"; 349 pinctrl-0 = <&uart3_pins>; 350}; 351 352&gpio1 { 353 pinctrl-names = "default"; 354 pinctrl-0 = <&gpio1_pins>; 355}; 356 357&usbhshost { 358 port2-mode = "ehci-phy"; 359}; 360 361&usbhsehci { 362 phys = <0 &hsusb2_phy>; 363 364 #address-cells = <1>; 365 #size-cells = <0>; 366 367 hub@2 { 368 compatible = "usb424,9514"; 369 reg = <2>; 370 #address-cells = <1>; 371 #size-cells = <0>; 372 373 ethernet: usbether@1 { 374 compatible = "usb424,ec00"; 375 reg = <1>; 376 }; 377 }; 378}; 379 380&vaux2 { 381 regulator-name = "usb_1v8"; 382 regulator-min-microvolt = <1800000>; 383 regulator-max-microvolt = <1800000>; 384 regulator-always-on; 385}; 386 387&mcbsp2 { 388 status = "okay"; 389}; 390 391&dss { 392 status = "ok"; 393 394 pinctrl-names = "default"; 395 pinctrl-0 = < 396 &dss_dpi_pins1 397 &dss_dpi_pins2 398 >; 399 400 port { 401 dpi_out: endpoint { 402 remote-endpoint = <&tfp410_in>; 403 data-lines = <24>; 404 }; 405 }; 406}; 407 408&venc { 409 status = "ok"; 410 411 vdda-supply = <&vdac>; 412 413 port { 414 venc_out: endpoint { 415 remote-endpoint = <&tv_connector_in>; 416 ti,channels = <2>; 417 }; 418 }; 419}; 420