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