Commit | Line | Data |
---|---|---|
a4d4b153 PM |
1 | /* |
2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> | |
3 | * Copyright 2013 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.dtsi" | |
13 | ||
14 | / { | |
15 | model = "Nokia N900"; | |
16 | compatible = "nokia,omap3-n900", "ti,omap3"; | |
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 SR |
127 | |
128 | display_pins: pinmux_display_pins { | |
129 | pinctrl-single,pins = < | |
130 | 0x0d4 (PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */ | |
131 | >; | |
132 | }; | |
ac888a88 SR |
133 | }; |
134 | ||
a4d4b153 | 135 | &i2c1 { |
ac888a88 SR |
136 | pinctrl-names = "default"; |
137 | pinctrl-0 = <&i2c1_pins>; | |
138 | ||
a4d4b153 PM |
139 | clock-frequency = <2200000>; |
140 | ||
141 | twl: twl@48 { | |
142 | reg = <0x48>; | |
143 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | |
144 | interrupt-parent = <&intc>; | |
145 | }; | |
146 | }; | |
147 | ||
148 | #include "twl4030.dtsi" | |
ac888a88 | 149 | #include "twl4030_omap3.dtsi" |
a4d4b153 | 150 | |
9cdbbadd SR |
151 | &vaux1 { |
152 | regulator-name = "V28"; | |
153 | regulator-min-microvolt = <2800000>; | |
154 | regulator-max-microvolt = <2800000>; | |
155 | regulator-always-on; /* due battery cover sensor */ | |
156 | }; | |
157 | ||
158 | &vaux2 { | |
159 | regulator-name = "VCSI"; | |
160 | regulator-min-microvolt = <1800000>; | |
161 | regulator-max-microvolt = <1800000>; | |
162 | }; | |
163 | ||
164 | &vaux3 { | |
165 | regulator-name = "VMMC2_30"; | |
166 | regulator-min-microvolt = <2800000>; | |
167 | regulator-max-microvolt = <3000000>; | |
168 | }; | |
169 | ||
170 | &vaux4 { | |
171 | regulator-name = "VCAM_ANA_28"; | |
172 | regulator-min-microvolt = <2800000>; | |
173 | regulator-max-microvolt = <2800000>; | |
174 | }; | |
175 | ||
176 | &vmmc1 { | |
177 | regulator-name = "VMMC1"; | |
178 | regulator-min-microvolt = <1850000>; | |
179 | regulator-max-microvolt = <3150000>; | |
180 | }; | |
181 | ||
182 | &vmmc2 { | |
183 | regulator-name = "V28_A"; | |
184 | regulator-min-microvolt = <2800000>; | |
185 | regulator-max-microvolt = <3000000>; | |
186 | regulator-always-on; /* due VIO leak to AIC34 VDDs */ | |
187 | }; | |
188 | ||
189 | &vpll1 { | |
190 | regulator-name = "VPLL"; | |
191 | regulator-min-microvolt = <1800000>; | |
192 | regulator-max-microvolt = <1800000>; | |
193 | regulator-always-on; | |
194 | }; | |
195 | ||
196 | &vpll2 { | |
197 | regulator-name = "VSDI_CSI"; | |
198 | regulator-min-microvolt = <1800000>; | |
199 | regulator-max-microvolt = <1800000>; | |
200 | regulator-always-on; | |
201 | }; | |
202 | ||
203 | &vsim { | |
204 | regulator-name = "VMMC2_IO_18"; | |
205 | regulator-min-microvolt = <1800000>; | |
206 | regulator-max-microvolt = <1800000>; | |
207 | }; | |
208 | ||
209 | &vio { | |
210 | regulator-name = "VIO"; | |
211 | regulator-min-microvolt = <1800000>; | |
212 | regulator-max-microvolt = <1800000>; | |
213 | ||
214 | }; | |
215 | ||
216 | &vintana1 { | |
217 | regulator-name = "VINTANA1"; | |
218 | /* fixed to 1500000 */ | |
219 | regulator-always-on; | |
220 | }; | |
221 | ||
222 | &vintana2 { | |
223 | regulator-name = "VINTANA2"; | |
224 | regulator-min-microvolt = <2750000>; | |
225 | regulator-max-microvolt = <2750000>; | |
226 | regulator-always-on; | |
227 | }; | |
228 | ||
229 | &vintdig { | |
230 | regulator-name = "VINTDIG"; | |
231 | /* fixed to 1500000 */ | |
232 | regulator-always-on; | |
233 | }; | |
234 | ||
06ba7a61 SR |
235 | &twl { |
236 | twl_audio: audio { | |
237 | compatible = "ti,twl4030-audio"; | |
238 | ti,enable-vibra = <1>; | |
239 | }; | |
240 | }; | |
241 | ||
a4d4b153 PM |
242 | &twl_gpio { |
243 | ti,pullups = <0x0>; | |
244 | ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */ | |
245 | }; | |
246 | ||
247 | &i2c2 { | |
ac888a88 SR |
248 | pinctrl-names = "default"; |
249 | pinctrl-0 = <&i2c2_pins>; | |
250 | ||
48fc9864 | 251 | clock-frequency = <100000>; |
b2b9b258 | 252 | |
14e3e295 SR |
253 | tlv320aic3x: tlv320aic3x@18 { |
254 | compatible = "ti,tlv320aic3x"; | |
255 | reg = <0x18>; | |
256 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | |
257 | ai3x-gpio-func = < | |
258 | 0 /* AIC3X_GPIO1_FUNC_DISABLED */ | |
259 | 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */ | |
260 | >; | |
261 | ||
262 | AVDD-supply = <&vmmc2>; | |
263 | DRVDD-supply = <&vmmc2>; | |
264 | IOVDD-supply = <&vio>; | |
265 | DVDD-supply = <&vio>; | |
266 | }; | |
267 | ||
268 | tlv320aic3x_aux: tlv320aic3x@19 { | |
269 | compatible = "ti,tlv320aic3x"; | |
270 | reg = <0x19>; | |
271 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | |
272 | ||
273 | AVDD-supply = <&vmmc2>; | |
274 | DRVDD-supply = <&vmmc2>; | |
275 | IOVDD-supply = <&vio>; | |
276 | DVDD-supply = <&vio>; | |
277 | }; | |
278 | ||
a0bf1f3e SR |
279 | lp5523: lp5523@32 { |
280 | compatible = "national,lp5523"; | |
281 | reg = <0x32>; | |
282 | clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */ | |
283 | enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */ | |
284 | ||
285 | chan0 { | |
286 | chan-name = "lp5523:kb1"; | |
287 | led-cur = /bits/ 8 <50>; | |
288 | max-cur = /bits/ 8 <100>; | |
289 | }; | |
290 | ||
291 | chan1 { | |
292 | chan-name = "lp5523:kb2"; | |
293 | led-cur = /bits/ 8 <50>; | |
294 | max-cur = /bits/ 8 <100>; | |
295 | }; | |
296 | ||
297 | chan2 { | |
298 | chan-name = "lp5523:kb3"; | |
299 | led-cur = /bits/ 8 <50>; | |
300 | max-cur = /bits/ 8 <100>; | |
301 | }; | |
302 | ||
303 | chan3 { | |
304 | chan-name = "lp5523:kb4"; | |
305 | led-cur = /bits/ 8 <50>; | |
306 | max-cur = /bits/ 8 <100>; | |
307 | }; | |
308 | ||
309 | chan4 { | |
310 | chan-name = "lp5523:b"; | |
311 | led-cur = /bits/ 8 <50>; | |
312 | max-cur = /bits/ 8 <100>; | |
313 | }; | |
314 | ||
315 | chan5 { | |
316 | chan-name = "lp5523:g"; | |
317 | led-cur = /bits/ 8 <50>; | |
318 | max-cur = /bits/ 8 <100>; | |
319 | }; | |
320 | ||
321 | chan6 { | |
322 | chan-name = "lp5523:r"; | |
323 | led-cur = /bits/ 8 <50>; | |
324 | max-cur = /bits/ 8 <100>; | |
325 | }; | |
326 | ||
327 | chan7 { | |
328 | chan-name = "lp5523:kb5"; | |
329 | led-cur = /bits/ 8 <50>; | |
330 | max-cur = /bits/ 8 <100>; | |
331 | }; | |
332 | ||
333 | chan8 { | |
334 | chan-name = "lp5523:kb6"; | |
335 | led-cur = /bits/ 8 <50>; | |
336 | max-cur = /bits/ 8 <100>; | |
337 | }; | |
338 | }; | |
339 | ||
b2b9b258 SR |
340 | bq27200: bq27200@55 { |
341 | compatible = "ti,bq27200"; | |
342 | reg = <0x55>; | |
343 | }; | |
a4d4b153 PM |
344 | }; |
345 | ||
346 | &i2c3 { | |
ac888a88 SR |
347 | pinctrl-names = "default"; |
348 | pinctrl-0 = <&i2c3_pins>; | |
349 | ||
48fc9864 | 350 | clock-frequency = <400000>; |
a4d4b153 PM |
351 | }; |
352 | ||
353 | &mmc1 { | |
f1751cff SR |
354 | pinctrl-names = "default"; |
355 | pinctrl-0 = <&mmc1_pins>; | |
356 | vmmc-supply = <&vmmc1>; | |
357 | bus-width = <4>; | |
358 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ | |
a4d4b153 PM |
359 | }; |
360 | ||
361 | &mmc2 { | |
362 | status = "disabled"; | |
363 | }; | |
364 | ||
365 | &mmc3 { | |
366 | status = "disabled"; | |
367 | }; | |
368 | ||
8699d2dd SR |
369 | &gpmc { |
370 | ranges = <0 0 0x04000000 0x10000000>; /* 256MB */ | |
371 | ||
372 | /* gpio-irq for dma: 65 */ | |
373 | ||
374 | onenand@0,0 { | |
375 | #address-cells = <1>; | |
376 | #size-cells = <1>; | |
377 | reg = <0 0 0x10000000>; | |
378 | ||
379 | gpmc,sync-read; | |
380 | gpmc,sync-write; | |
381 | gpmc,burst-length = <16>; | |
382 | gpmc,burst-read; | |
383 | gpmc,burst-wrap; | |
384 | gpmc,burst-write; | |
385 | gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */ | |
386 | gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */ | |
387 | gpmc,cs-on-ns = <0>; | |
388 | gpmc,cs-rd-off-ns = <87>; | |
389 | gpmc,cs-wr-off-ns = <87>; | |
390 | gpmc,adv-on-ns = <0>; | |
391 | gpmc,adv-rd-off-ns = <10>; | |
392 | gpmc,adv-wr-off-ns = <10>; | |
393 | gpmc,oe-on-ns = <15>; | |
394 | gpmc,oe-off-ns = <87>; | |
395 | gpmc,we-on-ns = <0>; | |
396 | gpmc,we-off-ns = <87>; | |
397 | gpmc,rd-cycle-ns = <112>; | |
398 | gpmc,wr-cycle-ns = <112>; | |
399 | gpmc,access-ns = <81>; | |
400 | gpmc,page-burst-access-ns = <15>; | |
401 | gpmc,bus-turnaround-ns = <0>; | |
402 | gpmc,cycle2cycle-delay-ns = <0>; | |
403 | gpmc,wait-monitoring-ns = <0>; | |
404 | gpmc,clk-activation-ns = <5>; | |
405 | gpmc,wr-data-mux-bus-ns = <30>; | |
406 | gpmc,wr-access-ns = <81>; | |
407 | gpmc,sync-clk-ps = <15000>; | |
408 | ||
409 | /* | |
410 | * MTD partition table corresponding to Nokia's | |
411 | * Maemo 5 (Fremantle) release. | |
412 | */ | |
413 | partition@0 { | |
414 | label = "bootloader"; | |
415 | reg = <0x00000000 0x00020000>; | |
416 | read-only; | |
417 | }; | |
418 | partition@1 { | |
419 | label = "config"; | |
420 | reg = <0x00020000 0x00060000>; | |
421 | }; | |
422 | partition@2 { | |
423 | label = "log"; | |
424 | reg = <0x00080000 0x00040000>; | |
425 | }; | |
426 | partition@3 { | |
427 | label = "kernel"; | |
428 | reg = <0x000c0000 0x00200000>; | |
429 | }; | |
430 | partition@4 { | |
431 | label = "initfs"; | |
432 | reg = <0x002c0000 0x00200000>; | |
433 | }; | |
434 | partition@5 { | |
435 | label = "rootfs"; | |
436 | reg = <0x004c0000 0x0fb40000>; | |
437 | }; | |
438 | }; | |
439 | }; | |
440 | ||
a4d4b153 PM |
441 | &mcspi1 { |
442 | /* | |
443 | * For some reason, touchscreen is necessary for screen to work at | |
444 | * all on real hw. It works well without it on emulator. | |
445 | * | |
446 | * Also... order in the device tree actually matters here. | |
447 | */ | |
448 | tsc2005@0 { | |
449 | compatible = "tsc2005"; | |
450 | spi-max-frequency = <6000000>; | |
451 | reg = <0>; | |
452 | }; | |
453 | mipid@2 { | |
454 | compatible = "acx565akm"; | |
455 | spi-max-frequency = <6000000>; | |
456 | reg = <2>; | |
d1e6f516 SR |
457 | |
458 | pinctrl-names = "default"; | |
459 | pinctrl-0 = <&display_pins>; | |
a4d4b153 PM |
460 | }; |
461 | }; | |
462 | ||
463 | &usb_otg_hs { | |
464 | interface-type = <0>; | |
465 | usb-phy = <&usb2_phy>; | |
d2afcf09 RQ |
466 | phys = <&usb2_phy>; |
467 | phy-names = "usb2-phy"; | |
a4d4b153 PM |
468 | mode = <2>; |
469 | power = <50>; | |
470 | }; | |
7a89eecf SR |
471 | |
472 | &uart1 { | |
473 | status = "disabled"; | |
474 | }; | |
475 | ||
476 | &uart2 { | |
477 | pinctrl-names = "default"; | |
478 | pinctrl-0 = <&uart2_pins>; | |
479 | }; | |
480 | ||
481 | &uart3 { | |
482 | pinctrl-names = "default"; | |
483 | pinctrl-0 = <&uart3_pins>; | |
484 | }; |