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