0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
0004 */
0005 /dts-v1/;
0006
0007 #include "omap36xx.dtsi"
0008
0009 / {
0010 model = "TI OMAP3 BeagleBoard xM";
0011 compatible = "ti,omap3-beagle-xm", "ti,omap3630", "ti,omap36xx", "ti,omap3";
0012
0013 cpus {
0014 cpu@0 {
0015 cpu0-supply = <&vcc>;
0016 };
0017 };
0018
0019 memory@80000000 {
0020 device_type = "memory";
0021 reg = <0x80000000 0x20000000>; /* 512 MB */
0022 };
0023
0024 aliases {
0025 display0 = &dvi0;
0026 display1 = &tv0;
0027 ethernet = ðernet;
0028 };
0029
0030 /* fixed 26MHz oscillator */
0031 hfclk_26m: oscillator {
0032 #clock-cells = <0>;
0033 compatible = "fixed-clock";
0034 clock-frequency = <26000000>;
0035 };
0036
0037 led-controller-1 {
0038 compatible = "gpio-leds";
0039
0040 led-1 {
0041 label = "beagleboard::usr0";
0042 gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */
0043 linux,default-trigger = "heartbeat";
0044 };
0045
0046 led-2 {
0047 label = "beagleboard::usr1";
0048 gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */
0049 linux,default-trigger = "mmc0";
0050 };
0051 };
0052
0053 led-controller-2 {
0054 compatible = "pwm-leds";
0055
0056 led-3 {
0057 label = "beagleboard::pmu_stat";
0058 pwms = <&twl_pwmled 1 7812500>;
0059 max-brightness = <127>;
0060 };
0061 };
0062
0063 sound {
0064 compatible = "ti,omap-twl4030";
0065 ti,model = "omap3beagle";
0066
0067 ti,mcbsp = <&mcbsp2>;
0068 };
0069
0070 gpio_keys {
0071 compatible = "gpio-keys";
0072
0073 user {
0074 label = "user";
0075 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
0076 linux,code = <0x114>;
0077 wakeup-source;
0078 };
0079
0080 };
0081
0082 /* HS USB Port 2 Power */
0083 hsusb2_power: hsusb2_power_reg {
0084 compatible = "regulator-fixed";
0085 regulator-name = "hsusb2_vbus";
0086 regulator-min-microvolt = <3300000>;
0087 regulator-max-microvolt = <3300000>;
0088 gpio = <&twl_gpio 18 GPIO_ACTIVE_HIGH>; /* GPIO LEDA */
0089 startup-delay-us = <70000>;
0090 };
0091
0092 /* HS USB Host PHY on PORT 2 */
0093 hsusb2_phy: hsusb2_phy {
0094 compatible = "usb-nop-xceiv";
0095 reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */
0096 vcc-supply = <&hsusb2_power>;
0097 #phy-cells = <0>;
0098 };
0099
0100 tfp410: encoder0 {
0101 compatible = "ti,tfp410";
0102 powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>;
0103
0104 /* XXX pinctrl from twl */
0105
0106 ports {
0107 #address-cells = <1>;
0108 #size-cells = <0>;
0109
0110 port@0 {
0111 reg = <0>;
0112
0113 tfp410_in: endpoint {
0114 remote-endpoint = <&dpi_out>;
0115 };
0116 };
0117
0118 port@1 {
0119 reg = <1>;
0120
0121 tfp410_out: endpoint {
0122 remote-endpoint = <&dvi_connector_in>;
0123 };
0124 };
0125 };
0126 };
0127
0128 dvi0: connector0 {
0129 compatible = "dvi-connector";
0130 label = "dvi";
0131
0132 digital;
0133
0134 ddc-i2c-bus = <&i2c3>;
0135
0136 port {
0137 dvi_connector_in: endpoint {
0138 remote-endpoint = <&tfp410_out>;
0139 };
0140 };
0141 };
0142
0143 tv0: connector1 {
0144 compatible = "svideo-connector";
0145 label = "tv";
0146
0147 port {
0148 tv_connector_in: endpoint {
0149 remote-endpoint = <&venc_out>;
0150 };
0151 };
0152 };
0153
0154 etb@5401b000 {
0155 compatible = "arm,coresight-etb10", "arm,primecell";
0156 reg = <0x5401b000 0x1000>;
0157
0158 clocks = <&emu_src_ck>;
0159 clock-names = "apb_pclk";
0160 in-ports {
0161 port {
0162 etb_in: endpoint {
0163 remote-endpoint = <&etm_out>;
0164 };
0165 };
0166 };
0167 };
0168
0169 etm@54010000 {
0170 compatible = "arm,coresight-etm3x", "arm,primecell";
0171 reg = <0x54010000 0x1000>;
0172
0173 clocks = <&emu_src_ck>;
0174 clock-names = "apb_pclk";
0175 out-ports {
0176 port {
0177 etm_out: endpoint {
0178 remote-endpoint = <&etb_in>;
0179 };
0180 };
0181 };
0182 };
0183 };
0184
0185 &omap3_pmx_wkup {
0186 gpio1_pins: pinmux_gpio1_pins {
0187 pinctrl-single,pins = <
0188 OMAP3_WKUP_IOPAD(0x2a0e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */
0189 >;
0190 };
0191
0192 dss_dpi_pins2: pinmux_dss_dpi_pins1 {
0193 pinctrl-single,pins = <
0194 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
0195 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
0196 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
0197 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
0198 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
0199 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
0200 >;
0201 };
0202 };
0203
0204 &omap3_pmx_core {
0205 pinctrl-names = "default";
0206 pinctrl-0 = <
0207 &hsusb2_pins
0208 >;
0209
0210 uart3_pins: pinmux_uart3_pins {
0211 pinctrl-single,pins = <
0212 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
0213 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
0214 >;
0215 };
0216
0217 hsusb2_pins: pinmux_hsusb2_pins {
0218 pinctrl-single,pins = <
0219 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
0220 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
0221 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
0222 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
0223 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
0224 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
0225 >;
0226 };
0227
0228 dss_dpi_pins1: pinmux_dss_dpi_pins2 {
0229 pinctrl-single,pins = <
0230 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
0231 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
0232 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
0233 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
0234
0235 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
0236 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
0237 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
0238 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
0239 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
0240 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
0241 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
0242 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
0243 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
0244 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
0245 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
0246 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
0247
0248 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */
0249 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */
0250 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */
0251 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */
0252 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */
0253 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */
0254 >;
0255 };
0256 };
0257
0258 &omap3_pmx_core2 {
0259 pinctrl-names = "default";
0260 pinctrl-0 = <
0261 &hsusb2_2_pins
0262 >;
0263
0264 hsusb2_2_pins: pinmux_hsusb2_2_pins {
0265 pinctrl-single,pins = <
0266 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
0267 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
0268 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
0269 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
0270 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
0271 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
0272 >;
0273 };
0274 };
0275
0276 &i2c1 {
0277 clock-frequency = <2600000>;
0278
0279 twl: twl@48 {
0280 reg = <0x48>;
0281 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
0282 interrupt-parent = <&intc>;
0283
0284 clocks = <&hfclk_26m>;
0285 clock-names = "fck";
0286
0287 twl_audio: audio {
0288 compatible = "ti,twl4030-audio";
0289 codec {
0290 };
0291 };
0292
0293 twl_power: power {
0294 compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
0295 ti,use_poweroff;
0296 };
0297 };
0298 };
0299
0300 #include "twl4030.dtsi"
0301 #include "twl4030_omap3.dtsi"
0302
0303 &i2c2 {
0304 clock-frequency = <400000>;
0305 };
0306
0307 &i2c3 {
0308 clock-frequency = <100000>;
0309 };
0310
0311 &mmc1 {
0312 vmmc-supply = <&vmmc1>;
0313 vqmmc-supply = <&vsim>;
0314 bus-width = <8>;
0315 };
0316
0317 &mmc2 {
0318 status = "disabled";
0319 };
0320
0321 &mmc3 {
0322 status = "disabled";
0323 };
0324
0325 &twl_gpio {
0326 ti,use-leds;
0327 /* pullups: BIT(1) */
0328 ti,pullups = <0x000002>;
0329 /*
0330 * pulldowns:
0331 * BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
0332 * BIT(15), BIT(16), BIT(17)
0333 */
0334 ti,pulldowns = <0x03a1c4>;
0335 };
0336
0337 &usb_otg_hs {
0338 interface-type = <0>;
0339 usb-phy = <&usb2_phy>;
0340 phys = <&usb2_phy>;
0341 phy-names = "usb2-phy";
0342 mode = <3>;
0343 power = <50>;
0344 };
0345
0346 &uart3 {
0347 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
0348 pinctrl-names = "default";
0349 pinctrl-0 = <&uart3_pins>;
0350 };
0351
0352 &gpio1 {
0353 pinctrl-names = "default";
0354 pinctrl-0 = <&gpio1_pins>;
0355 };
0356
0357 &usbhshost {
0358 port2-mode = "ehci-phy";
0359 };
0360
0361 &usbhsehci {
0362 phys = <0 &hsusb2_phy>;
0363
0364 #address-cells = <1>;
0365 #size-cells = <0>;
0366
0367 hub@2 {
0368 compatible = "usb424,9514";
0369 reg = <2>;
0370 #address-cells = <1>;
0371 #size-cells = <0>;
0372
0373 ethernet: ethernet@1 {
0374 compatible = "usb424,ec00";
0375 reg = <1>;
0376 };
0377 };
0378 };
0379
0380 &vaux2 {
0381 regulator-name = "usb_1v8";
0382 regulator-min-microvolt = <1800000>;
0383 regulator-max-microvolt = <1800000>;
0384 regulator-always-on;
0385 };
0386
0387 &mcbsp2 {
0388 status = "okay";
0389 };
0390
0391 &dss {
0392 status = "okay";
0393
0394 pinctrl-names = "default";
0395 pinctrl-0 = <
0396 &dss_dpi_pins1
0397 &dss_dpi_pins2
0398 >;
0399
0400 port {
0401 dpi_out: endpoint {
0402 remote-endpoint = <&tfp410_in>;
0403 data-lines = <24>;
0404 };
0405 };
0406 };
0407
0408 &venc {
0409 status = "okay";
0410
0411 vdda-supply = <&vdac>;
0412
0413 port {
0414 venc_out: endpoint {
0415 remote-endpoint = <&tv_connector_in>;
0416 ti,channels = <2>;
0417 };
0418 };
0419 };