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