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