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