blob: a289910ec362cc54fe43c2fa041530a9648af09e [file] [log] [blame]
Pavel Macheka4d4b152013-08-13 15:36:36 +02001/*
2 * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
Aaro Koskinenc3580bc2014-02-09 14:12:36 +02003 * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
Pavel Macheka4d4b152013-08-13 15:36:36 +02004 *
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
Tony Lindgrenf2e2c9d2013-12-06 14:20:17 -080012#include "omap34xx-hs.dtsi"
Sebastian Reichel3fdb7712014-05-06 15:14:28 +020013#include <dt-bindings/input/input.h>
Pavel Macheka4d4b152013-08-13 15:36:36 +020014
15/ {
16 model = "Nokia N900";
Aaro Koskinenc3580bc2014-02-09 14:12:36 +020017 compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
Pavel Macheka4d4b152013-08-13 15:36:36 +020018
19 cpus {
20 cpu@0 {
21 cpu0-supply = <&vcc>;
22 };
23 };
24
25 memory {
26 device_type = "memory";
27 reg = <0x80000000 0x10000000>; /* 256 MB */
28 };
29
Sebastian Reichel3931c8392013-10-23 00:49:34 +020030 gpio_keys {
31 compatible = "gpio-keys";
32
33 camera_lens_cover {
34 label = "Camera Lens Cover";
35 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
36 linux,input-type = <5>; /* EV_SW */
37 linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */
38 gpio-key,wakeup;
39 };
40
41 camera_focus {
42 label = "Camera Focus";
43 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
44 linux,code = <0x210>; /* KEY_CAMERA_FOCUS */
45 gpio-key,wakeup;
46 };
47
48 camera_capture {
49 label = "Camera Capture";
50 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
51 linux,code = <0xd4>; /* KEY_CAMERA */
52 gpio-key,wakeup;
53 };
54
55 lock_button {
56 label = "Lock Button";
57 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
58 linux,code = <0x98>; /* KEY_SCREENLOCK */
59 gpio-key,wakeup;
60 };
61
62 keypad_slide {
63 label = "Keypad Slide";
64 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
65 linux,input-type = <5>; /* EV_SW */
66 linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */
67 gpio-key,wakeup;
68 };
69
70 proximity_sensor {
71 label = "Proximity Sensor";
72 gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
73 linux,input-type = <5>; /* EV_SW */
74 linux,code = <0x0b>; /* SW_FRONT_PROXIMITY */
75 };
76 };
77
Sebastian Reichele17337a2014-01-11 22:17:02 +010078 isp1704: isp1704 {
79 compatible = "nxp,isp1704";
80 nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
81 usb-phy = <&usb2_phy>;
82 };
Tomi Valkeinen11334202013-12-17 09:33:33 +020083
84 tv: connector {
85 compatible = "composite-connector";
86 label = "tv";
87
88 port {
89 tv_connector_in: endpoint {
90 remote-endpoint = <&venc_out>;
91 };
92 };
93 };
Sebastian Reichelf7d0f2a2014-04-28 16:07:27 +020094
95 sound: n900-audio {
96 compatible = "nokia,n900-audio";
97
98 nokia,cpu-dai = <&mcbsp2>;
99 nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
100 nokia,headphone-amplifier = <&tpa6130a2>;
101
102 tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
103 jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
104 eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
105 speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
106 };
Pavel Macheka4d4b152013-08-13 15:36:36 +0200107};
108
Sebastian Reichelac888a82013-10-23 00:49:30 +0200109&omap3_pmx_core {
110 pinctrl-names = "default";
111
Sebastian Reichel7a89eec2013-10-23 00:49:32 +0200112 uart2_pins: pinmux_uart2_pins {
113 pinctrl-single,pins = <
114 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx */
115 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
116 >;
117 };
118
119 uart3_pins: pinmux_uart3_pins {
120 pinctrl-single,pins = <
121 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx */
122 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
123 >;
124 };
125
Sebastian Reichelac888a82013-10-23 00:49:30 +0200126 i2c1_pins: pinmux_i2c1_pins {
127 pinctrl-single,pins = <
128 0x18a (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
129 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
130 >;
131 };
132
133 i2c2_pins: pinmux_i2c2_pins {
134 pinctrl-single,pins = <
135 0x18e (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
136 0x190 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
137 >;
138 };
139
140 i2c3_pins: pinmux_i2c3_pins {
141 pinctrl-single,pins = <
142 0x192 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
143 0x194 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
144 >;
145 };
Sebastian Reichelf1751cf2013-10-23 00:49:33 +0200146
Sebastian Reichelc1ad2202014-03-13 22:59:55 +0100147 mcspi4_pins: pinmux_mcspi4_pins {
148 pinctrl-single,pins = <
149 0x15c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
150 0x162 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
151 0x160 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
152 0x166 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
153 >;
154 };
155
Sebastian Reichelf1751cf2013-10-23 00:49:33 +0200156 mmc1_pins: pinmux_mmc1_pins {
157 pinctrl-single,pins = <
158 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
159 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
160 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
161 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
162 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
163 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
164 >;
165 };
Sebastian Reicheld1e6f512013-10-23 00:49:40 +0200166
Tony Lindgrenedd5eb42013-11-25 14:23:45 -0800167 mmc2_pins: pinmux_mmc2_pins {
168 pinctrl-single,pins = <
169 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
170 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
171 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
172 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
173 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
174 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
175 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
176 0x136 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
177 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
178 0x13a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
179 >;
180 };
181
Tomi Valkeinen11334202013-12-17 09:33:33 +0200182 acx565akm_pins: pinmux_acx565akm_pins {
Sebastian Reicheld1e6f512013-10-23 00:49:40 +0200183 pinctrl-single,pins = <
184 0x0d4 (PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
185 >;
186 };
Tomi Valkeinen11334202013-12-17 09:33:33 +0200187
188 dss_sdi_pins: pinmux_dss_sdi_pins {
189 pinctrl-single,pins = <
190 0x0c0 (PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
191 0x0c2 (PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
192 0x0c4 (PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
193 0x0c6 (PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
194
195 0x0d8 (PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
196 0x0da (PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
197 >;
198 };
Sebastian Reichelc1ad2202014-03-13 22:59:55 +0100199
200 wl1251_pins: pinmux_wl1251 {
201 pinctrl-single,pins = <
202 0x0ce (PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
203 0x05a (PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
204 >;
205 };
Sebastian Reichel782e25a2014-05-10 18:37:49 +0200206
207 ssi_pins: pinmux_ssi {
208 pinctrl-single,pins = <
209 0x150 (PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
210 0x14e (PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
211 0x152 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* ssi1_wake_tx (cawake) */
212 0x14c (PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
213 0x154 (PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
214 0x156 (PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
215 0x158 (PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
216 0x15a (PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
217 >;
218 };
Sebastian Reichel76ad4ac2014-05-10 18:37:50 +0200219
220 modem_pins: pinmux_modem {
221 pinctrl-single,pins = <
222 0x0ac (PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
223 0x0b0 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* gpio 72 => ape_rst_rq */
224 0x0b2 (PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
225 0x0b4 (PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
226 0x0b6 (PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
227 0x15e (PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
228 >;
229 };
Sebastian Reichelac888a82013-10-23 00:49:30 +0200230};
231
Pavel Macheka4d4b152013-08-13 15:36:36 +0200232&i2c1 {
Sebastian Reichelac888a82013-10-23 00:49:30 +0200233 pinctrl-names = "default";
234 pinctrl-0 = <&i2c1_pins>;
235
Pavel Macheka4d4b152013-08-13 15:36:36 +0200236 clock-frequency = <2200000>;
237
238 twl: twl@48 {
239 reg = <0x48>;
240 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
241 interrupt-parent = <&intc>;
242 };
243};
244
245#include "twl4030.dtsi"
Sebastian Reichelac888a82013-10-23 00:49:30 +0200246#include "twl4030_omap3.dtsi"
Pavel Macheka4d4b152013-08-13 15:36:36 +0200247
Sebastian Reichel9cdbbad2013-10-23 00:49:38 +0200248&vaux1 {
249 regulator-name = "V28";
250 regulator-min-microvolt = <2800000>;
251 regulator-max-microvolt = <2800000>;
252 regulator-always-on; /* due battery cover sensor */
253};
254
255&vaux2 {
256 regulator-name = "VCSI";
257 regulator-min-microvolt = <1800000>;
258 regulator-max-microvolt = <1800000>;
259};
260
261&vaux3 {
262 regulator-name = "VMMC2_30";
263 regulator-min-microvolt = <2800000>;
264 regulator-max-microvolt = <3000000>;
265};
266
267&vaux4 {
268 regulator-name = "VCAM_ANA_28";
269 regulator-min-microvolt = <2800000>;
270 regulator-max-microvolt = <2800000>;
271};
272
273&vmmc1 {
274 regulator-name = "VMMC1";
275 regulator-min-microvolt = <1850000>;
276 regulator-max-microvolt = <3150000>;
277};
278
279&vmmc2 {
280 regulator-name = "V28_A";
281 regulator-min-microvolt = <2800000>;
282 regulator-max-microvolt = <3000000>;
283 regulator-always-on; /* due VIO leak to AIC34 VDDs */
284};
285
286&vpll1 {
287 regulator-name = "VPLL";
288 regulator-min-microvolt = <1800000>;
289 regulator-max-microvolt = <1800000>;
290 regulator-always-on;
291};
292
293&vpll2 {
294 regulator-name = "VSDI_CSI";
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
297 regulator-always-on;
298};
299
300&vsim {
301 regulator-name = "VMMC2_IO_18";
302 regulator-min-microvolt = <1800000>;
303 regulator-max-microvolt = <1800000>;
304};
305
306&vio {
307 regulator-name = "VIO";
308 regulator-min-microvolt = <1800000>;
309 regulator-max-microvolt = <1800000>;
310
311};
312
313&vintana1 {
314 regulator-name = "VINTANA1";
315 /* fixed to 1500000 */
316 regulator-always-on;
317};
318
319&vintana2 {
320 regulator-name = "VINTANA2";
321 regulator-min-microvolt = <2750000>;
322 regulator-max-microvolt = <2750000>;
323 regulator-always-on;
324};
325
326&vintdig {
327 regulator-name = "VINTDIG";
328 /* fixed to 1500000 */
329 regulator-always-on;
330};
331
Sebastian Reichel06ba7a62013-10-23 00:49:35 +0200332&twl {
333 twl_audio: audio {
334 compatible = "ti,twl4030-audio";
335 ti,enable-vibra = <1>;
336 };
337};
338
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100339&twl_keypad {
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200340 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
341 MATRIX_KEY(0x00, 0x01, KEY_O)
342 MATRIX_KEY(0x00, 0x02, KEY_P)
343 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
344 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
345 MATRIX_KEY(0x00, 0x06, KEY_A)
346 MATRIX_KEY(0x00, 0x07, KEY_S)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100347
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200348 MATRIX_KEY(0x01, 0x00, KEY_W)
349 MATRIX_KEY(0x01, 0x01, KEY_D)
350 MATRIX_KEY(0x01, 0x02, KEY_F)
351 MATRIX_KEY(0x01, 0x03, KEY_G)
352 MATRIX_KEY(0x01, 0x04, KEY_H)
353 MATRIX_KEY(0x01, 0x05, KEY_J)
354 MATRIX_KEY(0x01, 0x06, KEY_K)
355 MATRIX_KEY(0x01, 0x07, KEY_L)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100356
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200357 MATRIX_KEY(0x02, 0x00, KEY_E)
358 MATRIX_KEY(0x02, 0x01, KEY_DOT)
359 MATRIX_KEY(0x02, 0x02, KEY_UP)
360 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
361 MATRIX_KEY(0x02, 0x05, KEY_Z)
362 MATRIX_KEY(0x02, 0x06, KEY_X)
363 MATRIX_KEY(0x02, 0x07, KEY_C)
364 MATRIX_KEY(0x02, 0x08, KEY_F9)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100365
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200366 MATRIX_KEY(0x03, 0x00, KEY_R)
367 MATRIX_KEY(0x03, 0x01, KEY_V)
368 MATRIX_KEY(0x03, 0x02, KEY_B)
369 MATRIX_KEY(0x03, 0x03, KEY_N)
370 MATRIX_KEY(0x03, 0x04, KEY_M)
371 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
372 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
373 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100374
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200375 MATRIX_KEY(0x04, 0x00, KEY_T)
376 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
377 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
378 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
379 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
380 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
381 MATRIX_KEY(0x04, 0x08, KEY_F10)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100382
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200383 MATRIX_KEY(0x05, 0x00, KEY_Y)
384 MATRIX_KEY(0x05, 0x08, KEY_F11)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100385
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200386 MATRIX_KEY(0x06, 0x00, KEY_U)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100387
Sebastian Reichel3fdb7712014-05-06 15:14:28 +0200388 MATRIX_KEY(0x07, 0x00, KEY_I)
389 MATRIX_KEY(0x07, 0x01, KEY_F7)
390 MATRIX_KEY(0x07, 0x02, KEY_F8)
Sebastian Reichel85c215f2014-01-11 22:16:59 +0100391 >;
392};
393
Pavel Macheka4d4b152013-08-13 15:36:36 +0200394&twl_gpio {
395 ti,pullups = <0x0>;
396 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
397};
398
399&i2c2 {
Sebastian Reichelac888a82013-10-23 00:49:30 +0200400 pinctrl-names = "default";
401 pinctrl-0 = <&i2c2_pins>;
402
Sebastian Reichel48fc9862013-10-23 00:49:31 +0200403 clock-frequency = <100000>;
Sebastian Reichelb2b9b252013-10-23 00:49:36 +0200404
Sebastian Reichel14e3e292013-10-23 00:49:41 +0200405 tlv320aic3x: tlv320aic3x@18 {
406 compatible = "ti,tlv320aic3x";
407 reg = <0x18>;
408 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
409 ai3x-gpio-func = <
410 0 /* AIC3X_GPIO1_FUNC_DISABLED */
411 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
412 >;
413
414 AVDD-supply = <&vmmc2>;
415 DRVDD-supply = <&vmmc2>;
416 IOVDD-supply = <&vio>;
417 DVDD-supply = <&vio>;
418 };
419
420 tlv320aic3x_aux: tlv320aic3x@19 {
421 compatible = "ti,tlv320aic3x";
422 reg = <0x19>;
423 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
424
425 AVDD-supply = <&vmmc2>;
426 DRVDD-supply = <&vmmc2>;
427 IOVDD-supply = <&vio>;
428 DVDD-supply = <&vio>;
429 };
430
Sebastian Reichel12f2f872014-01-11 22:17:00 +0100431 tsl2563: tsl2563@29 {
432 compatible = "amstaos,tsl2563";
433 reg = <0x29>;
434
435 amstaos,cover-comp-gain = <16>;
436 };
437
Sebastian Reichela0bf1f32013-10-23 00:49:42 +0200438 lp5523: lp5523@32 {
439 compatible = "national,lp5523";
440 reg = <0x32>;
441 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
442 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
443
444 chan0 {
445 chan-name = "lp5523:kb1";
446 led-cur = /bits/ 8 <50>;
447 max-cur = /bits/ 8 <100>;
448 };
449
450 chan1 {
451 chan-name = "lp5523:kb2";
452 led-cur = /bits/ 8 <50>;
453 max-cur = /bits/ 8 <100>;
454 };
455
456 chan2 {
457 chan-name = "lp5523:kb3";
458 led-cur = /bits/ 8 <50>;
459 max-cur = /bits/ 8 <100>;
460 };
461
462 chan3 {
463 chan-name = "lp5523:kb4";
464 led-cur = /bits/ 8 <50>;
465 max-cur = /bits/ 8 <100>;
466 };
467
468 chan4 {
469 chan-name = "lp5523:b";
470 led-cur = /bits/ 8 <50>;
471 max-cur = /bits/ 8 <100>;
472 };
473
474 chan5 {
475 chan-name = "lp5523:g";
476 led-cur = /bits/ 8 <50>;
477 max-cur = /bits/ 8 <100>;
478 };
479
480 chan6 {
481 chan-name = "lp5523:r";
482 led-cur = /bits/ 8 <50>;
483 max-cur = /bits/ 8 <100>;
484 };
485
486 chan7 {
487 chan-name = "lp5523:kb5";
488 led-cur = /bits/ 8 <50>;
489 max-cur = /bits/ 8 <100>;
490 };
491
492 chan8 {
493 chan-name = "lp5523:kb6";
494 led-cur = /bits/ 8 <50>;
495 max-cur = /bits/ 8 <100>;
496 };
497 };
498
Sebastian Reichelb2b9b252013-10-23 00:49:36 +0200499 bq27200: bq27200@55 {
500 compatible = "ti,bq27200";
501 reg = <0x55>;
502 };
Sebastian Reichel9e2367c2014-01-11 22:17:01 +0100503
504 tpa6130a2: tpa6130a2@60 {
505 compatible = "ti,tpa6130a2";
506 reg = <0x60>;
507
508 Vdd-supply = <&vmmc2>;
509
510 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
511 };
Sebastian Reichel334a09c2014-01-11 22:17:03 +0100512
513 bq24150a: bq24150a@6b {
514 compatible = "ti,bq24150a";
515 reg = <0x6b>;
516
517 ti,current-limit = <100>;
518 ti,weak-battery-voltage = <3400>;
519 ti,battery-regulation-voltage = <4200>;
520 ti,charge-current = <650>;
521 ti,termination-current = <100>;
522 ti,resistor-sense = <68>;
523
524 ti,usb-charger-detection = <&isp1704>;
525 };
Pavel Macheka4d4b152013-08-13 15:36:36 +0200526};
527
528&i2c3 {
Sebastian Reichelac888a82013-10-23 00:49:30 +0200529 pinctrl-names = "default";
530 pinctrl-0 = <&i2c3_pins>;
531
Sebastian Reichel48fc9862013-10-23 00:49:31 +0200532 clock-frequency = <400000>;
Pavel Macheka4d4b152013-08-13 15:36:36 +0200533};
534
535&mmc1 {
Sebastian Reichelf1751cf2013-10-23 00:49:33 +0200536 pinctrl-names = "default";
537 pinctrl-0 = <&mmc1_pins>;
538 vmmc-supply = <&vmmc1>;
539 bus-width = <4>;
540 cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
Pavel Macheka4d4b152013-08-13 15:36:36 +0200541};
542
Tony Lindgrenedd5eb42013-11-25 14:23:45 -0800543/* most boards use vaux3, only some old versions use vmmc2 instead */
Pavel Macheka4d4b152013-08-13 15:36:36 +0200544&mmc2 {
Tony Lindgrenedd5eb42013-11-25 14:23:45 -0800545 pinctrl-names = "default";
546 pinctrl-0 = <&mmc2_pins>;
547 vmmc-supply = <&vaux3>;
548 vmmc_aux-supply = <&vsim>;
549 bus-width = <8>;
550 non-removable;
Pavel Macheka4d4b152013-08-13 15:36:36 +0200551};
552
553&mmc3 {
554 status = "disabled";
555};
556
Sebastian Reichel8699d2d2013-10-23 00:49:39 +0200557&gpmc {
558 ranges = <0 0 0x04000000 0x10000000>; /* 256MB */
559
560 /* gpio-irq for dma: 65 */
561
562 onenand@0,0 {
563 #address-cells = <1>;
564 #size-cells = <1>;
565 reg = <0 0 0x10000000>;
566
567 gpmc,sync-read;
568 gpmc,sync-write;
569 gpmc,burst-length = <16>;
570 gpmc,burst-read;
571 gpmc,burst-wrap;
572 gpmc,burst-write;
573 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
574 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
575 gpmc,cs-on-ns = <0>;
576 gpmc,cs-rd-off-ns = <87>;
577 gpmc,cs-wr-off-ns = <87>;
578 gpmc,adv-on-ns = <0>;
579 gpmc,adv-rd-off-ns = <10>;
580 gpmc,adv-wr-off-ns = <10>;
581 gpmc,oe-on-ns = <15>;
582 gpmc,oe-off-ns = <87>;
583 gpmc,we-on-ns = <0>;
584 gpmc,we-off-ns = <87>;
585 gpmc,rd-cycle-ns = <112>;
586 gpmc,wr-cycle-ns = <112>;
587 gpmc,access-ns = <81>;
588 gpmc,page-burst-access-ns = <15>;
589 gpmc,bus-turnaround-ns = <0>;
590 gpmc,cycle2cycle-delay-ns = <0>;
591 gpmc,wait-monitoring-ns = <0>;
592 gpmc,clk-activation-ns = <5>;
593 gpmc,wr-data-mux-bus-ns = <30>;
594 gpmc,wr-access-ns = <81>;
595 gpmc,sync-clk-ps = <15000>;
596
597 /*
598 * MTD partition table corresponding to Nokia's
599 * Maemo 5 (Fremantle) release.
600 */
601 partition@0 {
602 label = "bootloader";
603 reg = <0x00000000 0x00020000>;
604 read-only;
605 };
606 partition@1 {
607 label = "config";
608 reg = <0x00020000 0x00060000>;
609 };
610 partition@2 {
611 label = "log";
612 reg = <0x00080000 0x00040000>;
613 };
614 partition@3 {
615 label = "kernel";
616 reg = <0x000c0000 0x00200000>;
617 };
618 partition@4 {
619 label = "initfs";
620 reg = <0x002c0000 0x00200000>;
621 };
622 partition@5 {
623 label = "rootfs";
624 reg = <0x004c0000 0x0fb40000>;
625 };
626 };
627};
628
Pavel Macheka4d4b152013-08-13 15:36:36 +0200629&mcspi1 {
630 /*
631 * For some reason, touchscreen is necessary for screen to work at
632 * all on real hw. It works well without it on emulator.
633 *
634 * Also... order in the device tree actually matters here.
635 */
636 tsc2005@0 {
637 compatible = "tsc2005";
638 spi-max-frequency = <6000000>;
639 reg = <0>;
640 };
Tomi Valkeinen11334202013-12-17 09:33:33 +0200641
642 acx565akm@2 {
643 compatible = "sony,acx565akm";
Pavel Macheka4d4b152013-08-13 15:36:36 +0200644 spi-max-frequency = <6000000>;
645 reg = <2>;
Sebastian Reicheld1e6f512013-10-23 00:49:40 +0200646
647 pinctrl-names = "default";
Tomi Valkeinen11334202013-12-17 09:33:33 +0200648 pinctrl-0 = <&acx565akm_pins>;
649
650 label = "lcd";
651 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
652
653 port {
654 lcd_in: endpoint {
655 remote-endpoint = <&sdi_out>;
656 };
657 };
Pavel Macheka4d4b152013-08-13 15:36:36 +0200658 };
659};
660
Sebastian Reichelc1ad2202014-03-13 22:59:55 +0100661&mcspi4 {
662 pinctrl-names = "default";
663 pinctrl-0 = <&mcspi4_pins>;
664
665 wl1251@0 {
666 pinctrl-names = "default";
667 pinctrl-0 = <&wl1251_pins>;
668
669 vio-supply = <&vio>;
670
671 compatible = "ti,wl1251";
672 reg = <0>;
673 spi-max-frequency = <48000000>;
674
675 spi-cpol;
676 spi-cpha;
677
678 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
679
680 interrupt-parent = <&gpio2>;
681 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
682 };
683};
684
Pavel Macheka4d4b152013-08-13 15:36:36 +0200685&usb_otg_hs {
686 interface-type = <0>;
687 usb-phy = <&usb2_phy>;
Roger Quadrosd2afcf02013-10-07 16:28:13 +0300688 phys = <&usb2_phy>;
689 phy-names = "usb2-phy";
Pavel Macheka4d4b152013-08-13 15:36:36 +0200690 mode = <2>;
691 power = <50>;
692};
Sebastian Reichel7a89eec2013-10-23 00:49:32 +0200693
694&uart1 {
695 status = "disabled";
696};
697
698&uart2 {
699 pinctrl-names = "default";
700 pinctrl-0 = <&uart2_pins>;
701};
702
703&uart3 {
704 pinctrl-names = "default";
705 pinctrl-0 = <&uart3_pins>;
706};
Tomi Valkeinen11334202013-12-17 09:33:33 +0200707
708&dss {
709 status = "ok";
710
711 pinctrl-names = "default";
712 pinctrl-0 = <&dss_sdi_pins>;
713
714 vdds_sdi-supply = <&vaux1>;
715
716 ports {
717 #address-cells = <1>;
718 #size-cells = <0>;
719
720 port@1 {
721 reg = <1>;
722
723 sdi_out: endpoint {
724 remote-endpoint = <&lcd_in>;
725 datapairs = <2>;
726 };
727 };
728 };
729};
730
731&venc {
732 status = "ok";
733
734 vdda-supply = <&vdac>;
735
736 port {
737 venc_out: endpoint {
738 remote-endpoint = <&tv_connector_in>;
739 ti,channels = <1>;
740 };
741 };
742};
Sebastian Reichelf7d0f2a2014-04-28 16:07:27 +0200743
744&mcbsp2 {
745 status = "ok";
746};
Sebastian Reichel782e25a2014-05-10 18:37:49 +0200747
748&ssi_port1 {
749 pinctrl-names = "default";
750 pinctrl-0 = <&ssi_pins>;
751
752 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
Sebastian Reichel76ad4ac2014-05-10 18:37:50 +0200753
754 modem: hsi-client {
755 compatible = "nokia,n900-modem";
756
757 pinctrl-names = "default";
758 pinctrl-0 = <&modem_pins>;
759
760 hsi-channel-ids = <0>, <1>, <2>, <3>;
761 hsi-channel-names = "mcsaab-control",
762 "speech-control",
763 "speech-data",
764 "mcsaab-data";
765 hsi-speed-kbps = <55000>;
766 hsi-mode = "frame";
767 hsi-flow = "synchronized";
768 hsi-arb-mode = "round-robin";
769
770 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
771
772 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
773 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
774 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
775 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
776 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
777 gpio-names = "cmt_apeslpx",
778 "cmt_rst_rq",
779 "cmt_en",
780 "cmt_rst",
781 "cmt_bsi";
782 };
Sebastian Reichel782e25a2014-05-10 18:37:49 +0200783};
784
785&ssi_port2 {
786 status = "disabled";
Sebastian Reichel76ad4ac2014-05-10 18:37:50 +0200787};