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