Commit | Line | Data |
---|---|---|
a4d4b153 PM |
1 | /* |
2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> | |
c3580bc1 | 3 | * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi> |
a4d4b153 PM |
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 | ||
f2e2c9d9 | 12 | #include "omap34xx-hs.dtsi" |
a4d4b153 PM |
13 | |
14 | / { | |
15 | model = "Nokia N900"; | |
c3580bc1 | 16 | compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3"; |
a4d4b153 PM |
17 | |
18 | cpus { | |
19 | cpu@0 { | |
20 | cpu0-supply = <&vcc>; | |
21 | }; | |
22 | }; | |
23 | ||
24 | memory { | |
25 | device_type = "memory"; | |
26 | reg = <0x80000000 0x10000000>; /* 256 MB */ | |
27 | }; | |
28 | ||
3931c839 SR |
29 | gpio_keys { |
30 | compatible = "gpio-keys"; | |
31 | ||
32 | camera_lens_cover { | |
33 | label = "Camera Lens Cover"; | |
34 | gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */ | |
35 | linux,input-type = <5>; /* EV_SW */ | |
36 | linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */ | |
37 | gpio-key,wakeup; | |
38 | }; | |
39 | ||
40 | camera_focus { | |
41 | label = "Camera Focus"; | |
42 | gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */ | |
43 | linux,code = <0x210>; /* KEY_CAMERA_FOCUS */ | |
44 | gpio-key,wakeup; | |
45 | }; | |
46 | ||
47 | camera_capture { | |
48 | label = "Camera Capture"; | |
49 | gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */ | |
50 | linux,code = <0xd4>; /* KEY_CAMERA */ | |
51 | gpio-key,wakeup; | |
52 | }; | |
53 | ||
54 | lock_button { | |
55 | label = "Lock Button"; | |
56 | gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */ | |
57 | linux,code = <0x98>; /* KEY_SCREENLOCK */ | |
58 | gpio-key,wakeup; | |
59 | }; | |
60 | ||
61 | keypad_slide { | |
62 | label = "Keypad Slide"; | |
63 | gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */ | |
64 | linux,input-type = <5>; /* EV_SW */ | |
65 | linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */ | |
66 | gpio-key,wakeup; | |
67 | }; | |
68 | ||
69 | proximity_sensor { | |
70 | label = "Proximity Sensor"; | |
71 | gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */ | |
72 | linux,input-type = <5>; /* EV_SW */ | |
73 | linux,code = <0x0b>; /* SW_FRONT_PROXIMITY */ | |
74 | }; | |
75 | }; | |
76 | ||
a4d4b153 PM |
77 | }; |
78 | ||
ac888a88 SR |
79 | &omap3_pmx_core { |
80 | pinctrl-names = "default"; | |
81 | ||
7a89eecf SR |
82 | uart2_pins: pinmux_uart2_pins { |
83 | pinctrl-single,pins = < | |
84 | 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx */ | |
85 | 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ | |
86 | >; | |
87 | }; | |
88 | ||
89 | uart3_pins: pinmux_uart3_pins { | |
90 | pinctrl-single,pins = < | |
91 | 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx */ | |
92 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx */ | |
93 | >; | |
94 | }; | |
95 | ||
ac888a88 SR |
96 | i2c1_pins: pinmux_i2c1_pins { |
97 | pinctrl-single,pins = < | |
98 | 0x18a (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ | |
99 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ | |
100 | >; | |
101 | }; | |
102 | ||
103 | i2c2_pins: pinmux_i2c2_pins { | |
104 | pinctrl-single,pins = < | |
105 | 0x18e (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ | |
106 | 0x190 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ | |
107 | >; | |
108 | }; | |
109 | ||
110 | i2c3_pins: pinmux_i2c3_pins { | |
111 | pinctrl-single,pins = < | |
112 | 0x192 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ | |
113 | 0x194 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ | |
114 | >; | |
115 | }; | |
f1751cff SR |
116 | |
117 | mmc1_pins: pinmux_mmc1_pins { | |
118 | pinctrl-single,pins = < | |
119 | 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */ | |
120 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */ | |
121 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */ | |
122 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */ | |
123 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */ | |
124 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */ | |
125 | >; | |
126 | }; | |
d1e6f516 | 127 | |
edd5eb4e TL |
128 | mmc2_pins: pinmux_mmc2_pins { |
129 | pinctrl-single,pins = < | |
130 | 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */ | |
131 | 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */ | |
132 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */ | |
133 | 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */ | |
134 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */ | |
135 | 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */ | |
136 | 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */ | |
137 | 0x136 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */ | |
138 | 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */ | |
139 | 0x13a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */ | |
140 | >; | |
141 | }; | |
142 | ||
d1e6f516 SR |
143 | display_pins: pinmux_display_pins { |
144 | pinctrl-single,pins = < | |
145 | 0x0d4 (PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */ | |
146 | >; | |
147 | }; | |
ac888a88 SR |
148 | }; |
149 | ||
a4d4b153 | 150 | &i2c1 { |
ac888a88 SR |
151 | pinctrl-names = "default"; |
152 | pinctrl-0 = <&i2c1_pins>; | |
153 | ||
a4d4b153 PM |
154 | clock-frequency = <2200000>; |
155 | ||
156 | twl: twl@48 { | |
157 | reg = <0x48>; | |
158 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | |
159 | interrupt-parent = <&intc>; | |
160 | }; | |
161 | }; | |
162 | ||
163 | #include "twl4030.dtsi" | |
ac888a88 | 164 | #include "twl4030_omap3.dtsi" |
a4d4b153 | 165 | |
9cdbbadd SR |
166 | &vaux1 { |
167 | regulator-name = "V28"; | |
168 | regulator-min-microvolt = <2800000>; | |
169 | regulator-max-microvolt = <2800000>; | |
170 | regulator-always-on; /* due battery cover sensor */ | |
171 | }; | |
172 | ||
173 | &vaux2 { | |
174 | regulator-name = "VCSI"; | |
175 | regulator-min-microvolt = <1800000>; | |
176 | regulator-max-microvolt = <1800000>; | |
177 | }; | |
178 | ||
179 | &vaux3 { | |
180 | regulator-name = "VMMC2_30"; | |
181 | regulator-min-microvolt = <2800000>; | |
182 | regulator-max-microvolt = <3000000>; | |
183 | }; | |
184 | ||
185 | &vaux4 { | |
186 | regulator-name = "VCAM_ANA_28"; | |
187 | regulator-min-microvolt = <2800000>; | |
188 | regulator-max-microvolt = <2800000>; | |
189 | }; | |
190 | ||
191 | &vmmc1 { | |
192 | regulator-name = "VMMC1"; | |
193 | regulator-min-microvolt = <1850000>; | |
194 | regulator-max-microvolt = <3150000>; | |
195 | }; | |
196 | ||
197 | &vmmc2 { | |
198 | regulator-name = "V28_A"; | |
199 | regulator-min-microvolt = <2800000>; | |
200 | regulator-max-microvolt = <3000000>; | |
201 | regulator-always-on; /* due VIO leak to AIC34 VDDs */ | |
202 | }; | |
203 | ||
204 | &vpll1 { | |
205 | regulator-name = "VPLL"; | |
206 | regulator-min-microvolt = <1800000>; | |
207 | regulator-max-microvolt = <1800000>; | |
208 | regulator-always-on; | |
209 | }; | |
210 | ||
211 | &vpll2 { | |
212 | regulator-name = "VSDI_CSI"; | |
213 | regulator-min-microvolt = <1800000>; | |
214 | regulator-max-microvolt = <1800000>; | |
215 | regulator-always-on; | |
216 | }; | |
217 | ||
218 | &vsim { | |
219 | regulator-name = "VMMC2_IO_18"; | |
220 | regulator-min-microvolt = <1800000>; | |
221 | regulator-max-microvolt = <1800000>; | |
222 | }; | |
223 | ||
224 | &vio { | |
225 | regulator-name = "VIO"; | |
226 | regulator-min-microvolt = <1800000>; | |
227 | regulator-max-microvolt = <1800000>; | |
228 | ||
229 | }; | |
230 | ||
231 | &vintana1 { | |
232 | regulator-name = "VINTANA1"; | |
233 | /* fixed to 1500000 */ | |
234 | regulator-always-on; | |
235 | }; | |
236 | ||
237 | &vintana2 { | |
238 | regulator-name = "VINTANA2"; | |
239 | regulator-min-microvolt = <2750000>; | |
240 | regulator-max-microvolt = <2750000>; | |
241 | regulator-always-on; | |
242 | }; | |
243 | ||
244 | &vintdig { | |
245 | regulator-name = "VINTDIG"; | |
246 | /* fixed to 1500000 */ | |
247 | regulator-always-on; | |
248 | }; | |
249 | ||
06ba7a61 SR |
250 | &twl { |
251 | twl_audio: audio { | |
252 | compatible = "ti,twl4030-audio"; | |
253 | ti,enable-vibra = <1>; | |
254 | }; | |
255 | }; | |
256 | ||
a4d4b153 PM |
257 | &twl_gpio { |
258 | ti,pullups = <0x0>; | |
259 | ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */ | |
260 | }; | |
261 | ||
262 | &i2c2 { | |
ac888a88 SR |
263 | pinctrl-names = "default"; |
264 | pinctrl-0 = <&i2c2_pins>; | |
265 | ||
48fc9864 | 266 | clock-frequency = <100000>; |
b2b9b258 | 267 | |
14e3e295 SR |
268 | tlv320aic3x: tlv320aic3x@18 { |
269 | compatible = "ti,tlv320aic3x"; | |
270 | reg = <0x18>; | |
271 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | |
272 | ai3x-gpio-func = < | |
273 | 0 /* AIC3X_GPIO1_FUNC_DISABLED */ | |
274 | 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */ | |
275 | >; | |
276 | ||
277 | AVDD-supply = <&vmmc2>; | |
278 | DRVDD-supply = <&vmmc2>; | |
279 | IOVDD-supply = <&vio>; | |
280 | DVDD-supply = <&vio>; | |
281 | }; | |
282 | ||
283 | tlv320aic3x_aux: tlv320aic3x@19 { | |
284 | compatible = "ti,tlv320aic3x"; | |
285 | reg = <0x19>; | |
286 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | |
287 | ||
288 | AVDD-supply = <&vmmc2>; | |
289 | DRVDD-supply = <&vmmc2>; | |
290 | IOVDD-supply = <&vio>; | |
291 | DVDD-supply = <&vio>; | |
292 | }; | |
293 | ||
a0bf1f3e SR |
294 | lp5523: lp5523@32 { |
295 | compatible = "national,lp5523"; | |
296 | reg = <0x32>; | |
297 | clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */ | |
298 | enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */ | |
299 | ||
300 | chan0 { | |
301 | chan-name = "lp5523:kb1"; | |
302 | led-cur = /bits/ 8 <50>; | |
303 | max-cur = /bits/ 8 <100>; | |
304 | }; | |
305 | ||
306 | chan1 { | |
307 | chan-name = "lp5523:kb2"; | |
308 | led-cur = /bits/ 8 <50>; | |
309 | max-cur = /bits/ 8 <100>; | |
310 | }; | |
311 | ||
312 | chan2 { | |
313 | chan-name = "lp5523:kb3"; | |
314 | led-cur = /bits/ 8 <50>; | |
315 | max-cur = /bits/ 8 <100>; | |
316 | }; | |
317 | ||
318 | chan3 { | |
319 | chan-name = "lp5523:kb4"; | |
320 | led-cur = /bits/ 8 <50>; | |
321 | max-cur = /bits/ 8 <100>; | |
322 | }; | |
323 | ||
324 | chan4 { | |
325 | chan-name = "lp5523:b"; | |
326 | led-cur = /bits/ 8 <50>; | |
327 | max-cur = /bits/ 8 <100>; | |
328 | }; | |
329 | ||
330 | chan5 { | |
331 | chan-name = "lp5523:g"; | |
332 | led-cur = /bits/ 8 <50>; | |
333 | max-cur = /bits/ 8 <100>; | |
334 | }; | |
335 | ||
336 | chan6 { | |
337 | chan-name = "lp5523:r"; | |
338 | led-cur = /bits/ 8 <50>; | |
339 | max-cur = /bits/ 8 <100>; | |
340 | }; | |
341 | ||
342 | chan7 { | |
343 | chan-name = "lp5523:kb5"; | |
344 | led-cur = /bits/ 8 <50>; | |
345 | max-cur = /bits/ 8 <100>; | |
346 | }; | |
347 | ||
348 | chan8 { | |
349 | chan-name = "lp5523:kb6"; | |
350 | led-cur = /bits/ 8 <50>; | |
351 | max-cur = /bits/ 8 <100>; | |
352 | }; | |
353 | }; | |
354 | ||
b2b9b258 SR |
355 | bq27200: bq27200@55 { |
356 | compatible = "ti,bq27200"; | |
357 | reg = <0x55>; | |
358 | }; | |
a4d4b153 PM |
359 | }; |
360 | ||
361 | &i2c3 { | |
ac888a88 SR |
362 | pinctrl-names = "default"; |
363 | pinctrl-0 = <&i2c3_pins>; | |
364 | ||
48fc9864 | 365 | clock-frequency = <400000>; |
a4d4b153 PM |
366 | }; |
367 | ||
368 | &mmc1 { | |
f1751cff SR |
369 | pinctrl-names = "default"; |
370 | pinctrl-0 = <&mmc1_pins>; | |
371 | vmmc-supply = <&vmmc1>; | |
372 | bus-width = <4>; | |
373 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ | |
a4d4b153 PM |
374 | }; |
375 | ||
edd5eb4e | 376 | /* most boards use vaux3, only some old versions use vmmc2 instead */ |
a4d4b153 | 377 | &mmc2 { |
edd5eb4e TL |
378 | pinctrl-names = "default"; |
379 | pinctrl-0 = <&mmc2_pins>; | |
380 | vmmc-supply = <&vaux3>; | |
381 | vmmc_aux-supply = <&vsim>; | |
382 | bus-width = <8>; | |
383 | non-removable; | |
a4d4b153 PM |
384 | }; |
385 | ||
386 | &mmc3 { | |
387 | status = "disabled"; | |
388 | }; | |
389 | ||
8699d2dd SR |
390 | &gpmc { |
391 | ranges = <0 0 0x04000000 0x10000000>; /* 256MB */ | |
392 | ||
393 | /* gpio-irq for dma: 65 */ | |
394 | ||
395 | onenand@0,0 { | |
396 | #address-cells = <1>; | |
397 | #size-cells = <1>; | |
398 | reg = <0 0 0x10000000>; | |
399 | ||
400 | gpmc,sync-read; | |
401 | gpmc,sync-write; | |
402 | gpmc,burst-length = <16>; | |
403 | gpmc,burst-read; | |
404 | gpmc,burst-wrap; | |
405 | gpmc,burst-write; | |
406 | gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */ | |
407 | gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */ | |
408 | gpmc,cs-on-ns = <0>; | |
409 | gpmc,cs-rd-off-ns = <87>; | |
410 | gpmc,cs-wr-off-ns = <87>; | |
411 | gpmc,adv-on-ns = <0>; | |
412 | gpmc,adv-rd-off-ns = <10>; | |
413 | gpmc,adv-wr-off-ns = <10>; | |
414 | gpmc,oe-on-ns = <15>; | |
415 | gpmc,oe-off-ns = <87>; | |
416 | gpmc,we-on-ns = <0>; | |
417 | gpmc,we-off-ns = <87>; | |
418 | gpmc,rd-cycle-ns = <112>; | |
419 | gpmc,wr-cycle-ns = <112>; | |
420 | gpmc,access-ns = <81>; | |
421 | gpmc,page-burst-access-ns = <15>; | |
422 | gpmc,bus-turnaround-ns = <0>; | |
423 | gpmc,cycle2cycle-delay-ns = <0>; | |
424 | gpmc,wait-monitoring-ns = <0>; | |
425 | gpmc,clk-activation-ns = <5>; | |
426 | gpmc,wr-data-mux-bus-ns = <30>; | |
427 | gpmc,wr-access-ns = <81>; | |
428 | gpmc,sync-clk-ps = <15000>; | |
429 | ||
430 | /* | |
431 | * MTD partition table corresponding to Nokia's | |
432 | * Maemo 5 (Fremantle) release. | |
433 | */ | |
434 | partition@0 { | |
435 | label = "bootloader"; | |
436 | reg = <0x00000000 0x00020000>; | |
437 | read-only; | |
438 | }; | |
439 | partition@1 { | |
440 | label = "config"; | |
441 | reg = <0x00020000 0x00060000>; | |
442 | }; | |
443 | partition@2 { | |
444 | label = "log"; | |
445 | reg = <0x00080000 0x00040000>; | |
446 | }; | |
447 | partition@3 { | |
448 | label = "kernel"; | |
449 | reg = <0x000c0000 0x00200000>; | |
450 | }; | |
451 | partition@4 { | |
452 | label = "initfs"; | |
453 | reg = <0x002c0000 0x00200000>; | |
454 | }; | |
455 | partition@5 { | |
456 | label = "rootfs"; | |
457 | reg = <0x004c0000 0x0fb40000>; | |
458 | }; | |
459 | }; | |
460 | }; | |
461 | ||
a4d4b153 PM |
462 | &mcspi1 { |
463 | /* | |
464 | * For some reason, touchscreen is necessary for screen to work at | |
465 | * all on real hw. It works well without it on emulator. | |
466 | * | |
467 | * Also... order in the device tree actually matters here. | |
468 | */ | |
469 | tsc2005@0 { | |
470 | compatible = "tsc2005"; | |
471 | spi-max-frequency = <6000000>; | |
472 | reg = <0>; | |
473 | }; | |
474 | mipid@2 { | |
475 | compatible = "acx565akm"; | |
476 | spi-max-frequency = <6000000>; | |
477 | reg = <2>; | |
d1e6f516 SR |
478 | |
479 | pinctrl-names = "default"; | |
480 | pinctrl-0 = <&display_pins>; | |
a4d4b153 PM |
481 | }; |
482 | }; | |
483 | ||
484 | &usb_otg_hs { | |
485 | interface-type = <0>; | |
486 | usb-phy = <&usb2_phy>; | |
d2afcf09 RQ |
487 | phys = <&usb2_phy>; |
488 | phy-names = "usb2-phy"; | |
a4d4b153 PM |
489 | mode = <2>; |
490 | power = <50>; | |
491 | }; | |
7a89eecf SR |
492 | |
493 | &uart1 { | |
494 | status = "disabled"; | |
495 | }; | |
496 | ||
497 | &uart2 { | |
498 | pinctrl-names = "default"; | |
499 | pinctrl-0 = <&uart2_pins>; | |
500 | }; | |
501 | ||
502 | &uart3 { | |
503 | pinctrl-names = "default"; | |
504 | pinctrl-0 = <&uart3_pins>; | |
505 | }; |