1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2023 Andreas Kemnade 4 */ 5/dts-v1/; 6 7#include <dt-bindings/leds/common.h> 8#include <dt-bindings/input/input.h> 9#include "omap4460.dtsi" 10 11/ { 12 model = "Epson Moverio BT-200"; 13 compatible = "epson,embt2ws", "ti,omap4460", "ti,omap4"; 14 15 memory@80000000 { 16 device_type = "memory"; 17 reg = <0x80000000 0x40000000>; /* 1024M */ 18 }; 19 20 backlight-left { 21 compatible = "pwm-backlight"; 22 pwms = <&twl_pwm 1 7812500>; 23 power-supply = <&unknown_supply>; 24 }; 25 26 backlight-right { 27 compatible = "pwm-backlight"; 28 pwms = <&twl_pwm 0 7812500>; 29 power-supply = <&unknown_supply>; 30 }; 31 32 chosen { 33 stdout-path = &uart3; 34 }; 35 36 gpio-keys { 37 compatible = "gpio-keys"; 38 pinctrl-names = "default"; 39 pinctrl-0 = <&gpio_keys_pins>; 40 41 key-lock { 42 label = "Lock"; 43 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 44 linux,code = <SW_ROTATE_LOCK>; /* SW_TOUCHPAD_LOCK */ 45 linux,input-type = <EV_SW>; 46 }; 47 }; 48 49 unknown_supply: unknown-supply { 50 compatible = "regulator-fixed"; 51 regulator-name = "unknown"; 52 }; 53 54 wl12xx_pwrseq: wl12xx-pwrseq { 55 compatible = "mmc-pwrseq-simple"; 56 clocks = <&twl 1>; 57 clock-names = "ext_clock"; 58 }; 59 60 /* regulator for wl12xx on sdio2 */ 61 wl12xx_vmmc: wl12xx-vmmc { 62 pinctrl-names = "default"; 63 pinctrl-0 = <&wl12xx_gpio>; 64 compatible = "regulator-fixed"; 65 regulator-name = "vwl1271"; 66 regulator-min-microvolt = <1800000>; 67 regulator-max-microvolt = <1800000>; 68 gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>; 69 startup-delay-us = <70000>; 70 enable-active-high; 71 }; 72}; 73 74&i2c1 { 75 pinctrl-names = "default"; 76 pinctrl-0 = <&i2c1_pins>; 77 78 clock-frequency = <400000>; 79 80 twl: pmic@48 { 81 compatible = "ti,twl6032"; 82 reg = <0x48>; 83 #clock-cells = <1>; 84 /* IRQ# = 7 */ 85 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */ 86 interrupt-controller; 87 #interrupt-cells = <1>; 88 89 rtc { 90 compatible = "ti,twl4030-rtc"; 91 interrupts = <11>; 92 }; 93 94 ldo2: regulator-ldo2 { 95 compatible = "ti,twl6032-ldo2"; 96 regulator-min-microvolt = <1000000>; 97 regulator-max-microvolt = <3000000>; 98 }; 99 100 ldo4: regulator-ldo4 { 101 compatible = "ti,twl6032-ldo4"; 102 regulator-min-microvolt = <1200000>; 103 regulator-max-microvolt = <2800000>; 104 }; 105 106 ldo3: regulator-ldo3 { 107 compatible = "ti,twl6032-ldo3"; 108 regulator-min-microvolt = <1000000>; 109 regulator-max-microvolt = <3000000>; 110 }; 111 112 ldo5: regulator-ldo5 { 113 compatible = "ti,twl6032-ldo5"; 114 regulator-min-microvolt = <1200000>; 115 regulator-max-microvolt = <3000000>; 116 ti,retain-on-reset; 117 }; 118 119 ldo1: regulator-ldo1 { 120 compatible = "ti,twl6032-ldo1"; 121 regulator-min-microvolt = <1800000>; 122 regulator-max-microvolt = <2500000>; 123 }; 124 125 ldo7: regulator-ldo7 { 126 compatible = "ti,twl6032-ldo7"; 127 regulator-min-microvolt = <1200000>; 128 regulator-max-microvolt = <2900000>; 129 }; 130 131 ldoln: regulator-ldoln { 132 compatible = "ti,twl6032-ldoln"; 133 regulator-always-on; 134 }; 135 136 ldo6: regulator-ldo6 { 137 compatible = "ti,twl6032-ldo6"; 138 regulator-always-on; 139 }; 140 141 ldousb: regulator-ldousb { 142 compatible = "ti,twl6032-ldousb"; 143 regulator-always-on; 144 }; 145 146 vio: regulator-vio { 147 compatible = "ti,twl6032-vio"; 148 regulator-always-on; 149 }; 150 151 twl_usb_comparator: usb-comparator { 152 compatible = "ti,twl6030-usb"; 153 interrupts = <4>, <10>; 154 }; 155 156 twl_pwm: pwm { 157 /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ 158 compatible = "ti,twl6030-pwm"; 159 #pwm-cells = <2>; 160 }; 161 162 twl_pwmled: pwmled { 163 /* provides one PWM (id 0 for Charging indicator LED) */ 164 compatible = "ti,twl6030-pwmled"; 165 #pwm-cells = <2>; 166 }; 167 168 gpadc { 169 compatible = "ti,twl6032-gpadc"; 170 interrupts = <3>; 171 #io-channel-cells = <1>; 172 }; 173 174 }; 175}; 176 177#include "twl6030_omap4.dtsi" 178 179&twl_usb_comparator { 180 usb-supply = <&ldousb>; 181}; 182 183 184&i2c2 { 185 pinctrl-names = "default"; 186 pinctrl-0 = <&i2c2_pins>; 187 188 clock-frequency = <200000>; 189 190 /* at head/glasses */ 191 mpu9150h: imu@68 { 192 compatible = "invensense,mpu9150"; 193 reg = <0x68>; 194 195 pinctrl-names = "default"; 196 pinctrl-0 = <&mpu9150h_pins>; 197 interrupt-parent = <&gpio2>; 198 interrupt = <19 IRQ_TYPE_LEVEL_HIGH>; 199 }; 200}; 201 202&i2c3 { 203 pinctrl-names = "default"; 204 pinctrl-0 = <&i2c3_pins>; 205 206 clock-frequency = <100000>; 207 208 led-controller@66 { 209 compatible = "rohm,bd2606mvv"; 210 reg = <0x66>; 211 212 #address-cells = <1>; 213 #size-cells = <0>; 214 215 led@0 { 216 reg = <0>; 217 color = <LED_COLOR_ID_GREEN>; 218 function = LED_FUNCTION_STATUS; 219 }; 220 221 led@2 { 222 reg = <2>; 223 color = <LED_COLOR_ID_BLUE>; 224 function = LED_FUNCTION_STATUS; 225 }; 226 227 led@4 { 228 reg = <4>; 229 color = <LED_COLOR_ID_RED>; 230 function = LED_FUNCTION_STATUS; 231 }; 232 }; 233}; 234 235&i2c4 { 236 pinctrl-names = "default"; 237 pinctrl-0 = <&i2c4_pins>; 238 239 clock-frequency = <360000>; 240 241 /* TODO: KXTI9 at 0xf */ 242 243 tlv320aic3x: codec@18 { 244 compatible = "ti,tlv320aic3x"; 245 reg = <0x18>; 246 pinctrl-names = "default"; 247 pinctrl-0 = <&tlv320aic3x_pins>; 248 #sound-dai-cells = <0>; 249 250 reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; 251 }; 252 253 mpu9150: imu@68 { 254 compatible = "invensense,mpu9150"; 255 reg = <0x68>; 256 257 pinctrl-names = "default"; 258 pinctrl-0 = <&mpu9150_pins>; 259 interrupt-parent = <&gpio2>; 260 interrupt = <7 IRQ_TYPE_LEVEL_HIGH>; 261 invensense,level-shifter; 262 }; 263}; 264 265&keypad { 266 pinctrl-names = "default"; 267 pinctrl-0 = <&keypad_pins>; 268 keypad,num-rows = <2>; 269 keypad,num-columns = <3>; 270 linux,keymap = <MATRIX_KEY(0, 0, KEY_MENU) 271 MATRIX_KEY(0, 1, KEY_HOME) 272 MATRIX_KEY(0, 2, KEY_BACK) 273 MATRIX_KEY(1, 0, KEY_ESC) 274 MATRIX_KEY(1, 1, KEY_VOLUMEDOWN) 275 MATRIX_KEY(1, 2, KEY_VOLUMEUP)>; 276 linux,input-no-autorepeat; 277}; 278 279&mcbsp2 { 280 #sound-dai-cells = <0>; 281 pinctrl-names = "default"; 282 pinctrl-0 = <&mcbsp2_pins>; 283 status = "okay"; 284}; 285 286 287&mmc1 { 288 /* sdcard */ 289 vmmc-supply = <&ldo5>; 290 broken-cd; 291 bus-width = <4>; 292}; 293 294&mmc2 { 295 /* emmc */ 296 vmmc-supply = <&ldo2>; 297 bus-width = <8>; 298}; 299 300&mmc3 { 301 pinctrl-names = "default"; 302 pinctrl-0 = <&wl12xx_pins>; 303 vmmc-supply = <&wl12xx_vmmc>; 304 mmc-pwrseq = <&wl12xx_pwrseq>; 305 interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 306 &omap4_pmx_core 0x12e>; 307 non-removable; 308 bus-width = <4>; 309 cap-power-off-card; 310 311 #address-cells = <1>; 312 #size-cells = <0>; 313 wlcore: wlcore@2 { 314 compatible = "ti,wl1283"; 315 reg = <2>; 316 interrupts-extended = <&gpio1 23 IRQ_TYPE_LEVEL_HIGH>; 317 interrupt-names = "irq"; 318 ref-clock-frequency = <26000000>; 319 tcxo-clock-frequency = <26000000>; 320 }; 321}; 322 323&mmc4 { 324 status = "disabled"; 325}; 326 327&mmc5 { 328 status = "disabled"; 329}; 330 331&omap4_pmx_core { 332 bt_pins: pinmux-bt-pins { 333 pinctrl-single,pins = < 334 OMAP4_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE3) /* gpio25 */ 335 >; 336 }; 337 338 gpio_keys_pins: pinmux-gpio-key-pins { 339 pinctrl-single,pins = < 340 OMAP4_IOPAD(0x56, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio35 */ 341 >; 342 }; 343 344 i2c1_pins: pinmux-i2c1-pins { 345 pinctrl-single,pins = < 346 OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 347 OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 348 >; 349 }; 350 351 i2c2_pins: pinmux-i2c2-pins { 352 pinctrl-single,pins = < 353 OMAP4_IOPAD(0x126, PIN_INPUT | MUX_MODE0) /* i2c2_scl */ 354 OMAP4_IOPAD(0x128, PIN_INPUT | MUX_MODE0) /* i2c2_sda */ 355 >; 356 }; 357 358 i2c3_pins: pinmux-i2c3-pins { 359 pinctrl-single,pins = < 360 OMAP4_IOPAD(0x12a, PIN_INPUT | MUX_MODE0) /* i2c3_scl */ 361 OMAP4_IOPAD(0x12c, PIN_INPUT | MUX_MODE0) /* i2c3_sda */ 362 >; 363 }; 364 365 i2c4_pins: pinmux-i2c4-pins { 366 pinctrl-single,pins = < 367 OMAP4_IOPAD(0x12e, PIN_INPUT | MUX_MODE0) /* i2c4_scl */ 368 OMAP4_IOPAD(0x130, PIN_INPUT | MUX_MODE0) /* i2c4_sda */ 369 >; 370 }; 371 372 keypad_pins: pinmux-keypad-pins { 373 pinctrl-single,pins = < 374 /* kpd_row0 */ 375 OMAP4_IOPAD(0x0050, PIN_INPUT_PULLUP | MUX_MODE1) 376 /* kpd_row1 */ 377 OMAP4_IOPAD(0x0052, PIN_INPUT_PULLUP | MUX_MODE1) 378 /* kpd_row2 */ 379 OMAP4_IOPAD(0x0054, PIN_INPUT_PULLUP | MUX_MODE1) 380 /* kpd_col0 */ 381 OMAP4_IOPAD(0x0058, PIN_OUTPUT | MUX_MODE1) 382 /* kpd_col1 */ 383 OMAP4_IOPAD(0x005a, PIN_OUTPUT | MUX_MODE1) 384 /* kpd_col2 */ 385 OMAP4_IOPAD(0x005c, PIN_OUTPUT | MUX_MODE1) 386 >; 387 }; 388 389 mcbsp2_pins: pinmux-mcbsp2-pins { 390 pinctrl-single,pins = < 391 OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx */ 392 OMAP4_IOPAD(0x0f8, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_dr */ 393 OMAP4_IOPAD(0x0fa, PIN_OUTPUT | MUX_MODE0) /* abe_mcbsp2_dx */ 394 OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx */ 395 >; 396 }; 397 398 mpu9150_pins: pinmux-mpu9150-pins { 399 pinctrl-single,pins = < 400 OMAP4_IOPAD(0x5e, PIN_INPUT_PULLUP | MUX_MODE3) 401 >; 402 }; 403 404 mpu9150h_pins: pinmux-mpu9150h-pins { 405 pinctrl-single,pins = < 406 OMAP4_IOPAD(0x76, PIN_INPUT_PULLUP | MUX_MODE3) 407 >; 408 }; 409 410 tlv320aic3x_pins: pinmux-tlv320aic3x-pins { 411 pinctrl-single,pins = < 412 OMAP4_IOPAD(0x7e, PIN_OUTPUT | MUX_MODE3) 413 >; 414 }; 415 416 uart2_pins: pinmux-uart2-pins { 417 pinctrl-single,pins = < 418 OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */ 419 OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */ 420 OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */ 421 OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ 422 >; 423 }; 424 425 uart3_pins: pinmux-uart3-pins { 426 pinctrl-single,pins = < 427 OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx */ 428 OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx */ 429 >; 430 }; 431 432 usb_otg_hs_pins: pinmux-usb-otg-hs-pins { 433 pinctrl-single,pins = < 434 OMAP4_IOPAD(0x194, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* usba0_otg_ce */ 435 OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0) /* usba0_otg_dp */ 436 OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0) /* usba0_otg_dm */ 437 >; 438 }; 439 440 wl12xx_pins: pinmux-wl12xx-pins { 441 pinctrl-single,pins = < 442 OMAP4_IOPAD(0x1c6, PIN_INPUT | MUX_MODE3) /* gpio_23 / IRQ */ 443 OMAP4_IOPAD(0x16c, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_dat2 */ 444 OMAP4_IOPAD(0x16e, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_dat1 */ 445 OMAP4_IOPAD(0x170, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_dat0 */ 446 OMAP4_IOPAD(0x172, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_dat3 */ 447 OMAP4_IOPAD(0x174, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_cmd */ 448 OMAP4_IOPAD(0x176, PIN_INPUT_PULLUP | MUX_MODE2) /* sdmmc3_clk */ 449 >; 450 }; 451 452 wl12xx_gpio: pinmux-wl12xx-gpio-pins { 453 pinctrl-single,pins = < 454 OMAP4_IOPAD(0x1c8, PIN_OUTPUT | MUX_MODE3) /* gpio_24 / WLAN_EN */ 455 >; 456 }; 457}; 458 459&uart2 { 460 pinctrl-names = "default"; 461 pinctrl-0 = <&uart2_pins &bt_pins>; 462 interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH 463 &omap4_pmx_core OMAP4_UART2_RX>; 464 465 bluetooth-gnss { 466 compatible = "ti,wl1283-st"; 467 enable-gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; /* GPIO_25 */ 468 clocks = <&twl 1>; 469 clock-names = "ext_clock"; 470 }; 471}; 472 473&uart3 { 474 pinctrl-names = "default"; 475 pinctrl-0 = <&uart3_pins>; 476 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH 477 &omap4_pmx_core OMAP4_UART3_RX>; 478}; 479 480&usb_otg_hs { 481 pinctrl-names = "default"; 482 pinctrl-0 = <&usb_otg_hs_pins>; 483 484 interface-type = <1>; 485 mode = <3>; 486 power = <50>; 487}; 488 489&usbhshost { 490 status = "disabled"; 491}; 492