xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/omap3-n900.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
4*4882a593Smuzhiyun * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "omap34xx.dtsi"
10*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
11*4882a593Smuzhiyun#include <dt-bindings/leds/common.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/*
14*4882a593Smuzhiyun * Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
15*4882a593Smuzhiyun * for omap AES HW crypto support. When linux kernel try to access memory of AES
16*4882a593Smuzhiyun * blocks then kernel receive "Unhandled fault: external abort on non-linefetch"
17*4882a593Smuzhiyun * and crash. Until somebody fix omap-aes.c and omap_hwmod_3xxx_data.c code (no
18*4882a593Smuzhiyun * crash anymore) omap AES support will be disabled for all Nokia N900 devices.
19*4882a593Smuzhiyun * There is "unofficial" version of bootloader which enables AES in L3 firewall
20*4882a593Smuzhiyun * but it is not widely used and to prevent kernel crash rather AES is disabled.
21*4882a593Smuzhiyun * There is also no runtime detection code if AES is disabled in L3 firewall...
22*4882a593Smuzhiyun */
23*4882a593Smuzhiyun&aes1_target {
24*4882a593Smuzhiyun	status = "disabled";
25*4882a593Smuzhiyun};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun&aes2_target {
28*4882a593Smuzhiyun	status = "disabled";
29*4882a593Smuzhiyun};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun/ {
32*4882a593Smuzhiyun	model = "Nokia N900";
33*4882a593Smuzhiyun	compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun	aliases {
36*4882a593Smuzhiyun		i2c0;
37*4882a593Smuzhiyun		i2c1 = &i2c1;
38*4882a593Smuzhiyun		i2c2 = &i2c2;
39*4882a593Smuzhiyun		i2c3 = &i2c3;
40*4882a593Smuzhiyun		display0 = &lcd;
41*4882a593Smuzhiyun		display1 = &tv;
42*4882a593Smuzhiyun	};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	cpus {
45*4882a593Smuzhiyun		cpu@0 {
46*4882a593Smuzhiyun			cpu0-supply = <&vcc>;
47*4882a593Smuzhiyun		};
48*4882a593Smuzhiyun	};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	leds {
51*4882a593Smuzhiyun		compatible = "gpio-leds";
52*4882a593Smuzhiyun		heartbeat {
53*4882a593Smuzhiyun			label = "debug::sleep";
54*4882a593Smuzhiyun			gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;  /* 162 */
55*4882a593Smuzhiyun			linux,default-trigger = "default-on";
56*4882a593Smuzhiyun			pinctrl-names = "default";
57*4882a593Smuzhiyun			pinctrl-0 = <&debug_leds>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun	};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	memory@80000000 {
62*4882a593Smuzhiyun		device_type = "memory";
63*4882a593Smuzhiyun		reg = <0x80000000 0x10000000>; /* 256 MB */
64*4882a593Smuzhiyun	};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	gpio_keys {
67*4882a593Smuzhiyun		compatible = "gpio-keys";
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun		camera_lens_cover {
70*4882a593Smuzhiyun			label = "Camera Lens Cover";
71*4882a593Smuzhiyun			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
72*4882a593Smuzhiyun			linux,input-type = <EV_SW>;
73*4882a593Smuzhiyun			linux,code = <SW_CAMERA_LENS_COVER>;
74*4882a593Smuzhiyun			linux,can-disable;
75*4882a593Smuzhiyun		};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun		camera_focus {
78*4882a593Smuzhiyun			label = "Camera Focus";
79*4882a593Smuzhiyun			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
80*4882a593Smuzhiyun			linux,code = <KEY_CAMERA_FOCUS>;
81*4882a593Smuzhiyun			linux,can-disable;
82*4882a593Smuzhiyun		};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun		camera_capture {
85*4882a593Smuzhiyun			label = "Camera Capture";
86*4882a593Smuzhiyun			gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
87*4882a593Smuzhiyun			linux,code = <KEY_CAMERA>;
88*4882a593Smuzhiyun			linux,can-disable;
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		lock_button {
92*4882a593Smuzhiyun			label = "Lock Button";
93*4882a593Smuzhiyun			gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
94*4882a593Smuzhiyun			linux,code = <KEY_SCREENLOCK>;
95*4882a593Smuzhiyun			linux,can-disable;
96*4882a593Smuzhiyun		};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun		keypad_slide {
99*4882a593Smuzhiyun			label = "Keypad Slide";
100*4882a593Smuzhiyun			gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
101*4882a593Smuzhiyun			linux,input-type = <EV_SW>;
102*4882a593Smuzhiyun			linux,code = <SW_KEYPAD_SLIDE>;
103*4882a593Smuzhiyun			linux,can-disable;
104*4882a593Smuzhiyun		};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun		proximity_sensor {
107*4882a593Smuzhiyun			label = "Proximity Sensor";
108*4882a593Smuzhiyun			gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
109*4882a593Smuzhiyun			linux,input-type = <EV_SW>;
110*4882a593Smuzhiyun			linux,code = <SW_FRONT_PROXIMITY>;
111*4882a593Smuzhiyun			linux,can-disable;
112*4882a593Smuzhiyun		};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun		machine_cover {
115*4882a593Smuzhiyun			label = "Machine Cover";
116*4882a593Smuzhiyun			gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
117*4882a593Smuzhiyun			linux,input-type = <EV_SW>;
118*4882a593Smuzhiyun			linux,code = <SW_MACHINE_COVER>;
119*4882a593Smuzhiyun			linux,can-disable;
120*4882a593Smuzhiyun		};
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	isp1707: isp1707 {
124*4882a593Smuzhiyun		compatible = "nxp,isp1707";
125*4882a593Smuzhiyun		nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
126*4882a593Smuzhiyun		usb-phy = <&usb2_phy>;
127*4882a593Smuzhiyun	};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	tv: connector {
130*4882a593Smuzhiyun		compatible = "composite-video-connector";
131*4882a593Smuzhiyun		label = "tv";
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun		port {
134*4882a593Smuzhiyun			tv_connector_in: endpoint {
135*4882a593Smuzhiyun				remote-endpoint = <&venc_out>;
136*4882a593Smuzhiyun			};
137*4882a593Smuzhiyun		};
138*4882a593Smuzhiyun	};
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun	sound: n900-audio {
141*4882a593Smuzhiyun		compatible = "nokia,n900-audio";
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun		nokia,cpu-dai = <&mcbsp2>;
144*4882a593Smuzhiyun		nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
145*4882a593Smuzhiyun		nokia,headphone-amplifier = <&tpa6130a2>;
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun		tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
148*4882a593Smuzhiyun		jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
149*4882a593Smuzhiyun		eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
150*4882a593Smuzhiyun		speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
151*4882a593Smuzhiyun	};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun	battery: n900-battery {
154*4882a593Smuzhiyun		compatible = "nokia,n900-battery";
155*4882a593Smuzhiyun		io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
156*4882a593Smuzhiyun		io-channel-names = "temp", "bsi", "vbat";
157*4882a593Smuzhiyun	};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun	pwm9: dmtimer-pwm {
160*4882a593Smuzhiyun		compatible = "ti,omap-dmtimer-pwm";
161*4882a593Smuzhiyun		#pwm-cells = <3>;
162*4882a593Smuzhiyun		ti,timers = <&timer9>;
163*4882a593Smuzhiyun		ti,clock-source = <0x00>; /* timer_sys_ck */
164*4882a593Smuzhiyun	};
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun	ir: n900-ir {
167*4882a593Smuzhiyun		compatible = "nokia,n900-ir";
168*4882a593Smuzhiyun		pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
169*4882a593Smuzhiyun	};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	rom_rng: rng {
172*4882a593Smuzhiyun		compatible = "nokia,n900-rom-rng";
173*4882a593Smuzhiyun		clocks = <&rng_ick>;
174*4882a593Smuzhiyun		clock-names = "ick";
175*4882a593Smuzhiyun	};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun	/* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
178*4882a593Smuzhiyun	vctcxo: vctcxo {
179*4882a593Smuzhiyun		compatible = "fixed-clock";
180*4882a593Smuzhiyun		#clock-cells = <0>;
181*4882a593Smuzhiyun		clock-frequency = <38400000>;
182*4882a593Smuzhiyun	};
183*4882a593Smuzhiyun};
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun&isp {
186*4882a593Smuzhiyun	vdds_csib-supply = <&vaux2>;
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun	pinctrl-names = "default";
189*4882a593Smuzhiyun	pinctrl-0 = <&camera_pins>;
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun	ports {
192*4882a593Smuzhiyun		port@1 {
193*4882a593Smuzhiyun			reg = <1>;
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun			csi_isp: endpoint {
196*4882a593Smuzhiyun				remote-endpoint = <&csi_cam1>;
197*4882a593Smuzhiyun				bus-type = <3>; /* CCP2 */
198*4882a593Smuzhiyun				clock-lanes = <1>;
199*4882a593Smuzhiyun				data-lanes = <0>;
200*4882a593Smuzhiyun				lane-polarity = <0 0>;
201*4882a593Smuzhiyun				/* Select strobe = <1> for back camera, <0> for front camera */
202*4882a593Smuzhiyun				strobe = <1>;
203*4882a593Smuzhiyun			};
204*4882a593Smuzhiyun		};
205*4882a593Smuzhiyun	};
206*4882a593Smuzhiyun};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun&omap3_pmx_core {
209*4882a593Smuzhiyun	pinctrl-names = "default";
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	uart2_pins: pinmux_uart2_pins {
212*4882a593Smuzhiyun		pinctrl-single,pins = <
213*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0)		/* uart2_cts */
214*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0)		/* uart2_rts */
215*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0)		/* uart2_tx */
216*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0)		/* uart2_rx */
217*4882a593Smuzhiyun		>;
218*4882a593Smuzhiyun	};
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun	uart3_pins: pinmux_uart3_pins {
221*4882a593Smuzhiyun		pinctrl-single,pins = <
222*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)		/* uart3_rx */
223*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)		/* uart3_tx */
224*4882a593Smuzhiyun		>;
225*4882a593Smuzhiyun	};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun	ethernet_pins: pinmux_ethernet_pins {
228*4882a593Smuzhiyun		pinctrl-single,pins = <
229*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* gpmc_ncs3.gpio_54 */
230*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4)		/* dss_data16.gpio_86 */
231*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4)		/* uart3_rts_sd.gpio_164 */
232*4882a593Smuzhiyun		>;
233*4882a593Smuzhiyun	};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun	gpmc_pins: pinmux_gpmc_pins {
236*4882a593Smuzhiyun		pinctrl-single,pins = <
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun			/* address lines */
239*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a1.gpmc_a1 */
240*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a2.gpmc_a2 */
241*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a3.gpmc_a3 */
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun			/* data lines, gpmc_d0..d7 not muxable according to TRM */
244*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0)        /* gpmc_d8.gpmc_d8 */
245*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0)        /* gpmc_d9.gpmc_d9 */
246*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0)        /* gpmc_d10.gpmc_d10 */
247*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0)        /* gpmc_d11.gpmc_d11 */
248*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0)        /* gpmc_d12.gpmc_d12 */
249*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0)        /* gpmc_d13.gpmc_d13 */
250*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0)        /* gpmc_d14.gpmc_d14 */
251*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0)        /* gpmc_d15.gpmc_d15 */
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun			/*
254*4882a593Smuzhiyun			 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
255*4882a593Smuzhiyun			 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
256*4882a593Smuzhiyun			 */
257*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0)       /* gpmc_ncs1.gpmc_ncs1 */
258*4882a593Smuzhiyun                        OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
259*4882a593Smuzhiyun		>;
260*4882a593Smuzhiyun	};
261*4882a593Smuzhiyun
262*4882a593Smuzhiyun	i2c1_pins: pinmux_i2c1_pins {
263*4882a593Smuzhiyun		pinctrl-single,pins = <
264*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0)		/* i2c1_scl */
265*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0)		/* i2c1_sda */
266*4882a593Smuzhiyun		>;
267*4882a593Smuzhiyun	};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	i2c2_pins: pinmux_i2c2_pins {
270*4882a593Smuzhiyun		pinctrl-single,pins = <
271*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0)		/* i2c2_scl */
272*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0)		/* i2c2_sda */
273*4882a593Smuzhiyun		>;
274*4882a593Smuzhiyun	};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun	i2c3_pins: pinmux_i2c3_pins {
277*4882a593Smuzhiyun		pinctrl-single,pins = <
278*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0)		/* i2c3_scl */
279*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0)		/* i2c3_sda */
280*4882a593Smuzhiyun		>;
281*4882a593Smuzhiyun	};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun	debug_leds: pinmux_debug_led_pins {
284*4882a593Smuzhiyun		pinctrl-single,pins = <
285*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4)	/* mcbsp1_clkx.gpio_162 */
286*4882a593Smuzhiyun		>;
287*4882a593Smuzhiyun	};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun	mcspi4_pins: pinmux_mcspi4_pins {
290*4882a593Smuzhiyun		pinctrl-single,pins = <
291*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
292*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
293*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
294*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
295*4882a593Smuzhiyun		>;
296*4882a593Smuzhiyun	};
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun	mmc1_pins: pinmux_mmc1_pins {
299*4882a593Smuzhiyun		pinctrl-single,pins = <
300*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk */
301*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd */
302*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc1_dat0 */
303*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1 */
304*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2 */
305*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3 */
306*4882a593Smuzhiyun		>;
307*4882a593Smuzhiyun	};
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun	mmc2_pins: pinmux_mmc2_pins {
310*4882a593Smuzhiyun		pinctrl-single,pins = <
311*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk */
312*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd */
313*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc2_dat0 */
314*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1 */
315*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2 */
316*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3 */
317*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat4 */
318*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat5 */
319*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat6 */
320*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat7 */
321*4882a593Smuzhiyun		>;
322*4882a593Smuzhiyun	};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun	acx565akm_pins: pinmux_acx565akm_pins {
325*4882a593Smuzhiyun		pinctrl-single,pins = <
326*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4)		/* RX51_LCD_RESET_GPIO */
327*4882a593Smuzhiyun		>;
328*4882a593Smuzhiyun	};
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun	dss_sdi_pins: pinmux_dss_sdi_pins {
331*4882a593Smuzhiyun		pinctrl-single,pins = <
332*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1)   /* dss_data10.sdi_dat1n */
333*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1)   /* dss_data11.sdi_dat1p */
334*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1)   /* dss_data12.sdi_dat2n */
335*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1)   /* dss_data13.sdi_dat2p */
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp */
338*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn */
339*4882a593Smuzhiyun		>;
340*4882a593Smuzhiyun	};
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun	wl1251_pins: pinmux_wl1251 {
343*4882a593Smuzhiyun		pinctrl-single,pins = <
344*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4)		/* gpio 87 => wl1251 enable */
345*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4)		/* gpio 42 => wl1251 irq */
346*4882a593Smuzhiyun		>;
347*4882a593Smuzhiyun	};
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun	ssi_pins: pinmux_ssi {
350*4882a593Smuzhiyun		pinctrl-single,pins = <
351*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1)	/* ssi1_rdy_tx */
352*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1)		/* ssi1_flag_tx */
353*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4)		/* ssi1_wake_tx (cawake) */
354*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1)		/* ssi1_dat_tx */
355*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1)		/* ssi1_dat_rx */
356*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1)		/* ssi1_flag_rx */
357*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1)		/* ssi1_rdy_rx */
358*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1)		/* ssi1_wake */
359*4882a593Smuzhiyun		>;
360*4882a593Smuzhiyun	};
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun	modem_pins: pinmux_modem {
363*4882a593Smuzhiyun		pinctrl-single,pins = <
364*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4)		/* gpio 70 => cmt_apeslpx */
365*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4)		/* gpio 72 => ape_rst_rq */
366*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4)		/* gpio 73 => cmt_rst_rq */
367*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4)		/* gpio 74 => cmt_en */
368*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4)		/* gpio 75 => cmt_rst */
369*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)		/* gpio 157 => cmt_bsi */
370*4882a593Smuzhiyun		>;
371*4882a593Smuzhiyun	};
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun	camera_pins: pinmux_camera {
374*4882a593Smuzhiyun		pinctrl-single,pins = <
375*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7)       /* cam_hs */
376*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7)       /* cam_vs */
377*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0)       /* cam_xclka */
378*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7)       /* cam_d4 */
379*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)        /* cam_d6 */
380*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)        /* cam_d7 */
381*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0)        /* cam_d8 */
382*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0)        /* cam_d9 */
383*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7)       /* cam_d10 */
384*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7)       /* cam_xclkb */
385*4882a593Smuzhiyun			OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0)       /* cam_strobe */
386*4882a593Smuzhiyun		>;
387*4882a593Smuzhiyun	};
388*4882a593Smuzhiyun};
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun&i2c1 {
391*4882a593Smuzhiyun	pinctrl-names = "default";
392*4882a593Smuzhiyun	pinctrl-0 = <&i2c1_pins>;
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun	clock-frequency = <2200000>;
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun	twl: twl@48 {
397*4882a593Smuzhiyun		reg = <0x48>;
398*4882a593Smuzhiyun		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
399*4882a593Smuzhiyun		interrupt-parent = <&intc>;
400*4882a593Smuzhiyun	};
401*4882a593Smuzhiyun};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun#include "twl4030.dtsi"
404*4882a593Smuzhiyun#include "twl4030_omap3.dtsi"
405*4882a593Smuzhiyun
406*4882a593Smuzhiyun&vaux1 {
407*4882a593Smuzhiyun	regulator-name = "V28";
408*4882a593Smuzhiyun	regulator-min-microvolt = <2800000>;
409*4882a593Smuzhiyun	regulator-max-microvolt = <2800000>;
410*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
411*4882a593Smuzhiyun	regulator-always-on; /* due to battery cover sensor */
412*4882a593Smuzhiyun};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun&vaux2 {
415*4882a593Smuzhiyun	regulator-name = "VCSI";
416*4882a593Smuzhiyun	regulator-min-microvolt = <1800000>;
417*4882a593Smuzhiyun	regulator-max-microvolt = <1800000>;
418*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
419*4882a593Smuzhiyun};
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun&vaux3 {
422*4882a593Smuzhiyun	regulator-name = "VMMC2_30";
423*4882a593Smuzhiyun	regulator-min-microvolt = <2800000>;
424*4882a593Smuzhiyun	regulator-max-microvolt = <3000000>;
425*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
426*4882a593Smuzhiyun};
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun&vaux4 {
429*4882a593Smuzhiyun	regulator-name = "VCAM_ANA_28";
430*4882a593Smuzhiyun	regulator-min-microvolt = <2800000>;
431*4882a593Smuzhiyun	regulator-max-microvolt = <2800000>;
432*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
433*4882a593Smuzhiyun};
434*4882a593Smuzhiyun
435*4882a593Smuzhiyun&vmmc1 {
436*4882a593Smuzhiyun	regulator-name = "VMMC1";
437*4882a593Smuzhiyun	regulator-min-microvolt = <1850000>;
438*4882a593Smuzhiyun	regulator-max-microvolt = <3150000>;
439*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
440*4882a593Smuzhiyun};
441*4882a593Smuzhiyun
442*4882a593Smuzhiyun&vmmc2 {
443*4882a593Smuzhiyun	regulator-name = "V28_A";
444*4882a593Smuzhiyun	regulator-min-microvolt = <2800000>;
445*4882a593Smuzhiyun	regulator-max-microvolt = <3000000>;
446*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
447*4882a593Smuzhiyun	regulator-always-on; /* due VIO leak to AIC34 VDDs */
448*4882a593Smuzhiyun};
449*4882a593Smuzhiyun
450*4882a593Smuzhiyun&vpll1 {
451*4882a593Smuzhiyun	regulator-name = "VPLL";
452*4882a593Smuzhiyun	regulator-min-microvolt = <1800000>;
453*4882a593Smuzhiyun	regulator-max-microvolt = <1800000>;
454*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
455*4882a593Smuzhiyun	regulator-always-on;
456*4882a593Smuzhiyun};
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun&vpll2 {
459*4882a593Smuzhiyun	regulator-name = "VSDI_CSI";
460*4882a593Smuzhiyun	regulator-min-microvolt = <1800000>;
461*4882a593Smuzhiyun	regulator-max-microvolt = <1800000>;
462*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
463*4882a593Smuzhiyun	regulator-always-on;
464*4882a593Smuzhiyun};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun&vsim {
467*4882a593Smuzhiyun	regulator-name = "VMMC2_IO_18";
468*4882a593Smuzhiyun	regulator-min-microvolt = <1800000>;
469*4882a593Smuzhiyun	regulator-max-microvolt = <1800000>;
470*4882a593Smuzhiyun	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
471*4882a593Smuzhiyun};
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun&vio {
474*4882a593Smuzhiyun	regulator-name = "VIO";
475*4882a593Smuzhiyun	regulator-min-microvolt = <1800000>;
476*4882a593Smuzhiyun	regulator-max-microvolt = <1800000>;
477*4882a593Smuzhiyun};
478*4882a593Smuzhiyun
479*4882a593Smuzhiyun&vintana1 {
480*4882a593Smuzhiyun	regulator-name = "VINTANA1";
481*4882a593Smuzhiyun	/* fixed to 1500000 */
482*4882a593Smuzhiyun	regulator-always-on;
483*4882a593Smuzhiyun};
484*4882a593Smuzhiyun
485*4882a593Smuzhiyun&vintana2 {
486*4882a593Smuzhiyun	regulator-name = "VINTANA2";
487*4882a593Smuzhiyun	regulator-min-microvolt = <2750000>;
488*4882a593Smuzhiyun	regulator-max-microvolt = <2750000>;
489*4882a593Smuzhiyun	regulator-always-on;
490*4882a593Smuzhiyun};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun&vintdig {
493*4882a593Smuzhiyun	regulator-name = "VINTDIG";
494*4882a593Smuzhiyun	/* fixed to 1500000 */
495*4882a593Smuzhiyun	regulator-always-on;
496*4882a593Smuzhiyun};
497*4882a593Smuzhiyun
498*4882a593Smuzhiyun/* First two dma channels are reserved on secure omap3 */
499*4882a593Smuzhiyun&sdma {
500*4882a593Smuzhiyun	dma-channel-mask = <0xfffffffc>;
501*4882a593Smuzhiyun};
502*4882a593Smuzhiyun
503*4882a593Smuzhiyun&twl {
504*4882a593Smuzhiyun	twl_audio: audio {
505*4882a593Smuzhiyun		compatible = "ti,twl4030-audio";
506*4882a593Smuzhiyun		ti,enable-vibra = <1>;
507*4882a593Smuzhiyun	};
508*4882a593Smuzhiyun
509*4882a593Smuzhiyun	twl_power: power {
510*4882a593Smuzhiyun		compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
511*4882a593Smuzhiyun		ti,use_poweroff;
512*4882a593Smuzhiyun	};
513*4882a593Smuzhiyun};
514*4882a593Smuzhiyun
515*4882a593Smuzhiyun&twl_keypad {
516*4882a593Smuzhiyun	linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
517*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x01, KEY_O)
518*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x02, KEY_P)
519*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
520*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
521*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x06, KEY_A)
522*4882a593Smuzhiyun			 MATRIX_KEY(0x00, 0x07, KEY_S)
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x00, KEY_W)
525*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x01, KEY_D)
526*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x02, KEY_F)
527*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x03, KEY_G)
528*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x04, KEY_H)
529*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x05, KEY_J)
530*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x06, KEY_K)
531*4882a593Smuzhiyun			 MATRIX_KEY(0x01, 0x07, KEY_L)
532*4882a593Smuzhiyun
533*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x00, KEY_E)
534*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x01, KEY_DOT)
535*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x02, KEY_UP)
536*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
537*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x05, KEY_Z)
538*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x06, KEY_X)
539*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x07, KEY_C)
540*4882a593Smuzhiyun			 MATRIX_KEY(0x02, 0x08, KEY_F9)
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x00, KEY_R)
543*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x01, KEY_V)
544*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x02, KEY_B)
545*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x03, KEY_N)
546*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x04, KEY_M)
547*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
548*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
549*4882a593Smuzhiyun			 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
550*4882a593Smuzhiyun
551*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x00, KEY_T)
552*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
553*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
554*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
555*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
556*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
557*4882a593Smuzhiyun			 MATRIX_KEY(0x04, 0x08, KEY_F10)
558*4882a593Smuzhiyun
559*4882a593Smuzhiyun			 MATRIX_KEY(0x05, 0x00, KEY_Y)
560*4882a593Smuzhiyun			 MATRIX_KEY(0x05, 0x08, KEY_F11)
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun			 MATRIX_KEY(0x06, 0x00, KEY_U)
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun			 MATRIX_KEY(0x07, 0x00, KEY_I)
565*4882a593Smuzhiyun			 MATRIX_KEY(0x07, 0x01, KEY_F7)
566*4882a593Smuzhiyun			 MATRIX_KEY(0x07, 0x02, KEY_F8)
567*4882a593Smuzhiyun			 >;
568*4882a593Smuzhiyun};
569*4882a593Smuzhiyun
570*4882a593Smuzhiyun&twl_gpio {
571*4882a593Smuzhiyun	ti,pullups	= <0x0>;
572*4882a593Smuzhiyun	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
573*4882a593Smuzhiyun};
574*4882a593Smuzhiyun
575*4882a593Smuzhiyun&i2c2 {
576*4882a593Smuzhiyun	pinctrl-names = "default";
577*4882a593Smuzhiyun	pinctrl-0 = <&i2c2_pins>;
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun	clock-frequency = <100000>;
580*4882a593Smuzhiyun
581*4882a593Smuzhiyun	tlv320aic3x: tlv320aic3x@18 {
582*4882a593Smuzhiyun		compatible = "ti,tlv320aic3x";
583*4882a593Smuzhiyun		reg = <0x18>;
584*4882a593Smuzhiyun		reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
585*4882a593Smuzhiyun		ai3x-gpio-func = <
586*4882a593Smuzhiyun			0 /* AIC3X_GPIO1_FUNC_DISABLED */
587*4882a593Smuzhiyun			5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
588*4882a593Smuzhiyun		>;
589*4882a593Smuzhiyun
590*4882a593Smuzhiyun		AVDD-supply = <&vmmc2>;
591*4882a593Smuzhiyun		DRVDD-supply = <&vmmc2>;
592*4882a593Smuzhiyun		IOVDD-supply = <&vio>;
593*4882a593Smuzhiyun		DVDD-supply = <&vio>;
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun		ai3x-micbias-vg = <1>;
596*4882a593Smuzhiyun	};
597*4882a593Smuzhiyun
598*4882a593Smuzhiyun	tlv320aic3x_aux: tlv320aic3x@19 {
599*4882a593Smuzhiyun		compatible = "ti,tlv320aic3x";
600*4882a593Smuzhiyun		reg = <0x19>;
601*4882a593Smuzhiyun		reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun		AVDD-supply = <&vmmc2>;
604*4882a593Smuzhiyun		DRVDD-supply = <&vmmc2>;
605*4882a593Smuzhiyun		IOVDD-supply = <&vio>;
606*4882a593Smuzhiyun		DVDD-supply = <&vio>;
607*4882a593Smuzhiyun
608*4882a593Smuzhiyun		ai3x-micbias-vg = <2>;
609*4882a593Smuzhiyun	};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun	tsl2563: tsl2563@29 {
612*4882a593Smuzhiyun		compatible = "amstaos,tsl2563";
613*4882a593Smuzhiyun		reg = <0x29>;
614*4882a593Smuzhiyun
615*4882a593Smuzhiyun		amstaos,cover-comp-gain = <16>;
616*4882a593Smuzhiyun	};
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun	adp1653: led-controller@30 {
619*4882a593Smuzhiyun		compatible = "adi,adp1653";
620*4882a593Smuzhiyun		reg = <0x30>;
621*4882a593Smuzhiyun		enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
622*4882a593Smuzhiyun
623*4882a593Smuzhiyun		flash {
624*4882a593Smuzhiyun			flash-timeout-us = <500000>;
625*4882a593Smuzhiyun			flash-max-microamp = <320000>;
626*4882a593Smuzhiyun			led-max-microamp = <50000>;
627*4882a593Smuzhiyun		};
628*4882a593Smuzhiyun		indicator {
629*4882a593Smuzhiyun			led-max-microamp = <17500>;
630*4882a593Smuzhiyun		};
631*4882a593Smuzhiyun	};
632*4882a593Smuzhiyun
633*4882a593Smuzhiyun	lp5523: lp5523@32 {
634*4882a593Smuzhiyun		#address-cells = <1>;
635*4882a593Smuzhiyun		#size-cells = <0>;
636*4882a593Smuzhiyun		compatible = "national,lp5523";
637*4882a593Smuzhiyun		reg = <0x32>;
638*4882a593Smuzhiyun		clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
639*4882a593Smuzhiyun		enable-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun		led@0 {
642*4882a593Smuzhiyun			reg = <0>;
643*4882a593Smuzhiyun			chan-name = "lp5523:kb1";
644*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
645*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
646*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
647*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
648*4882a593Smuzhiyun		};
649*4882a593Smuzhiyun
650*4882a593Smuzhiyun		led@1 {
651*4882a593Smuzhiyun			reg = <1>;
652*4882a593Smuzhiyun			chan-name = "lp5523:kb2";
653*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
654*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
655*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
656*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
657*4882a593Smuzhiyun		};
658*4882a593Smuzhiyun
659*4882a593Smuzhiyun		led@2 {
660*4882a593Smuzhiyun			reg = <2>;
661*4882a593Smuzhiyun			chan-name = "lp5523:kb3";
662*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
663*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
664*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
665*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
666*4882a593Smuzhiyun		};
667*4882a593Smuzhiyun
668*4882a593Smuzhiyun		led@3 {
669*4882a593Smuzhiyun			reg = <3>;
670*4882a593Smuzhiyun			chan-name = "lp5523:kb4";
671*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
672*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
673*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
674*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
675*4882a593Smuzhiyun		};
676*4882a593Smuzhiyun
677*4882a593Smuzhiyun		led@4 {
678*4882a593Smuzhiyun			reg = <4>;
679*4882a593Smuzhiyun			chan-name = "lp5523:b";
680*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
681*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
682*4882a593Smuzhiyun			color = <LED_COLOR_ID_BLUE>;
683*4882a593Smuzhiyun			function = LED_FUNCTION_STATUS;
684*4882a593Smuzhiyun		};
685*4882a593Smuzhiyun
686*4882a593Smuzhiyun		led@5 {
687*4882a593Smuzhiyun			reg = <5>;
688*4882a593Smuzhiyun			chan-name = "lp5523:g";
689*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
690*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
691*4882a593Smuzhiyun			color = <LED_COLOR_ID_GREEN>;
692*4882a593Smuzhiyun			function = LED_FUNCTION_STATUS;
693*4882a593Smuzhiyun		};
694*4882a593Smuzhiyun
695*4882a593Smuzhiyun		led@6 {
696*4882a593Smuzhiyun			reg = <6>;
697*4882a593Smuzhiyun			chan-name = "lp5523:r";
698*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
699*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
700*4882a593Smuzhiyun			color = <LED_COLOR_ID_RED>;
701*4882a593Smuzhiyun			function = LED_FUNCTION_STATUS;
702*4882a593Smuzhiyun		};
703*4882a593Smuzhiyun
704*4882a593Smuzhiyun		led@7 {
705*4882a593Smuzhiyun			reg = <7>;
706*4882a593Smuzhiyun			chan-name = "lp5523:kb5";
707*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
708*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
709*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
710*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
711*4882a593Smuzhiyun		};
712*4882a593Smuzhiyun
713*4882a593Smuzhiyun		led@8 {
714*4882a593Smuzhiyun			reg = <8>;
715*4882a593Smuzhiyun			chan-name = "lp5523:kb6";
716*4882a593Smuzhiyun			led-cur = /bits/ 8 <50>;
717*4882a593Smuzhiyun			max-cur = /bits/ 8 <100>;
718*4882a593Smuzhiyun			color = <LED_COLOR_ID_WHITE>;
719*4882a593Smuzhiyun			function = LED_FUNCTION_KBD_BACKLIGHT;
720*4882a593Smuzhiyun		};
721*4882a593Smuzhiyun	};
722*4882a593Smuzhiyun
723*4882a593Smuzhiyun	bq27200: bq27200@55 {
724*4882a593Smuzhiyun		compatible = "ti,bq27200";
725*4882a593Smuzhiyun		reg = <0x55>;
726*4882a593Smuzhiyun		power-supplies = <&bq24150a>;
727*4882a593Smuzhiyun	};
728*4882a593Smuzhiyun
729*4882a593Smuzhiyun	/* Stereo headphone amplifier */
730*4882a593Smuzhiyun	tpa6130a2: tpa6130a2@60 {
731*4882a593Smuzhiyun		compatible = "ti,tpa6130a2";
732*4882a593Smuzhiyun		reg = <0x60>;
733*4882a593Smuzhiyun
734*4882a593Smuzhiyun		Vdd-supply = <&vmmc2>;
735*4882a593Smuzhiyun
736*4882a593Smuzhiyun		power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
737*4882a593Smuzhiyun	};
738*4882a593Smuzhiyun
739*4882a593Smuzhiyun	si4713: si4713@63 {
740*4882a593Smuzhiyun		compatible = "silabs,si4713";
741*4882a593Smuzhiyun                reg = <0x63>;
742*4882a593Smuzhiyun
743*4882a593Smuzhiyun                interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
744*4882a593Smuzhiyun                reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
745*4882a593Smuzhiyun                vio-supply = <&vio>;
746*4882a593Smuzhiyun                vdd-supply = <&vaux1>;
747*4882a593Smuzhiyun	};
748*4882a593Smuzhiyun
749*4882a593Smuzhiyun	bq24150a: bq24150a@6b {
750*4882a593Smuzhiyun		compatible = "ti,bq24150a";
751*4882a593Smuzhiyun		reg = <0x6b>;
752*4882a593Smuzhiyun
753*4882a593Smuzhiyun		ti,current-limit = <100>;
754*4882a593Smuzhiyun		ti,weak-battery-voltage = <3400>;
755*4882a593Smuzhiyun		ti,battery-regulation-voltage = <4200>;
756*4882a593Smuzhiyun		ti,charge-current = <650>;
757*4882a593Smuzhiyun		ti,termination-current = <100>;
758*4882a593Smuzhiyun		ti,resistor-sense = <68>;
759*4882a593Smuzhiyun
760*4882a593Smuzhiyun		ti,usb-charger-detection = <&isp1707>;
761*4882a593Smuzhiyun	};
762*4882a593Smuzhiyun};
763*4882a593Smuzhiyun
764*4882a593Smuzhiyun&i2c3 {
765*4882a593Smuzhiyun	pinctrl-names = "default";
766*4882a593Smuzhiyun	pinctrl-0 = <&i2c3_pins>;
767*4882a593Smuzhiyun
768*4882a593Smuzhiyun	clock-frequency = <400000>;
769*4882a593Smuzhiyun
770*4882a593Smuzhiyun	lis302dl: lis3lv02d@1d {
771*4882a593Smuzhiyun		compatible = "st,lis3lv02d";
772*4882a593Smuzhiyun		reg = <0x1d>;
773*4882a593Smuzhiyun
774*4882a593Smuzhiyun		Vdd-supply = <&vaux1>;
775*4882a593Smuzhiyun		Vdd_IO-supply = <&vio>;
776*4882a593Smuzhiyun
777*4882a593Smuzhiyun		interrupt-parent = <&gpio6>;
778*4882a593Smuzhiyun		interrupts = <21 20>; /* 181 and 180 */
779*4882a593Smuzhiyun
780*4882a593Smuzhiyun		/* click flags */
781*4882a593Smuzhiyun		st,click-single-x;
782*4882a593Smuzhiyun		st,click-single-y;
783*4882a593Smuzhiyun		st,click-single-z;
784*4882a593Smuzhiyun
785*4882a593Smuzhiyun		/* Limits are 0.5g * value */
786*4882a593Smuzhiyun		st,click-threshold-x = <8>;
787*4882a593Smuzhiyun		st,click-threshold-y = <8>;
788*4882a593Smuzhiyun		st,click-threshold-z = <10>;
789*4882a593Smuzhiyun
790*4882a593Smuzhiyun		/* Click must be longer than time limit */
791*4882a593Smuzhiyun		st,click-time-limit = <9>;
792*4882a593Smuzhiyun
793*4882a593Smuzhiyun		/* Kind of debounce filter */
794*4882a593Smuzhiyun		st,click-latency = <50>;
795*4882a593Smuzhiyun
796*4882a593Smuzhiyun		/* Interrupt line 2 for click detection */
797*4882a593Smuzhiyun		st,irq2-click;
798*4882a593Smuzhiyun
799*4882a593Smuzhiyun		st,wakeup-x-hi;
800*4882a593Smuzhiyun		st,wakeup-y-hi;
801*4882a593Smuzhiyun		st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
802*4882a593Smuzhiyun
803*4882a593Smuzhiyun		st,wakeup2-z-hi;
804*4882a593Smuzhiyun		st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
805*4882a593Smuzhiyun
806*4882a593Smuzhiyun		st,hipass1-disable;
807*4882a593Smuzhiyun		st,hipass2-disable;
808*4882a593Smuzhiyun
809*4882a593Smuzhiyun		st,axis-x = <1>;    /* LIS3_DEV_X */
810*4882a593Smuzhiyun		st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
811*4882a593Smuzhiyun		st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
812*4882a593Smuzhiyun
813*4882a593Smuzhiyun		st,min-limit-x = <(-32)>;
814*4882a593Smuzhiyun		st,min-limit-y = <3>;
815*4882a593Smuzhiyun		st,min-limit-z = <3>;
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun		st,max-limit-x = <(-3)>;
818*4882a593Smuzhiyun		st,max-limit-y = <32>;
819*4882a593Smuzhiyun		st,max-limit-z = <32>;
820*4882a593Smuzhiyun	};
821*4882a593Smuzhiyun
822*4882a593Smuzhiyun	cam1: camera@3e {
823*4882a593Smuzhiyun		compatible = "toshiba,et8ek8";
824*4882a593Smuzhiyun		reg = <0x3e>;
825*4882a593Smuzhiyun
826*4882a593Smuzhiyun		vana-supply = <&vaux4>;
827*4882a593Smuzhiyun
828*4882a593Smuzhiyun		clocks = <&isp 0>;
829*4882a593Smuzhiyun		clock-names = "extclk";
830*4882a593Smuzhiyun		clock-frequency = <9600000>;
831*4882a593Smuzhiyun
832*4882a593Smuzhiyun		reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
833*4882a593Smuzhiyun
834*4882a593Smuzhiyun		lens-focus = <&ad5820>;
835*4882a593Smuzhiyun
836*4882a593Smuzhiyun		port {
837*4882a593Smuzhiyun			csi_cam1: endpoint {
838*4882a593Smuzhiyun				bus-type = <3>; /* CCP2 */
839*4882a593Smuzhiyun				strobe = <1>;
840*4882a593Smuzhiyun				clock-inv = <0>;
841*4882a593Smuzhiyun				crc = <1>;
842*4882a593Smuzhiyun
843*4882a593Smuzhiyun				remote-endpoint = <&csi_isp>;
844*4882a593Smuzhiyun			};
845*4882a593Smuzhiyun		};
846*4882a593Smuzhiyun	};
847*4882a593Smuzhiyun
848*4882a593Smuzhiyun	/* D/A converter for auto-focus */
849*4882a593Smuzhiyun	ad5820: dac@c {
850*4882a593Smuzhiyun		compatible = "adi,ad5820";
851*4882a593Smuzhiyun		reg = <0x0c>;
852*4882a593Smuzhiyun
853*4882a593Smuzhiyun		VANA-supply = <&vaux4>;
854*4882a593Smuzhiyun
855*4882a593Smuzhiyun		#io-channel-cells = <0>;
856*4882a593Smuzhiyun	};
857*4882a593Smuzhiyun};
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun&mmc1 {
860*4882a593Smuzhiyun	pinctrl-names = "default";
861*4882a593Smuzhiyun	pinctrl-0 = <&mmc1_pins>;
862*4882a593Smuzhiyun	vmmc-supply = <&vmmc1>;
863*4882a593Smuzhiyun	bus-width = <4>;
864*4882a593Smuzhiyun};
865*4882a593Smuzhiyun
866*4882a593Smuzhiyun/* most boards use vaux3, only some old versions use vmmc2 instead */
867*4882a593Smuzhiyun&mmc2 {
868*4882a593Smuzhiyun	pinctrl-names = "default";
869*4882a593Smuzhiyun	pinctrl-0 = <&mmc2_pins>;
870*4882a593Smuzhiyun	vmmc-supply = <&vaux3>;
871*4882a593Smuzhiyun	vqmmc-supply = <&vsim>;
872*4882a593Smuzhiyun	bus-width = <8>;
873*4882a593Smuzhiyun	non-removable;
874*4882a593Smuzhiyun	no-sdio;
875*4882a593Smuzhiyun	no-sd;
876*4882a593Smuzhiyun};
877*4882a593Smuzhiyun
878*4882a593Smuzhiyun&mmc3 {
879*4882a593Smuzhiyun	status = "disabled";
880*4882a593Smuzhiyun};
881*4882a593Smuzhiyun
882*4882a593Smuzhiyun&gpmc {
883*4882a593Smuzhiyun	ranges = <0 0 0x01000000 0x01000000>,	/* 16 MB for OneNAND */
884*4882a593Smuzhiyun		 <1 0 0x02000000 0x01000000>;	/* 16 MB for smc91c96 */
885*4882a593Smuzhiyun	pinctrl-names = "default";
886*4882a593Smuzhiyun	pinctrl-0 = <&gpmc_pins>;
887*4882a593Smuzhiyun
888*4882a593Smuzhiyun	/* sys_ndmareq1 could be used by the driver, not as gpio65 though */
889*4882a593Smuzhiyun	onenand@0,0 {
890*4882a593Smuzhiyun		#address-cells = <1>;
891*4882a593Smuzhiyun		#size-cells = <1>;
892*4882a593Smuzhiyun		compatible = "ti,omap2-onenand";
893*4882a593Smuzhiyun		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
894*4882a593Smuzhiyun
895*4882a593Smuzhiyun		/*
896*4882a593Smuzhiyun		 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
897*4882a593Smuzhiyun		 * bootloader set values when booted with v5.1
898*4882a593Smuzhiyun		 * (OneNAND Manufacturer: Samsung):
899*4882a593Smuzhiyun		 *
900*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG1: 0xfb001202
901*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG2: 0x00111100
902*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG3: 0x00020200
903*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG4: 0x11001102
904*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG5: 0x03101616
905*4882a593Smuzhiyun		 *   cs0 GPMC_CS_CONFIG6: 0x90060000
906*4882a593Smuzhiyun		 */
907*4882a593Smuzhiyun		gpmc,sync-read;
908*4882a593Smuzhiyun		gpmc,sync-write;
909*4882a593Smuzhiyun		gpmc,burst-length = <16>;
910*4882a593Smuzhiyun		gpmc,burst-read;
911*4882a593Smuzhiyun		gpmc,burst-wrap;
912*4882a593Smuzhiyun		gpmc,burst-write;
913*4882a593Smuzhiyun		gpmc,device-width = <2>;
914*4882a593Smuzhiyun		gpmc,mux-add-data = <2>;
915*4882a593Smuzhiyun		gpmc,cs-on-ns = <0>;
916*4882a593Smuzhiyun		gpmc,cs-rd-off-ns = <102>;
917*4882a593Smuzhiyun		gpmc,cs-wr-off-ns = <102>;
918*4882a593Smuzhiyun		gpmc,adv-on-ns = <0>;
919*4882a593Smuzhiyun		gpmc,adv-rd-off-ns = <12>;
920*4882a593Smuzhiyun		gpmc,adv-wr-off-ns = <12>;
921*4882a593Smuzhiyun		gpmc,oe-on-ns = <12>;
922*4882a593Smuzhiyun		gpmc,oe-off-ns = <102>;
923*4882a593Smuzhiyun		gpmc,we-on-ns = <0>;
924*4882a593Smuzhiyun		gpmc,we-off-ns = <102>;
925*4882a593Smuzhiyun		gpmc,rd-cycle-ns = <132>;
926*4882a593Smuzhiyun		gpmc,wr-cycle-ns = <132>;
927*4882a593Smuzhiyun		gpmc,access-ns = <96>;
928*4882a593Smuzhiyun		gpmc,page-burst-access-ns = <18>;
929*4882a593Smuzhiyun		gpmc,bus-turnaround-ns = <0>;
930*4882a593Smuzhiyun		gpmc,cycle2cycle-delay-ns = <0>;
931*4882a593Smuzhiyun		gpmc,wait-monitoring-ns = <0>;
932*4882a593Smuzhiyun		gpmc,clk-activation-ns = <6>;
933*4882a593Smuzhiyun		gpmc,wr-data-mux-bus-ns = <36>;
934*4882a593Smuzhiyun		gpmc,wr-access-ns = <96>;
935*4882a593Smuzhiyun		gpmc,sync-clk-ps = <15000>;
936*4882a593Smuzhiyun
937*4882a593Smuzhiyun		/*
938*4882a593Smuzhiyun		 * MTD partition table corresponding to Nokia's
939*4882a593Smuzhiyun		 * Maemo 5 (Fremantle) release.
940*4882a593Smuzhiyun		 */
941*4882a593Smuzhiyun		partition@0 {
942*4882a593Smuzhiyun			label = "bootloader";
943*4882a593Smuzhiyun			reg = <0x00000000 0x00020000>;
944*4882a593Smuzhiyun			read-only;
945*4882a593Smuzhiyun		};
946*4882a593Smuzhiyun		partition@1 {
947*4882a593Smuzhiyun			label = "config";
948*4882a593Smuzhiyun			reg = <0x00020000 0x00060000>;
949*4882a593Smuzhiyun		};
950*4882a593Smuzhiyun		partition@2 {
951*4882a593Smuzhiyun			label = "log";
952*4882a593Smuzhiyun			reg = <0x00080000 0x00040000>;
953*4882a593Smuzhiyun		};
954*4882a593Smuzhiyun		partition@3 {
955*4882a593Smuzhiyun			label = "kernel";
956*4882a593Smuzhiyun			reg = <0x000c0000 0x00200000>;
957*4882a593Smuzhiyun		};
958*4882a593Smuzhiyun		partition@4 {
959*4882a593Smuzhiyun			label = "initfs";
960*4882a593Smuzhiyun			reg = <0x002c0000 0x00200000>;
961*4882a593Smuzhiyun		};
962*4882a593Smuzhiyun		partition@5 {
963*4882a593Smuzhiyun			label = "rootfs";
964*4882a593Smuzhiyun			reg = <0x004c0000 0x0fb40000>;
965*4882a593Smuzhiyun		};
966*4882a593Smuzhiyun	};
967*4882a593Smuzhiyun
968*4882a593Smuzhiyun	/* Ethernet is on some early development boards and qemu */
969*4882a593Smuzhiyun	ethernet@gpmc {
970*4882a593Smuzhiyun		compatible = "smsc,lan91c94";
971*4882a593Smuzhiyun		interrupt-parent = <&gpio2>;
972*4882a593Smuzhiyun		interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;	/* gpio54 */
973*4882a593Smuzhiyun		reg = <1 0 0xf>;		/* 16 byte IO range */
974*4882a593Smuzhiyun		bank-width = <2>;
975*4882a593Smuzhiyun		pinctrl-names = "default";
976*4882a593Smuzhiyun		pinctrl-0 = <&ethernet_pins>;
977*4882a593Smuzhiyun		power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;	/* gpio86 */
978*4882a593Smuzhiyun		reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* gpio164 */
979*4882a593Smuzhiyun		gpmc,device-width = <2>;
980*4882a593Smuzhiyun		gpmc,sync-clk-ps = <0>;
981*4882a593Smuzhiyun		gpmc,cs-on-ns = <0>;
982*4882a593Smuzhiyun		gpmc,cs-rd-off-ns = <48>;
983*4882a593Smuzhiyun		gpmc,cs-wr-off-ns = <24>;
984*4882a593Smuzhiyun		gpmc,adv-on-ns = <0>;
985*4882a593Smuzhiyun		gpmc,adv-rd-off-ns = <0>;
986*4882a593Smuzhiyun		gpmc,adv-wr-off-ns = <0>;
987*4882a593Smuzhiyun		gpmc,we-on-ns = <12>;
988*4882a593Smuzhiyun		gpmc,we-off-ns = <18>;
989*4882a593Smuzhiyun		gpmc,oe-on-ns = <12>;
990*4882a593Smuzhiyun		gpmc,oe-off-ns = <48>;
991*4882a593Smuzhiyun		gpmc,page-burst-access-ns = <0>;
992*4882a593Smuzhiyun		gpmc,access-ns = <42>;
993*4882a593Smuzhiyun		gpmc,rd-cycle-ns = <180>;
994*4882a593Smuzhiyun		gpmc,wr-cycle-ns = <180>;
995*4882a593Smuzhiyun		gpmc,bus-turnaround-ns = <0>;
996*4882a593Smuzhiyun		gpmc,cycle2cycle-delay-ns = <0>;
997*4882a593Smuzhiyun		gpmc,wait-monitoring-ns = <0>;
998*4882a593Smuzhiyun		gpmc,clk-activation-ns = <0>;
999*4882a593Smuzhiyun		gpmc,wr-access-ns = <0>;
1000*4882a593Smuzhiyun		gpmc,wr-data-mux-bus-ns = <12>;
1001*4882a593Smuzhiyun	};
1002*4882a593Smuzhiyun};
1003*4882a593Smuzhiyun
1004*4882a593Smuzhiyun&mcspi1 {
1005*4882a593Smuzhiyun	/*
1006*4882a593Smuzhiyun	 * For some reason, touchscreen is necessary for screen to work at
1007*4882a593Smuzhiyun	 * all on real hw. It works well without it on emulator.
1008*4882a593Smuzhiyun	 *
1009*4882a593Smuzhiyun	 * Also... order in the device tree actually matters here.
1010*4882a593Smuzhiyun	 */
1011*4882a593Smuzhiyun	tsc2005@0 {
1012*4882a593Smuzhiyun		compatible = "ti,tsc2005";
1013*4882a593Smuzhiyun		spi-max-frequency = <6000000>;
1014*4882a593Smuzhiyun		reg = <0>;
1015*4882a593Smuzhiyun
1016*4882a593Smuzhiyun		vio-supply = <&vio>;
1017*4882a593Smuzhiyun
1018*4882a593Smuzhiyun		reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
1019*4882a593Smuzhiyun		interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
1020*4882a593Smuzhiyun
1021*4882a593Smuzhiyun		touchscreen-fuzz-x = <4>;
1022*4882a593Smuzhiyun		touchscreen-fuzz-y = <7>;
1023*4882a593Smuzhiyun		touchscreen-fuzz-pressure = <2>;
1024*4882a593Smuzhiyun		touchscreen-size-x = <4096>;
1025*4882a593Smuzhiyun		touchscreen-size-y = <4096>;
1026*4882a593Smuzhiyun		touchscreen-max-pressure = <2048>;
1027*4882a593Smuzhiyun
1028*4882a593Smuzhiyun		ti,x-plate-ohms = <280>;
1029*4882a593Smuzhiyun		ti,esd-recovery-timeout-ms = <8000>;
1030*4882a593Smuzhiyun	};
1031*4882a593Smuzhiyun
1032*4882a593Smuzhiyun	lcd: acx565akm@2 {
1033*4882a593Smuzhiyun		compatible = "sony,acx565akm";
1034*4882a593Smuzhiyun		spi-max-frequency = <6000000>;
1035*4882a593Smuzhiyun		reg = <2>;
1036*4882a593Smuzhiyun
1037*4882a593Smuzhiyun		pinctrl-names = "default";
1038*4882a593Smuzhiyun		pinctrl-0 = <&acx565akm_pins>;
1039*4882a593Smuzhiyun
1040*4882a593Smuzhiyun		label = "lcd";
1041*4882a593Smuzhiyun		reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
1042*4882a593Smuzhiyun
1043*4882a593Smuzhiyun		port {
1044*4882a593Smuzhiyun			lcd_in: endpoint {
1045*4882a593Smuzhiyun				remote-endpoint = <&sdi_out>;
1046*4882a593Smuzhiyun			};
1047*4882a593Smuzhiyun		};
1048*4882a593Smuzhiyun	};
1049*4882a593Smuzhiyun};
1050*4882a593Smuzhiyun
1051*4882a593Smuzhiyun&mcspi4 {
1052*4882a593Smuzhiyun	pinctrl-names = "default";
1053*4882a593Smuzhiyun	pinctrl-0 = <&mcspi4_pins>;
1054*4882a593Smuzhiyun
1055*4882a593Smuzhiyun	wl1251@0 {
1056*4882a593Smuzhiyun		pinctrl-names = "default";
1057*4882a593Smuzhiyun		pinctrl-0 = <&wl1251_pins>;
1058*4882a593Smuzhiyun
1059*4882a593Smuzhiyun		vio-supply = <&vio>;
1060*4882a593Smuzhiyun
1061*4882a593Smuzhiyun		compatible = "ti,wl1251";
1062*4882a593Smuzhiyun		reg = <0>;
1063*4882a593Smuzhiyun		spi-max-frequency = <48000000>;
1064*4882a593Smuzhiyun
1065*4882a593Smuzhiyun		spi-cpol;
1066*4882a593Smuzhiyun		spi-cpha;
1067*4882a593Smuzhiyun
1068*4882a593Smuzhiyun		ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1069*4882a593Smuzhiyun
1070*4882a593Smuzhiyun		interrupt-parent = <&gpio2>;
1071*4882a593Smuzhiyun		interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1072*4882a593Smuzhiyun
1073*4882a593Smuzhiyun		clocks = <&vctcxo>;
1074*4882a593Smuzhiyun	};
1075*4882a593Smuzhiyun};
1076*4882a593Smuzhiyun
1077*4882a593Smuzhiyun/* RNG not directly accessible on n900, see omap3-rom-rng instead */
1078*4882a593Smuzhiyun&rng_target {
1079*4882a593Smuzhiyun	status = "disabled";
1080*4882a593Smuzhiyun};
1081*4882a593Smuzhiyun
1082*4882a593Smuzhiyun&usb_otg_hs {
1083*4882a593Smuzhiyun	interface-type = <0>;
1084*4882a593Smuzhiyun	usb-phy = <&usb2_phy>;
1085*4882a593Smuzhiyun	phys = <&usb2_phy>;
1086*4882a593Smuzhiyun	phy-names = "usb2-phy";
1087*4882a593Smuzhiyun	mode = <2>;
1088*4882a593Smuzhiyun	power = <50>;
1089*4882a593Smuzhiyun};
1090*4882a593Smuzhiyun
1091*4882a593Smuzhiyun&uart1 {
1092*4882a593Smuzhiyun	status = "disabled";
1093*4882a593Smuzhiyun};
1094*4882a593Smuzhiyun
1095*4882a593Smuzhiyun&uart2 {
1096*4882a593Smuzhiyun	pinctrl-names = "default";
1097*4882a593Smuzhiyun	pinctrl-0 = <&uart2_pins>;
1098*4882a593Smuzhiyun
1099*4882a593Smuzhiyun	bcm2048: bluetooth {
1100*4882a593Smuzhiyun		compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1101*4882a593Smuzhiyun		reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1102*4882a593Smuzhiyun		host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1103*4882a593Smuzhiyun		bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1104*4882a593Smuzhiyun		clocks = <&vctcxo>;
1105*4882a593Smuzhiyun		clock-names = "sysclk";
1106*4882a593Smuzhiyun	};
1107*4882a593Smuzhiyun};
1108*4882a593Smuzhiyun
1109*4882a593Smuzhiyun&uart3 {
1110*4882a593Smuzhiyun	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1111*4882a593Smuzhiyun	pinctrl-names = "default";
1112*4882a593Smuzhiyun	pinctrl-0 = <&uart3_pins>;
1113*4882a593Smuzhiyun};
1114*4882a593Smuzhiyun
1115*4882a593Smuzhiyun&dss {
1116*4882a593Smuzhiyun	status = "okay";
1117*4882a593Smuzhiyun
1118*4882a593Smuzhiyun	pinctrl-names = "default";
1119*4882a593Smuzhiyun	pinctrl-0 = <&dss_sdi_pins>;
1120*4882a593Smuzhiyun
1121*4882a593Smuzhiyun	vdds_sdi-supply = <&vaux1>;
1122*4882a593Smuzhiyun
1123*4882a593Smuzhiyun	ports {
1124*4882a593Smuzhiyun		#address-cells = <1>;
1125*4882a593Smuzhiyun		#size-cells = <0>;
1126*4882a593Smuzhiyun
1127*4882a593Smuzhiyun		port@1 {
1128*4882a593Smuzhiyun			reg = <1>;
1129*4882a593Smuzhiyun
1130*4882a593Smuzhiyun			sdi_out: endpoint {
1131*4882a593Smuzhiyun				remote-endpoint = <&lcd_in>;
1132*4882a593Smuzhiyun				datapairs = <2>;
1133*4882a593Smuzhiyun			};
1134*4882a593Smuzhiyun		};
1135*4882a593Smuzhiyun	};
1136*4882a593Smuzhiyun};
1137*4882a593Smuzhiyun
1138*4882a593Smuzhiyun&venc {
1139*4882a593Smuzhiyun	status = "okay";
1140*4882a593Smuzhiyun
1141*4882a593Smuzhiyun	vdda-supply = <&vdac>;
1142*4882a593Smuzhiyun
1143*4882a593Smuzhiyun	port {
1144*4882a593Smuzhiyun		venc_out: endpoint {
1145*4882a593Smuzhiyun			remote-endpoint = <&tv_connector_in>;
1146*4882a593Smuzhiyun			ti,channels = <1>;
1147*4882a593Smuzhiyun		};
1148*4882a593Smuzhiyun	};
1149*4882a593Smuzhiyun};
1150*4882a593Smuzhiyun
1151*4882a593Smuzhiyun&mcbsp2 {
1152*4882a593Smuzhiyun	status = "okay";
1153*4882a593Smuzhiyun};
1154*4882a593Smuzhiyun
1155*4882a593Smuzhiyun&ssi_port1 {
1156*4882a593Smuzhiyun	pinctrl-names = "default";
1157*4882a593Smuzhiyun	pinctrl-0 = <&ssi_pins>;
1158*4882a593Smuzhiyun
1159*4882a593Smuzhiyun	ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1160*4882a593Smuzhiyun
1161*4882a593Smuzhiyun	modem: hsi-client {
1162*4882a593Smuzhiyun		compatible = "nokia,n900-modem";
1163*4882a593Smuzhiyun
1164*4882a593Smuzhiyun		pinctrl-names = "default";
1165*4882a593Smuzhiyun		pinctrl-0 = <&modem_pins>;
1166*4882a593Smuzhiyun
1167*4882a593Smuzhiyun		hsi-channel-ids = <0>, <1>, <2>, <3>;
1168*4882a593Smuzhiyun		hsi-channel-names = "mcsaab-control",
1169*4882a593Smuzhiyun				    "speech-control",
1170*4882a593Smuzhiyun				    "speech-data",
1171*4882a593Smuzhiyun				    "mcsaab-data";
1172*4882a593Smuzhiyun		hsi-speed-kbps = <55000>;
1173*4882a593Smuzhiyun		hsi-mode = "frame";
1174*4882a593Smuzhiyun		hsi-flow = "synchronized";
1175*4882a593Smuzhiyun		hsi-arb-mode = "round-robin";
1176*4882a593Smuzhiyun
1177*4882a593Smuzhiyun		interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1178*4882a593Smuzhiyun
1179*4882a593Smuzhiyun		gpios = <&gpio3  6 GPIO_ACTIVE_HIGH>, /* 70 */
1180*4882a593Smuzhiyun			<&gpio3  9 GPIO_ACTIVE_HIGH>, /* 73 */
1181*4882a593Smuzhiyun			<&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1182*4882a593Smuzhiyun			<&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1183*4882a593Smuzhiyun			<&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1184*4882a593Smuzhiyun		gpio-names = "cmt_apeslpx",
1185*4882a593Smuzhiyun			     "cmt_rst_rq",
1186*4882a593Smuzhiyun			     "cmt_en",
1187*4882a593Smuzhiyun			     "cmt_rst",
1188*4882a593Smuzhiyun			     "cmt_bsi";
1189*4882a593Smuzhiyun	};
1190*4882a593Smuzhiyun};
1191*4882a593Smuzhiyun
1192*4882a593Smuzhiyun&ssi_port2 {
1193*4882a593Smuzhiyun	status = "disabled";
1194*4882a593Smuzhiyun};
1195