blob: 06c5b23589991395dcf83ab4e81ade4a7e005515 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2015
4 * Nikolaus Schaller <hns@goldelico.com>
5 *
6 * Common device tree include for OpenPandora devices.
7 */
8
9#include <dt-bindings/input/input.h>
10
11/ {
12 cpus {
13 cpu@0 {
14 cpu0-supply = <&vcc>;
15 };
16 };
17
18 memory@80000000 {
19 device_type = "memory";
20 reg = <0x80000000 0x20000000>; /* 512 MB */
21 };
22
23 aliases {
24 display0 = &lcd;
25 };
26
27 /* fixed 26MHz oscillator */
28 hfclk_26m: oscillator {
29 #clock-cells = <0>;
30 compatible = "fixed-clock";
31 clock-frequency = <26000000>;
32 };
33
34 tv: connector {
35 compatible = "connector-analog-tv";
36 label = "tv";
37
38 port {
39 tv_connector_in: endpoint {
40 remote-endpoint = <&venc_out>;
41 };
42 };
43 };
44
45 gpio-leds {
46
47 compatible = "gpio-leds";
48
49 pinctrl-names = "default";
50 pinctrl-0 = <&led_pins>;
51
52 led1 {
53 label = "pandora::sd1";
54 gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>; /* GPIO_128 */
55 linux,default-trigger = "mmc0";
56 default-state = "off";
57 };
58
59 led2 {
60 label = "pandora::sd2";
61 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; /* GPIO_129 */
62 linux,default-trigger = "mmc1";
63 default-state = "off";
64 };
65
66 led3 {
67 label = "pandora::bluetooth";
68 gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>; /* GPIO_158 */
69 linux,default-trigger = "heartbeat";
70 default-state = "off";
71 };
72
73 led4 {
74 label = "pandora::wifi";
75 gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>; /* GPIO_159 */
76 linux,default-trigger = "mmc2";
77 default-state = "off";
78 };
79 };
80
81 gpio-keys {
82 compatible = "gpio-keys";
83
84 pinctrl-names = "default";
85 pinctrl-0 = <&button_pins>;
86
87 up-button {
88 label = "up";
89 linux,code = <KEY_UP>;
90 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* GPIO_110 */
91 wakeup-source;
92 };
93
94 down-button {
95 label = "down";
96 linux,code = <KEY_DOWN>;
97 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* GPIO_103 */
98 wakeup-source;
99 };
100
101 left-button {
102 label = "left";
103 linux,code = <KEY_LEFT>;
104 gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; /* GPIO_96 */
105 wakeup-source;
106 };
107
108 right-button {
109 label = "right";
110 linux,code = <KEY_RIGHT>;
111 gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; /* GPIO_98 */
112 wakeup-source;
113 };
114
115 pageup-button {
116 label = "game 1";
117 linux,code = <KEY_PAGEUP>;
118 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* GPIO_109 */
119 wakeup-source;
120 };
121
122 pagedown-button {
123 label = "game 3";
124 linux,code = <KEY_PAGEDOWN>;
125 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* GPIO_106 */
126 wakeup-source;
127 };
128
129 home-button {
130 label = "game 4";
131 linux,code = <KEY_HOME>;
132 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* GPIO_101 */
133 wakeup-source;
134 };
135
136 end-button {
137 label = "game 2";
138 linux,code = <KEY_END>;
139 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* GPIO_111 */
140 wakeup-source;
141 };
142
143 right-shift {
144 label = "l";
145 linux,code = <KEY_RIGHTSHIFT>;
146 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* GPIO_102 */
147 wakeup-source;
148 };
149
150 kp-plus {
151 label = "l2";
152 linux,code = <KEY_KPPLUS>;
153 gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; /* GPIO_97 */
154 wakeup-source;
155 };
156
157 right-ctrl {
158 label = "r";
159 linux,code = <KEY_RIGHTCTRL>;
160 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* GPIO_105 */
161 wakeup-source;
162 };
163
164 kp-minus {
165 label = "r2";
166 linux,code = <KEY_KPMINUS>;
167 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* GPIO_107 */
168 wakeup-source;
169 };
170
171 left-ctrl {
172 label = "ctrl";
173 linux,code = <KEY_LEFTCTRL>;
174 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* GPIO_104 */
175 wakeup-source;
176 };
177
178 menu {
179 label = "menu";
180 linux,code = <KEY_MENU>;
181 gpios = <&gpio4 3 GPIO_ACTIVE_LOW>; /* GPIO_99 */
182 wakeup-source;
183 };
184
185 hold {
186 label = "hold";
187 linux,code = <KEY_COFFEE>;
188 gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* GPIO_176 */
189 wakeup-source;
190 };
191
192 left-alt {
193 label = "alt";
194 linux,code = <KEY_LEFTALT>;
195 gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; /* GPIO_100 */
196 wakeup-source;
197 };
198
199 lid {
200 label = "lid";
201 linux,code = <0x00>; /* SW_LID lid shut */
202 linux,input-type = <0x05>; /* EV_SW */
203 gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; /* GPIO_108 */
204 };
205 };
206
207 /* HS USB Host PHY on PORT 2 */
208 hsusb2_phy: hsusb2-phy-pins {
209 compatible = "usb-nop-xceiv";
210 reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
211 vcc-supply = <&vaux2>;
212 #phy-cells = <0>;
213 };
214
215 /* HS USB Host VBUS supply
216 * disabling this regulator causes current leakage, and LCD flicker
217 * on earlier (CC) board revisions, so keep it always on */
218 usb_host_5v: fixed-regulator-usb_host_5v {
219 compatible = "regulator-fixed";
220 regulator-name = "usb_host_5v";
221 regulator-min-microvolt = <5000000>;
222 regulator-max-microvolt = <5000000>;
223 regulator-always-on;
224 regulator-boot-on;
225 enable-active-high;
226 gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* GPIO_164 */
227 };
228
229 /* wl1251 wifi+bt module */
230 wlan_en: fixed-regulator-wg7210_en {
231 compatible = "regulator-fixed";
232 regulator-name = "vwlan";
233 regulator-min-microvolt = <1800000>;
234 regulator-max-microvolt = <1800000>;
235 startup-delay-us = <50000>;
236 enable-active-high;
237 gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
238 };
239
240 /* wg7210 (wifi+bt module) 32k clock buffer */
241 wg7210_32k: fixed-regulator-wg7210_32k {
242 compatible = "regulator-fixed";
243 regulator-name = "wg7210_32k";
244 regulator-min-microvolt = <1800000>;
245 regulator-max-microvolt = <1800000>;
246 regulator-always-on;
247 enable-active-high;
248 gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
249 };
250};
251
252&omap3_pmx_core {
253
254 mmc1_pins: mmc1-pins {
255 pinctrl-single,pins = <
256 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
257 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
258 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
259 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
260 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
261 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
262 >;
263 };
264
265 mmc2_pins: mmc2-pins {
266 pinctrl-single,pins = <
267 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
268 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
269 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
270 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
271 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
272 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
273 OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat4.sdmmc2_dirdat0 */
274 OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat5.sdmmc2_dirdat1 */
275 OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat6.sdmmc2_dircmd */
276 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1) /* sdmmc2_dat7.sdmmc2_clkin */
277 >;
278 };
279
280 dss_dpi_pins: dss-dpi-pins {
281 pinctrl-single,pins = <
282 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
283 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
284 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
285 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
286 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
287 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
288 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
289 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
290 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
291 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
292 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
293 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
294 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
295 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
296 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
297 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
298 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
299 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
300 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
301 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
302 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
303 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
304 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
305 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
306 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
307 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
308 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
309 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
310 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* GPIO_157 = lcd reset */
311 >;
312 };
313
314 uart3_pins: uart3-pins {
315 pinctrl-single,pins = <
316 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
317 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
318 >;
319 };
320
321 led_pins: leds-pins {
322 pinctrl-single,pins = <
323 OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4) /* GPIO_128 */
324 OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4) /* GPIO_129 */
325 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4) /* GPIO_158 */
326 OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4) /* GPIO_159 */
327 >;
328 };
329
330 button_pins: button-pins {
331 pinctrl-single,pins = <
332 OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4) /* GPIO_96 */
333 OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4) /* GPIO_97 */
334 OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4) /* GPIO_98 */
335 OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4) /* GPIO_99 */
336 OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4) /* GPIO_100 */
337 OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4) /* GPIO_101 */
338 OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4) /* GPIO_102 */
339 OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4) /* GPIO_103 */
340 OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4) /* GPIO_104 */
341 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4) /* GPIO_105 */
342 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4) /* GPIO_106 */
343 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4) /* GPIO_107 */
344 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4) /* GPIO_108 */
345 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4) /* GPIO_109 */
346 OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4) /* GPIO_110 */
347 OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4) /* GPIO_111 */
348 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* GPIO_176 */
349 >;
350 };
351
352 penirq_pins: penirq-pins {
353 pinctrl-single,pins = <
354 /* here we could enable to wakeup the cpu from suspend by a pen touch */
355 OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4) /* GPIO_94 */
356 >;
357 };
358
359};
360
361&omap3_pmx_core2 {
362 /* define in CPU specific file that includes this one
363 * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
364 */
365};
366
367&i2c1 {
368 clock-frequency = <2600000>;
369
370 twl: twl@48 {
371 reg = <0x48>;
372 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
373 interrupt-parent = <&intc>;
374
375 clocks = <&hfclk_26m>;
376 clock-names = "fck";
377
378 twl_power: power {
379 compatible = "ti,twl4030-power-reset";
380 ti,use_poweroff;
381 };
382
383 twl_audio: audio {
384 compatible = "ti,twl4030-audio";
385
386 codec {
387 ti,ramp_delay_value = <3>;
388 };
389 };
390 };
391};
392
393#include "twl4030.dtsi"
394#include "twl4030_omap3.dtsi"
395
396&twl_keypad {
397 keypad,num-rows = <8>;
398 keypad,num-columns = <6>;
399 linux,keymap = <
400 MATRIX_KEY(0, 0, KEY_9)
401 MATRIX_KEY(0, 1, KEY_8)
402 MATRIX_KEY(0, 2, KEY_I)
403 MATRIX_KEY(0, 3, KEY_J)
404 MATRIX_KEY(0, 4, KEY_N)
405 MATRIX_KEY(0, 5, KEY_M)
406 MATRIX_KEY(1, 0, KEY_0)
407 MATRIX_KEY(1, 1, KEY_7)
408 MATRIX_KEY(1, 2, KEY_U)
409 MATRIX_KEY(1, 3, KEY_H)
410 MATRIX_KEY(1, 4, KEY_B)
411 MATRIX_KEY(1, 5, KEY_SPACE)
412 MATRIX_KEY(2, 0, KEY_BACKSPACE)
413 MATRIX_KEY(2, 1, KEY_6)
414 MATRIX_KEY(2, 2, KEY_Y)
415 MATRIX_KEY(2, 3, KEY_G)
416 MATRIX_KEY(2, 4, KEY_V)
417 MATRIX_KEY(2, 5, KEY_FN)
418 MATRIX_KEY(3, 0, KEY_O)
419 MATRIX_KEY(3, 1, KEY_5)
420 MATRIX_KEY(3, 2, KEY_T)
421 MATRIX_KEY(3, 3, KEY_F)
422 MATRIX_KEY(3, 4, KEY_C)
423 MATRIX_KEY(4, 0, KEY_P)
424 MATRIX_KEY(4, 1, KEY_4)
425 MATRIX_KEY(4, 2, KEY_R)
426 MATRIX_KEY(4, 3, KEY_D)
427 MATRIX_KEY(4, 4, KEY_X)
428 MATRIX_KEY(5, 0, KEY_K)
429 MATRIX_KEY(5, 1, KEY_3)
430 MATRIX_KEY(5, 2, KEY_E)
431 MATRIX_KEY(5, 3, KEY_S)
432 MATRIX_KEY(5, 4, KEY_Z)
433 MATRIX_KEY(6, 0, KEY_L)
434 MATRIX_KEY(6, 1, KEY_2)
435 MATRIX_KEY(6, 2, KEY_W)
436 MATRIX_KEY(6, 3, KEY_A)
437 MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
438 MATRIX_KEY(7, 0, KEY_ENTER)
439 MATRIX_KEY(7, 1, KEY_1)
440 MATRIX_KEY(7, 2, KEY_Q)
441 MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
442 MATRIX_KEY(7, 4, KEY_LEFTBRACE )
443 >;
444};
445
446/* backup battery charger */
447&charger {
448 ti,bb-uvolt = <3200000>;
449 ti,bb-uamp = <150>;
450};
451
452/* MMC2 */
453&vmmc2 {
454 regulator-min-microvolt = <1850000>;
455 regulator-max-microvolt = <3150000>;
456};
457
458/* LCD */
459&vaux1 {
460 regulator-min-microvolt = <3000000>;
461 regulator-max-microvolt = <3000000>;
462};
463
464/* USB Host PHY */
465&vaux2 {
466 regulator-min-microvolt = <1800000>;
467 regulator-max-microvolt = <1800000>;
468};
469
470/* available on expansion connector */
471&vaux3 {
472 regulator-min-microvolt = <2800000>;
473 regulator-max-microvolt = <2800000>;
474};
475
476/* ADS7846 and nubs */
477&vaux4 {
478 regulator-min-microvolt = <2800000>;
479 regulator-max-microvolt = <2800000>;
480};
481
482/* power audio DAC and LID sensor */
483&vsim {
484 regulator-min-microvolt = <2800000>;
485 regulator-max-microvolt = <2800000>;
486 regulator-always-on;
487};
488
489&i2c2 {
490 clock-frequency = <100000>;
491 /* no clients so we should disable clock */
492};
493
494&i2c3 {
495 clock-frequency = <100000>;
496
497 bq27500@55 {
498 compatible = "ti,bq27500";
499 reg = <0x55>;
500 };
501
502};
503
504&usb_otg_hs {
505 interface-type = <0>;
506 usb-phy = <&usb2_phy>;
507 phys = <&usb2_phy>;
508 phy-names = "usb2-phy";
509 mode = <3>;
510 power = <50>;
511};
512
513/*
514 * Many pandora boards have been produced with defective write-protect switches
515 * on either slot, so it was decided not to use this feature. If you know
516 * your board has good switches, feel free to uncomment wp-gpios below.
517 */
518&mmc1 {
519 pinctrl-names = "default";
520 pinctrl-0 = <&mmc1_pins>;
521 vmmc-supply = <&vmmc1>;
522 bus-width = <4>;
523 cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
524 /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/ /* GPIO_126 */
525};
526
527&mmc2 {
528 pinctrl-names = "default";
529 pinctrl-0 = <&mmc2_pins>;
530 vmmc-supply = <&vmmc2>;
531 bus-width = <4>;
532 cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
533 /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/ /* GPIO_127 */
534};
535
536&mmc3 {
537 vmmc-supply = <&wlan_en>;
538
539 bus-width = <4>;
540 non-removable;
541 ti,non-removable;
542 cap-power-off-card;
543
544 pinctrl-names = "default";
545 pinctrl-0 = <&mmc3_pins>;
546
547 #address-cells = <1>;
548 #size-cells = <0>;
549
550 wlan: wifi@1 {
551 compatible = "ti,wl1251";
552
553 reg = <1>;
554
555 interrupt-parent = <&gpio1>;
556 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_21 */
557
558 ti,wl1251-has-eeprom;
559 };
560};
561
562/* bluetooth*/
563&uart1 {
564};
565
566/* spare (expansion connector) */
567&uart2 {
568};
569
570/* console (expansion connector) */
571&uart3 {
572 pinctrl-names = "default";
573 pinctrl-0 = <&uart3_pins>;
574 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
575};
576
577&usbhshost {
578 port2-mode = "ehci-phy";
579};
580
581&usbhsehci {
582 phys = <0 &hsusb2_phy>;
583};
584
585&gpmc {
586 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
587
588 nand@0,0 {
589 compatible = "ti,omap2-nand";
590 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
591 interrupt-parent = <&gpmc>;
592 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
593 <1 IRQ_TYPE_NONE>; /* termcount */
594 nand-bus-width = <16>;
595 ti,nand-ecc-opt = "sw";
596
597 gpmc,sync-clk-ps = <0>;
598 gpmc,cs-on-ns = <0>;
599 gpmc,cs-rd-off-ns = <44>;
600 gpmc,cs-wr-off-ns = <44>;
601 gpmc,adv-on-ns = <6>;
602 gpmc,adv-rd-off-ns = <34>;
603 gpmc,adv-wr-off-ns = <44>;
604 gpmc,we-off-ns = <40>;
605 gpmc,oe-off-ns = <54>;
606 gpmc,access-ns = <64>;
607 gpmc,rd-cycle-ns = <82>;
608 gpmc,wr-cycle-ns = <82>;
609 gpmc,wr-access-ns = <40>;
610 gpmc,wr-data-mux-bus-ns = <0>;
611 gpmc,device-width = <2>;
612
613 #address-cells = <1>;
614 #size-cells = <1>;
615
616 /* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
617
618 x-loader@0 {
619 label = "xloader";
620 reg = <0 0x80000>;
621 };
622
623 bootloaders@80000 {
624 label = "uboot";
625 reg = <0x80000 0x1e0000>;
626 };
627
628 bootloaders_env@260000 {
629 label = "uboot-env";
630 reg = <0x260000 0x20000>;
631 };
632
633 kernel@280000 {
634 label = "boot";
635 reg = <0x280000 0xa00000>;
636 };
637
638 filesystem@c80000 {
639 label = "rootfs";
640 reg = <0xc80000 0>; /* 0 = MTDPART_SIZ_FULL */
641 };
642 };
643};
644
645&mcspi1 {
646 tsc2046@0 {
647 reg = <0>; /* CS0 */
648 compatible = "ti,tsc2046";
649 spi-max-frequency = <1000000>;
650 pinctrl-names = "default";
651 pinctrl-0 = <&penirq_pins>;
652 interrupt-parent = <&gpio3>;
653 interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */
654 pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
655 vcc-supply = <&vaux4>;
656
657 ti,x-min = /bits/ 16 <0>;
658 ti,x-max = /bits/ 16 <8000>;
659 ti,y-min = /bits/ 16 <0>;
660 ti,y-max = /bits/ 16 <4800>;
661 ti,x-plate-ohms = /bits/ 16 <40>;
662 ti,pressure-max = /bits/ 16 <255>;
663
664 wakeup-source;
665 };
666
667 lcd: lcd@1 {
668 reg = <1>; /* CS1 */
669 compatible = "tpo,td043mtea1";
670 spi-max-frequency = <100000>;
671 spi-cpol;
672 spi-cpha;
673
674 label = "lcd";
675 reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>; /* GPIO_157 */
676 vcc-supply = <&vaux1>;
677
678 port {
679 lcd_in: endpoint {
680 remote-endpoint = <&dpi_out>;
681 };
682 };
683 };
684
685
686};
687
688/* n/a - used as GPIOs */
689&mcbsp1 {
690};
691
692/* audio DAC */
693&mcbsp2 {
694};
695
696/* bluetooth */
697&mcbsp3 {
698};
699
700/* to twl4030*/
701&mcbsp4 {
702};
703
704&venc {
705 status = "okay";
706
707 vdda-supply = <&vdac>;
708
709 port {
710 venc_out: endpoint {
711 remote-endpoint = <&tv_connector_in>;
712 ti,channels = <2>;
713 };
714 };
715};
716
717&dss {
718 pinctrl-names = "default";
719 pinctrl-0 = < &dss_dpi_pins >;
720
721 status = "okay";
722 vdds_dsi-supply = <&vpll2>;
723
724 port {
725 dpi_out: endpoint {
726 remote-endpoint = <&lcd_in>;
727 data-lines = <24>;
728 };
729 };
730};