xref: /NextBSD/sys/gnu/dts/arm/omap3-n900.dts (revision 287e3b14e9552995def1802ec9c5034f4adf28ec)
1/*
2 * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
3 * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 (or later) as
7 * published by the Free Software Foundation.
8 */
9
10/dts-v1/;
11
12#include "omap34xx-hs.dtsi"
13#include <dt-bindings/input/input.h>
14
15/ {
16	model = "Nokia N900";
17	compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
18
19	cpus {
20		cpu@0 {
21			cpu0-supply = <&vcc>;
22		};
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		heartbeat {
28			label = "debug::sleep";
29			gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;  /* gpio162 */
30			linux,default-trigger = "default-on";
31			pinctrl-names = "default";
32			pinctrl-0 = <&debug_leds>;
33		};
34	};
35
36	memory {
37		device_type = "memory";
38		reg = <0x80000000 0x10000000>; /* 256 MB */
39	};
40
41	gpio_keys {
42		compatible = "gpio-keys";
43
44		camera_lens_cover {
45			label = "Camera Lens Cover";
46			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
47			linux,input-type = <5>; /* EV_SW */
48			linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */
49			gpio-key,wakeup;
50		};
51
52		camera_focus {
53			label = "Camera Focus";
54			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
55			linux,code = <0x210>; /* KEY_CAMERA_FOCUS */
56			gpio-key,wakeup;
57		};
58
59		camera_capture {
60			label = "Camera Capture";
61			gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
62			linux,code = <0xd4>; /* KEY_CAMERA */
63			gpio-key,wakeup;
64		};
65
66		lock_button {
67			label = "Lock Button";
68			gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
69			linux,code = <0x98>; /* KEY_SCREENLOCK */
70			gpio-key,wakeup;
71		};
72
73		keypad_slide {
74			label = "Keypad Slide";
75			gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
76			linux,input-type = <5>; /* EV_SW */
77			linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */
78			gpio-key,wakeup;
79		};
80
81		proximity_sensor {
82			label = "Proximity Sensor";
83			gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
84			linux,input-type = <5>; /* EV_SW */
85			linux,code = <0x0b>; /* SW_FRONT_PROXIMITY */
86		};
87	};
88
89	isp1704: isp1704 {
90		compatible = "nxp,isp1704";
91		nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
92		usb-phy = <&usb2_phy>;
93	};
94
95	tv: connector {
96		compatible = "composite-video-connector";
97		label = "tv";
98
99		port {
100			tv_connector_in: endpoint {
101				remote-endpoint = <&venc_out>;
102			};
103		};
104	};
105
106	sound: n900-audio {
107		compatible = "nokia,n900-audio";
108
109		nokia,cpu-dai = <&mcbsp2>;
110		nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
111		nokia,headphone-amplifier = <&tpa6130a2>;
112
113		tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
114		jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
115		eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
116		speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
117	};
118
119	battery: n900-battery {
120		compatible = "nokia,n900-battery";
121		io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
122		io-channel-names = "temp", "bsi", "vbat";
123	};
124};
125
126&omap3_pmx_core {
127	pinctrl-names = "default";
128
129	uart2_pins: pinmux_uart2_pins {
130		pinctrl-single,pins = <
131			0x14a (PIN_INPUT | MUX_MODE0)		/* uart2_rx */
132			0x148 (PIN_OUTPUT | MUX_MODE0)		/* uart2_tx */
133		>;
134	};
135
136	uart3_pins: pinmux_uart3_pins {
137		pinctrl-single,pins = <
138			0x16e (PIN_INPUT | MUX_MODE0)		/* uart3_rx */
139			0x170 (PIN_OUTPUT | MUX_MODE0)		/* uart3_tx */
140		>;
141	};
142
143	ethernet_pins: pinmux_ethernet_pins {
144		pinctrl-single,pins = <
145			OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* gpmc_ncs3.gpio_54 */
146			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4)		/* dss_data16.gpio_86 */
147			OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4)		/* uart3_rts_sd.gpio_164 */
148		>;
149	};
150
151	gpmc_pins: pinmux_gpmc_pins {
152		pinctrl-single,pins = <
153
154			/* address lines */
155                        OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a1.gpmc_a1 */
156                        OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a2.gpmc_a2 */
157                        OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a3.gpmc_a3 */
158
159			/* data lines, gpmc_d0..d7 not muxable according to TRM */
160                        OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0)        /* gpmc_d8.gpmc_d8 */
161                        OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0)        /* gpmc_d9.gpmc_d9 */
162                        OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0)        /* gpmc_d10.gpmc_d10 */
163                        OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0)        /* gpmc_d11.gpmc_d11 */
164                        OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0)        /* gpmc_d12.gpmc_d12 */
165                        OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0)        /* gpmc_d13.gpmc_d13 */
166                        OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0)        /* gpmc_d14.gpmc_d14 */
167                        OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0)        /* gpmc_d15.gpmc_d15 */
168
169			/*
170			 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
171			 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
172			 */
173                        OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0)       /* gpmc_ncs1.gpmc_ncs1 */
174                        OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
175		>;
176	};
177
178	i2c1_pins: pinmux_i2c1_pins {
179		pinctrl-single,pins = <
180			0x18a (PIN_INPUT | MUX_MODE0)		/* i2c1_scl */
181			0x18c (PIN_INPUT | MUX_MODE0)		/* i2c1_sda */
182		>;
183	};
184
185	i2c2_pins: pinmux_i2c2_pins {
186		pinctrl-single,pins = <
187			0x18e (PIN_INPUT | MUX_MODE0)		/* i2c2_scl */
188			0x190 (PIN_INPUT | MUX_MODE0)		/* i2c2_sda */
189		>;
190	};
191
192	i2c3_pins: pinmux_i2c3_pins {
193		pinctrl-single,pins = <
194			0x192 (PIN_INPUT | MUX_MODE0)		/* i2c3_scl */
195			0x194 (PIN_INPUT | MUX_MODE0)		/* i2c3_sda */
196		>;
197	};
198
199	debug_leds: pinmux_debug_led_pins {
200		pinctrl-single,pins = <
201			OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4)	/* mcbsp1_clkx.gpio_162 */
202		>;
203	};
204
205	mcspi4_pins: pinmux_mcspi4_pins {
206		pinctrl-single,pins = <
207			0x15c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
208			0x162 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
209			0x160 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
210			0x166 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
211		>;
212	};
213
214	mmc1_pins: pinmux_mmc1_pins {
215		pinctrl-single,pins = <
216			0x114 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk */
217			0x116 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd */
218			0x118 (PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc1_dat0 */
219			0x11a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1 */
220			0x11c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2 */
221			0x11e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3 */
222		>;
223	};
224
225	mmc2_pins: pinmux_mmc2_pins {
226		pinctrl-single,pins = <
227			0x128 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk */
228			0x12a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd */
229			0x12c (PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc2_dat0 */
230			0x12e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1 */
231			0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2 */
232			0x132 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3 */
233			0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat4 */
234			0x136 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat5 */
235			0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat6 */
236			0x13a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat7 */
237		>;
238	};
239
240	acx565akm_pins: pinmux_acx565akm_pins {
241		pinctrl-single,pins = <
242			0x0d4 (PIN_OUTPUT | MUX_MODE4)		/* RX51_LCD_RESET_GPIO */
243		>;
244	};
245
246	dss_sdi_pins: pinmux_dss_sdi_pins {
247		pinctrl-single,pins = <
248			0x0c0 (PIN_OUTPUT | MUX_MODE1)   /* dss_data10.sdi_dat1n */
249			0x0c2 (PIN_OUTPUT | MUX_MODE1)   /* dss_data11.sdi_dat1p */
250			0x0c4 (PIN_OUTPUT | MUX_MODE1)   /* dss_data12.sdi_dat2n */
251			0x0c6 (PIN_OUTPUT | MUX_MODE1)   /* dss_data13.sdi_dat2p */
252
253			0x0d8 (PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp */
254			0x0da (PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn */
255		>;
256	};
257
258	wl1251_pins: pinmux_wl1251 {
259		pinctrl-single,pins = <
260			0x0ce (PIN_OUTPUT | MUX_MODE4)		/* gpio 87 => wl1251 enable */
261			0x05a (PIN_INPUT | MUX_MODE4)		/* gpio 42 => wl1251 irq */
262		>;
263	};
264
265	ssi_pins: pinmux_ssi {
266		pinctrl-single,pins = <
267			0x150 (PIN_INPUT_PULLUP | MUX_MODE1)	/* ssi1_rdy_tx */
268			0x14e (PIN_OUTPUT | MUX_MODE1)		/* ssi1_flag_tx */
269			0x152 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* ssi1_wake_tx (cawake) */
270			0x14c (PIN_OUTPUT | MUX_MODE1)		/* ssi1_dat_tx */
271			0x154 (PIN_INPUT | MUX_MODE1)		/* ssi1_dat_rx */
272			0x156 (PIN_INPUT | MUX_MODE1)		/* ssi1_flag_rx */
273			0x158 (PIN_OUTPUT | MUX_MODE1)		/* ssi1_rdy_rx */
274			0x15a (PIN_OUTPUT | MUX_MODE1)		/* ssi1_wake */
275		>;
276	};
277
278	modem_pins: pinmux_modem {
279		pinctrl-single,pins = <
280			0x0ac (PIN_OUTPUT | MUX_MODE4)		/* gpio 70 => cmt_apeslpx */
281			0x0b0 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* gpio 72 => ape_rst_rq */
282			0x0b2 (PIN_OUTPUT | MUX_MODE4)		/* gpio 73 => cmt_rst_rq */
283			0x0b4 (PIN_OUTPUT | MUX_MODE4)		/* gpio 74 => cmt_en */
284			0x0b6 (PIN_OUTPUT | MUX_MODE4)		/* gpio 75 => cmt_rst */
285			0x15e (PIN_OUTPUT | MUX_MODE4)		/* gpio 157 => cmt_bsi */
286		>;
287	};
288};
289
290&i2c1 {
291	pinctrl-names = "default";
292	pinctrl-0 = <&i2c1_pins>;
293
294	clock-frequency = <2200000>;
295
296	twl: twl@48 {
297		reg = <0x48>;
298		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
299		interrupt-parent = <&intc>;
300	};
301};
302
303#include "twl4030.dtsi"
304#include "twl4030_omap3.dtsi"
305
306&vaux1 {
307	regulator-name = "V28";
308	regulator-min-microvolt = <2800000>;
309	regulator-max-microvolt = <2800000>;
310	regulator-always-on; /* due to battery cover sensor */
311};
312
313&vaux2 {
314	regulator-name = "VCSI";
315	regulator-min-microvolt = <1800000>;
316	regulator-max-microvolt = <1800000>;
317};
318
319&vaux3 {
320	regulator-name = "VMMC2_30";
321	regulator-min-microvolt = <2800000>;
322	regulator-max-microvolt = <3000000>;
323};
324
325&vaux4 {
326	regulator-name = "VCAM_ANA_28";
327	regulator-min-microvolt = <2800000>;
328	regulator-max-microvolt = <2800000>;
329};
330
331&vmmc1 {
332	regulator-name = "VMMC1";
333	regulator-min-microvolt = <1850000>;
334	regulator-max-microvolt = <3150000>;
335};
336
337&vmmc2 {
338	regulator-name = "V28_A";
339	regulator-min-microvolt = <2800000>;
340	regulator-max-microvolt = <3000000>;
341	regulator-always-on; /* due VIO leak to AIC34 VDDs */
342};
343
344&vpll1 {
345	regulator-name = "VPLL";
346	regulator-min-microvolt = <1800000>;
347	regulator-max-microvolt = <1800000>;
348	regulator-always-on;
349};
350
351&vpll2 {
352	regulator-name = "VSDI_CSI";
353	regulator-min-microvolt = <1800000>;
354	regulator-max-microvolt = <1800000>;
355	regulator-always-on;
356};
357
358&vsim {
359	regulator-name = "VMMC2_IO_18";
360	regulator-min-microvolt = <1800000>;
361	regulator-max-microvolt = <1800000>;
362};
363
364&vio {
365	regulator-name = "VIO";
366	regulator-min-microvolt = <1800000>;
367	regulator-max-microvolt = <1800000>;
368};
369
370&vintana1 {
371	regulator-name = "VINTANA1";
372	/* fixed to 1500000 */
373	regulator-always-on;
374};
375
376&vintana2 {
377	regulator-name = "VINTANA2";
378	regulator-min-microvolt = <2750000>;
379	regulator-max-microvolt = <2750000>;
380	regulator-always-on;
381};
382
383&vintdig {
384	regulator-name = "VINTDIG";
385	/* fixed to 1500000 */
386	regulator-always-on;
387};
388
389&twl {
390	twl_audio: audio {
391		compatible = "ti,twl4030-audio";
392		ti,enable-vibra = <1>;
393	};
394
395	twl_power: power {
396		compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
397		ti,use_poweroff;
398	};
399};
400
401&twl_keypad {
402	linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
403			 MATRIX_KEY(0x00, 0x01, KEY_O)
404			 MATRIX_KEY(0x00, 0x02, KEY_P)
405			 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
406			 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
407			 MATRIX_KEY(0x00, 0x06, KEY_A)
408			 MATRIX_KEY(0x00, 0x07, KEY_S)
409
410			 MATRIX_KEY(0x01, 0x00, KEY_W)
411			 MATRIX_KEY(0x01, 0x01, KEY_D)
412			 MATRIX_KEY(0x01, 0x02, KEY_F)
413			 MATRIX_KEY(0x01, 0x03, KEY_G)
414			 MATRIX_KEY(0x01, 0x04, KEY_H)
415			 MATRIX_KEY(0x01, 0x05, KEY_J)
416			 MATRIX_KEY(0x01, 0x06, KEY_K)
417			 MATRIX_KEY(0x01, 0x07, KEY_L)
418
419			 MATRIX_KEY(0x02, 0x00, KEY_E)
420			 MATRIX_KEY(0x02, 0x01, KEY_DOT)
421			 MATRIX_KEY(0x02, 0x02, KEY_UP)
422			 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
423			 MATRIX_KEY(0x02, 0x05, KEY_Z)
424			 MATRIX_KEY(0x02, 0x06, KEY_X)
425			 MATRIX_KEY(0x02, 0x07, KEY_C)
426			 MATRIX_KEY(0x02, 0x08, KEY_F9)
427
428			 MATRIX_KEY(0x03, 0x00, KEY_R)
429			 MATRIX_KEY(0x03, 0x01, KEY_V)
430			 MATRIX_KEY(0x03, 0x02, KEY_B)
431			 MATRIX_KEY(0x03, 0x03, KEY_N)
432			 MATRIX_KEY(0x03, 0x04, KEY_M)
433			 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
434			 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
435			 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
436
437			 MATRIX_KEY(0x04, 0x00, KEY_T)
438			 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
439			 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
440			 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
441			 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
442			 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
443			 MATRIX_KEY(0x04, 0x08, KEY_F10)
444
445			 MATRIX_KEY(0x05, 0x00, KEY_Y)
446			 MATRIX_KEY(0x05, 0x08, KEY_F11)
447
448			 MATRIX_KEY(0x06, 0x00, KEY_U)
449
450			 MATRIX_KEY(0x07, 0x00, KEY_I)
451			 MATRIX_KEY(0x07, 0x01, KEY_F7)
452			 MATRIX_KEY(0x07, 0x02, KEY_F8)
453			 >;
454};
455
456&twl_gpio {
457	ti,pullups	= <0x0>;
458	ti,pulldowns	= <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
459};
460
461&i2c2 {
462	pinctrl-names = "default";
463	pinctrl-0 = <&i2c2_pins>;
464
465	clock-frequency = <100000>;
466
467	tlv320aic3x: tlv320aic3x@18 {
468		compatible = "ti,tlv320aic3x";
469		reg = <0x18>;
470		gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
471		ai3x-gpio-func = <
472			0 /* AIC3X_GPIO1_FUNC_DISABLED */
473			5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
474		>;
475
476		AVDD-supply = <&vmmc2>;
477		DRVDD-supply = <&vmmc2>;
478		IOVDD-supply = <&vio>;
479		DVDD-supply = <&vio>;
480	};
481
482	tlv320aic3x_aux: tlv320aic3x@19 {
483		compatible = "ti,tlv320aic3x";
484		reg = <0x19>;
485		gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
486
487		AVDD-supply = <&vmmc2>;
488		DRVDD-supply = <&vmmc2>;
489		IOVDD-supply = <&vio>;
490		DVDD-supply = <&vio>;
491	};
492
493	tsl2563: tsl2563@29 {
494		compatible = "amstaos,tsl2563";
495		reg = <0x29>;
496
497		amstaos,cover-comp-gain = <16>;
498	};
499
500	lp5523: lp5523@32 {
501		compatible = "national,lp5523";
502		reg = <0x32>;
503		clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
504		enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
505
506		chan0 {
507			chan-name = "lp5523:kb1";
508			led-cur = /bits/ 8 <50>;
509			max-cur = /bits/ 8 <100>;
510		};
511
512		chan1 {
513			chan-name = "lp5523:kb2";
514			led-cur = /bits/ 8 <50>;
515			max-cur = /bits/ 8 <100>;
516		};
517
518		chan2 {
519			chan-name = "lp5523:kb3";
520			led-cur = /bits/ 8 <50>;
521			max-cur = /bits/ 8 <100>;
522		};
523
524		chan3 {
525			chan-name = "lp5523:kb4";
526			led-cur = /bits/ 8 <50>;
527			max-cur = /bits/ 8 <100>;
528		};
529
530		chan4 {
531			chan-name = "lp5523:b";
532			led-cur = /bits/ 8 <50>;
533			max-cur = /bits/ 8 <100>;
534		};
535
536		chan5 {
537			chan-name = "lp5523:g";
538			led-cur = /bits/ 8 <50>;
539			max-cur = /bits/ 8 <100>;
540		};
541
542		chan6 {
543			chan-name = "lp5523:r";
544			led-cur = /bits/ 8 <50>;
545			max-cur = /bits/ 8 <100>;
546		};
547
548		chan7 {
549			chan-name = "lp5523:kb5";
550			led-cur = /bits/ 8 <50>;
551			max-cur = /bits/ 8 <100>;
552		};
553
554		chan8 {
555			chan-name = "lp5523:kb6";
556			led-cur = /bits/ 8 <50>;
557			max-cur = /bits/ 8 <100>;
558		};
559	};
560
561	bq27200: bq27200@55 {
562		compatible = "ti,bq27200";
563		reg = <0x55>;
564	};
565
566	tpa6130a2: tpa6130a2@60 {
567		compatible = "ti,tpa6130a2";
568		reg = <0x60>;
569
570		Vdd-supply = <&vmmc2>;
571
572		power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
573	};
574
575	si4713: si4713@63 {
576		compatible = "silabs,si4713";
577                reg = <0x63>;
578
579                interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
580                reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
581                vio-supply = <&vio>;
582                vdd-supply = <&vaux1>;
583	};
584
585	bq24150a: bq24150a@6b {
586		compatible = "ti,bq24150a";
587		reg = <0x6b>;
588
589		ti,current-limit = <100>;
590		ti,weak-battery-voltage = <3400>;
591		ti,battery-regulation-voltage = <4200>;
592		ti,charge-current = <650>;
593		ti,termination-current = <100>;
594		ti,resistor-sense = <68>;
595
596		ti,usb-charger-detection = <&isp1704>;
597	};
598};
599
600&i2c3 {
601	pinctrl-names = "default";
602	pinctrl-0 = <&i2c3_pins>;
603
604	clock-frequency = <400000>;
605};
606
607&mmc1 {
608	pinctrl-names = "default";
609	pinctrl-0 = <&mmc1_pins>;
610	vmmc-supply = <&vmmc1>;
611	bus-width = <4>;
612	cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
613};
614
615/* most boards use vaux3, only some old versions use vmmc2 instead */
616&mmc2 {
617	pinctrl-names = "default";
618	pinctrl-0 = <&mmc2_pins>;
619	vmmc-supply = <&vaux3>;
620	vmmc_aux-supply = <&vsim>;
621	bus-width = <8>;
622	non-removable;
623};
624
625&mmc3 {
626	status = "disabled";
627};
628
629&gpmc {
630	ranges = <0 0 0x01000000 0x01000000>,	/* 16 MB for OneNAND */
631		 <1 0 0x02000000 0x01000000>;	/* 16 MB for smc91c96 */
632	pinctrl-names = "default";
633	pinctrl-0 = <&gpmc_pins>;
634
635	/* sys_ndmareq1 could be used by the driver, not as gpio65 though */
636	onenand@0,0 {
637		#address-cells = <1>;
638		#size-cells = <1>;
639		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
640
641		gpmc,sync-read;
642		gpmc,sync-write;
643		gpmc,burst-length = <16>;
644		gpmc,burst-read;
645		gpmc,burst-wrap;
646		gpmc,burst-write;
647		gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
648		gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
649		gpmc,cs-on-ns = <0>;
650		gpmc,cs-rd-off-ns = <87>;
651		gpmc,cs-wr-off-ns = <87>;
652		gpmc,adv-on-ns = <0>;
653		gpmc,adv-rd-off-ns = <10>;
654		gpmc,adv-wr-off-ns = <10>;
655		gpmc,oe-on-ns = <15>;
656		gpmc,oe-off-ns = <87>;
657		gpmc,we-on-ns = <0>;
658		gpmc,we-off-ns = <87>;
659		gpmc,rd-cycle-ns = <112>;
660		gpmc,wr-cycle-ns = <112>;
661		gpmc,access-ns = <81>;
662		gpmc,page-burst-access-ns = <15>;
663		gpmc,bus-turnaround-ns = <0>;
664		gpmc,cycle2cycle-delay-ns = <0>;
665		gpmc,wait-monitoring-ns = <0>;
666		gpmc,clk-activation-ns = <5>;
667		gpmc,wr-data-mux-bus-ns = <30>;
668		gpmc,wr-access-ns = <81>;
669		gpmc,sync-clk-ps = <15000>;
670
671		/*
672		 * MTD partition table corresponding to Nokia's
673		 * Maemo 5 (Fremantle) release.
674		 */
675		partition@0 {
676			label = "bootloader";
677			reg = <0x00000000 0x00020000>;
678			read-only;
679		};
680		partition@1 {
681			label = "config";
682			reg = <0x00020000 0x00060000>;
683		};
684		partition@2 {
685			label = "log";
686			reg = <0x00080000 0x00040000>;
687		};
688		partition@3 {
689			label = "kernel";
690			reg = <0x000c0000 0x00200000>;
691		};
692		partition@4 {
693			label = "initfs";
694			reg = <0x002c0000 0x00200000>;
695		};
696		partition@5 {
697			label = "rootfs";
698			reg = <0x004c0000 0x0fb40000>;
699		};
700	};
701
702	/* Ethernet is on some early development boards and qemu */
703	ethernet@gpmc {
704		compatible = "smsc,lan91c94";
705		interrupt-parent = <&gpio2>;
706		interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;	/* gpio54 */
707		reg = <1 0x300 0xf>;		/* 16 byte IO range at offset 0x300 */
708		bank-width = <2>;
709		pinctrl-names = "default";
710		pinctrl-0 = <&ethernet_pins>;
711		power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;	/* gpio86 */
712		reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* gpio164 */
713		gpmc,device-width = <2>;
714		gpmc,sync-clk-ps = <0>;
715		gpmc,cs-on-ns = <0>;
716		gpmc,cs-rd-off-ns = <48>;
717		gpmc,cs-wr-off-ns = <24>;
718		gpmc,adv-on-ns = <0>;
719		gpmc,adv-rd-off-ns = <0>;
720		gpmc,adv-wr-off-ns = <0>;
721		gpmc,we-on-ns = <12>;
722		gpmc,we-off-ns = <18>;
723		gpmc,oe-on-ns = <12>;
724		gpmc,oe-off-ns = <48>;
725		gpmc,page-burst-access-ns = <0>;
726		gpmc,access-ns = <42>;
727		gpmc,rd-cycle-ns = <180>;
728		gpmc,wr-cycle-ns = <180>;
729		gpmc,bus-turnaround-ns = <0>;
730		gpmc,cycle2cycle-delay-ns = <0>;
731		gpmc,wait-monitoring-ns = <0>;
732		gpmc,clk-activation-ns = <0>;
733		gpmc,wr-access-ns = <0>;
734		gpmc,wr-data-mux-bus-ns = <12>;
735	};
736};
737
738&mcspi1 {
739	/*
740	 * For some reason, touchscreen is necessary for screen to work at
741	 * all on real hw. It works well without it on emulator.
742	 *
743	 * Also... order in the device tree actually matters here.
744	 */
745	tsc2005@0 {
746		compatible = "ti,tsc2005";
747		spi-max-frequency = <6000000>;
748		reg = <0>;
749
750		vio-supply = <&vio>;
751
752		reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
753		interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
754
755		touchscreen-fuzz-x = <4>;
756		touchscreen-fuzz-y = <7>;
757		touchscreen-fuzz-pressure = <2>;
758		touchscreen-max-x = <4096>;
759		touchscreen-max-y = <4096>;
760		touchscreen-max-pressure = <2048>;
761
762		ti,x-plate-ohms = <280>;
763		ti,esd-recovery-timeout-ms = <8000>;
764	};
765
766	acx565akm@2 {
767		compatible = "sony,acx565akm";
768		spi-max-frequency = <6000000>;
769		reg = <2>;
770
771		pinctrl-names = "default";
772		pinctrl-0 = <&acx565akm_pins>;
773
774		label = "lcd";
775		reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
776
777		port {
778			lcd_in: endpoint {
779				remote-endpoint = <&sdi_out>;
780			};
781		};
782	};
783};
784
785&mcspi4 {
786	pinctrl-names = "default";
787	pinctrl-0 = <&mcspi4_pins>;
788
789	wl1251@0 {
790		pinctrl-names = "default";
791		pinctrl-0 = <&wl1251_pins>;
792
793		vio-supply = <&vio>;
794
795		compatible = "ti,wl1251";
796		reg = <0>;
797		spi-max-frequency = <48000000>;
798
799		spi-cpol;
800		spi-cpha;
801
802		ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
803
804		interrupt-parent = <&gpio2>;
805		interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
806	};
807};
808
809&usb_otg_hs {
810	interface-type = <0>;
811	usb-phy = <&usb2_phy>;
812	phys = <&usb2_phy>;
813	phy-names = "usb2-phy";
814	mode = <2>;
815	power = <50>;
816};
817
818&uart1 {
819	status = "disabled";
820};
821
822&uart2 {
823	interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
824	pinctrl-names = "default";
825	pinctrl-0 = <&uart2_pins>;
826};
827
828&uart3 {
829	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
830	pinctrl-names = "default";
831	pinctrl-0 = <&uart3_pins>;
832};
833
834&dss {
835	status = "ok";
836
837	pinctrl-names = "default";
838	pinctrl-0 = <&dss_sdi_pins>;
839
840	vdds_sdi-supply = <&vaux1>;
841
842	ports {
843		#address-cells = <1>;
844		#size-cells = <0>;
845
846		port@1 {
847			reg = <1>;
848
849			sdi_out: endpoint {
850				remote-endpoint = <&lcd_in>;
851				datapairs = <2>;
852			};
853		};
854	};
855};
856
857&venc {
858	status = "ok";
859
860	vdda-supply = <&vdac>;
861
862	port {
863		venc_out: endpoint {
864			remote-endpoint = <&tv_connector_in>;
865			ti,channels = <1>;
866		};
867	};
868};
869
870&mcbsp2 {
871	status = "ok";
872};
873
874&ssi_port1 {
875	pinctrl-names = "default";
876	pinctrl-0 = <&ssi_pins>;
877
878	ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
879
880	modem: hsi-client {
881		compatible = "nokia,n900-modem";
882
883		pinctrl-names = "default";
884		pinctrl-0 = <&modem_pins>;
885
886		hsi-channel-ids = <0>, <1>, <2>, <3>;
887		hsi-channel-names = "mcsaab-control",
888				    "speech-control",
889				    "speech-data",
890				    "mcsaab-data";
891		hsi-speed-kbps = <55000>;
892		hsi-mode = "frame";
893		hsi-flow = "synchronized";
894		hsi-arb-mode = "round-robin";
895
896		interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
897
898		gpios = <&gpio3  6 GPIO_ACTIVE_HIGH>, /* 70 */
899			<&gpio3  9 GPIO_ACTIVE_HIGH>, /* 73 */
900			<&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
901			<&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
902			<&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
903		gpio-names = "cmt_apeslpx",
904			     "cmt_rst_rq",
905			     "cmt_en",
906			     "cmt_rst",
907			     "cmt_bsi";
908	};
909};
910
911&ssi_port2 {
912	status = "disabled";
913};
914