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 SR |
252 | |
253 | bq27200: bq27200@55 { | |
254 | compatible = "ti,bq27200"; | |
255 | reg = <0x55>; | |
256 | }; | |
a4d4b153 PM |
257 | }; |
258 | ||
259 | &i2c3 { | |
ac888a88 SR |
260 | pinctrl-names = "default"; |
261 | pinctrl-0 = <&i2c3_pins>; | |
262 | ||
48fc9864 | 263 | clock-frequency = <400000>; |
a4d4b153 PM |
264 | }; |
265 | ||
266 | &mmc1 { | |
f1751cff SR |
267 | pinctrl-names = "default"; |
268 | pinctrl-0 = <&mmc1_pins>; | |
269 | vmmc-supply = <&vmmc1>; | |
270 | bus-width = <4>; | |
271 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ | |
a4d4b153 PM |
272 | }; |
273 | ||
274 | &mmc2 { | |
275 | status = "disabled"; | |
276 | }; | |
277 | ||
278 | &mmc3 { | |
279 | status = "disabled"; | |
280 | }; | |
281 | ||
8699d2dd SR |
282 | &gpmc { |
283 | ranges = <0 0 0x04000000 0x10000000>; /* 256MB */ | |
284 | ||
285 | /* gpio-irq for dma: 65 */ | |
286 | ||
287 | onenand@0,0 { | |
288 | #address-cells = <1>; | |
289 | #size-cells = <1>; | |
290 | reg = <0 0 0x10000000>; | |
291 | ||
292 | gpmc,sync-read; | |
293 | gpmc,sync-write; | |
294 | gpmc,burst-length = <16>; | |
295 | gpmc,burst-read; | |
296 | gpmc,burst-wrap; | |
297 | gpmc,burst-write; | |
298 | gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */ | |
299 | gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */ | |
300 | gpmc,cs-on-ns = <0>; | |
301 | gpmc,cs-rd-off-ns = <87>; | |
302 | gpmc,cs-wr-off-ns = <87>; | |
303 | gpmc,adv-on-ns = <0>; | |
304 | gpmc,adv-rd-off-ns = <10>; | |
305 | gpmc,adv-wr-off-ns = <10>; | |
306 | gpmc,oe-on-ns = <15>; | |
307 | gpmc,oe-off-ns = <87>; | |
308 | gpmc,we-on-ns = <0>; | |
309 | gpmc,we-off-ns = <87>; | |
310 | gpmc,rd-cycle-ns = <112>; | |
311 | gpmc,wr-cycle-ns = <112>; | |
312 | gpmc,access-ns = <81>; | |
313 | gpmc,page-burst-access-ns = <15>; | |
314 | gpmc,bus-turnaround-ns = <0>; | |
315 | gpmc,cycle2cycle-delay-ns = <0>; | |
316 | gpmc,wait-monitoring-ns = <0>; | |
317 | gpmc,clk-activation-ns = <5>; | |
318 | gpmc,wr-data-mux-bus-ns = <30>; | |
319 | gpmc,wr-access-ns = <81>; | |
320 | gpmc,sync-clk-ps = <15000>; | |
321 | ||
322 | /* | |
323 | * MTD partition table corresponding to Nokia's | |
324 | * Maemo 5 (Fremantle) release. | |
325 | */ | |
326 | partition@0 { | |
327 | label = "bootloader"; | |
328 | reg = <0x00000000 0x00020000>; | |
329 | read-only; | |
330 | }; | |
331 | partition@1 { | |
332 | label = "config"; | |
333 | reg = <0x00020000 0x00060000>; | |
334 | }; | |
335 | partition@2 { | |
336 | label = "log"; | |
337 | reg = <0x00080000 0x00040000>; | |
338 | }; | |
339 | partition@3 { | |
340 | label = "kernel"; | |
341 | reg = <0x000c0000 0x00200000>; | |
342 | }; | |
343 | partition@4 { | |
344 | label = "initfs"; | |
345 | reg = <0x002c0000 0x00200000>; | |
346 | }; | |
347 | partition@5 { | |
348 | label = "rootfs"; | |
349 | reg = <0x004c0000 0x0fb40000>; | |
350 | }; | |
351 | }; | |
352 | }; | |
353 | ||
a4d4b153 PM |
354 | &mcspi1 { |
355 | /* | |
356 | * For some reason, touchscreen is necessary for screen to work at | |
357 | * all on real hw. It works well without it on emulator. | |
358 | * | |
359 | * Also... order in the device tree actually matters here. | |
360 | */ | |
361 | tsc2005@0 { | |
362 | compatible = "tsc2005"; | |
363 | spi-max-frequency = <6000000>; | |
364 | reg = <0>; | |
365 | }; | |
366 | mipid@2 { | |
367 | compatible = "acx565akm"; | |
368 | spi-max-frequency = <6000000>; | |
369 | reg = <2>; | |
d1e6f516 SR |
370 | |
371 | pinctrl-names = "default"; | |
372 | pinctrl-0 = <&display_pins>; | |
a4d4b153 PM |
373 | }; |
374 | }; | |
375 | ||
376 | &usb_otg_hs { | |
377 | interface-type = <0>; | |
378 | usb-phy = <&usb2_phy>; | |
d2afcf09 RQ |
379 | phys = <&usb2_phy>; |
380 | phy-names = "usb2-phy"; | |
a4d4b153 PM |
381 | mode = <2>; |
382 | power = <50>; | |
383 | }; | |
7a89eecf SR |
384 | |
385 | &uart1 { | |
386 | status = "disabled"; | |
387 | }; | |
388 | ||
389 | &uart2 { | |
390 | pinctrl-names = "default"; | |
391 | pinctrl-0 = <&uart2_pins>; | |
392 | }; | |
393 | ||
394 | &uart3 { | |
395 | pinctrl-names = "default"; | |
396 | pinctrl-0 = <&uart3_pins>; | |
397 | }; |