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