Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / omap3-n900.dts
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
14 / {
15         model = "Nokia N900";
16         compatible = "nokia,omap3-n900", "ti,omap3430", "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
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
77         isp1704: isp1704 {
78                 compatible = "nxp,isp1704";
79                 nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
80                 usb-phy = <&usb2_phy>;
81         };
82 };
83
84 &omap3_pmx_core {
85         pinctrl-names = "default";
86
87         uart2_pins: pinmux_uart2_pins {
88                 pinctrl-single,pins = <
89                         0x14a (PIN_INPUT | MUX_MODE0)           /* uart2_rx */
90                         0x148 (PIN_OUTPUT | MUX_MODE0)          /* uart2_tx */
91                 >;
92         };
93
94         uart3_pins: pinmux_uart3_pins {
95                 pinctrl-single,pins = <
96                         0x16e (PIN_INPUT | MUX_MODE0)           /* uart3_rx */
97                         0x170 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx */
98                 >;
99         };
100
101         i2c1_pins: pinmux_i2c1_pins {
102                 pinctrl-single,pins = <
103                         0x18a (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_scl */
104                         0x18c (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_sda */
105                 >;
106         };
107
108         i2c2_pins: pinmux_i2c2_pins {
109                 pinctrl-single,pins = <
110                         0x18e (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c2_scl */
111                         0x190 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c2_sda */
112                 >;
113         };
114
115         i2c3_pins: pinmux_i2c3_pins {
116                 pinctrl-single,pins = <
117                         0x192 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c3_scl */
118                         0x194 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c3_sda */
119                 >;
120         };
121
122         mmc1_pins: pinmux_mmc1_pins {
123                 pinctrl-single,pins = <
124                         0x114 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_clk */
125                         0x116 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_cmd */
126                         0x118 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat0 */
127                         0x11a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat1 */
128                         0x11c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat2 */
129                         0x11e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat3 */
130                 >;
131         };
132
133         mmc2_pins: pinmux_mmc2_pins {
134                 pinctrl-single,pins = <
135                         0x128 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_clk */
136                         0x12a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_cmd */
137                         0x12c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat0 */
138                         0x12e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat1 */
139                         0x130 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat2 */
140                         0x132 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat3 */
141                         0x134 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat4 */
142                         0x136 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat5 */
143                         0x138 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat6 */
144                         0x13a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc2_dat7 */
145                 >;
146         };
147
148         display_pins: pinmux_display_pins {
149                 pinctrl-single,pins = <
150                         0x0d4 (PIN_OUTPUT | MUX_MODE4)          /* RX51_LCD_RESET_GPIO */
151                 >;
152         };
153 };
154
155 &i2c1 {
156         pinctrl-names = "default";
157         pinctrl-0 = <&i2c1_pins>;
158
159         clock-frequency = <2200000>;
160
161         twl: twl@48 {
162                 reg = <0x48>;
163                 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
164                 interrupt-parent = <&intc>;
165         };
166 };
167
168 #include "twl4030.dtsi"
169 #include "twl4030_omap3.dtsi"
170
171 &vaux1 {
172         regulator-name = "V28";
173         regulator-min-microvolt = <2800000>;
174         regulator-max-microvolt = <2800000>;
175         regulator-always-on; /* due battery cover sensor */
176 };
177
178 &vaux2 {
179         regulator-name = "VCSI";
180         regulator-min-microvolt = <1800000>;
181         regulator-max-microvolt = <1800000>;
182 };
183
184 &vaux3 {
185         regulator-name = "VMMC2_30";
186         regulator-min-microvolt = <2800000>;
187         regulator-max-microvolt = <3000000>;
188 };
189
190 &vaux4 {
191         regulator-name = "VCAM_ANA_28";
192         regulator-min-microvolt = <2800000>;
193         regulator-max-microvolt = <2800000>;
194 };
195
196 &vmmc1 {
197         regulator-name = "VMMC1";
198         regulator-min-microvolt = <1850000>;
199         regulator-max-microvolt = <3150000>;
200 };
201
202 &vmmc2 {
203         regulator-name = "V28_A";
204         regulator-min-microvolt = <2800000>;
205         regulator-max-microvolt = <3000000>;
206         regulator-always-on; /* due VIO leak to AIC34 VDDs */
207 };
208
209 &vpll1 {
210         regulator-name = "VPLL";
211         regulator-min-microvolt = <1800000>;
212         regulator-max-microvolt = <1800000>;
213         regulator-always-on;
214 };
215
216 &vpll2 {
217         regulator-name = "VSDI_CSI";
218         regulator-min-microvolt = <1800000>;
219         regulator-max-microvolt = <1800000>;
220         regulator-always-on;
221 };
222
223 &vsim {
224         regulator-name = "VMMC2_IO_18";
225         regulator-min-microvolt = <1800000>;
226         regulator-max-microvolt = <1800000>;
227 };
228
229 &vio {
230         regulator-name = "VIO";
231         regulator-min-microvolt = <1800000>;
232         regulator-max-microvolt = <1800000>;
233
234 };
235
236 &vintana1 {
237         regulator-name = "VINTANA1";
238         /* fixed to 1500000 */
239         regulator-always-on;
240 };
241
242 &vintana2 {
243         regulator-name = "VINTANA2";
244         regulator-min-microvolt = <2750000>;
245         regulator-max-microvolt = <2750000>;
246         regulator-always-on;
247 };
248
249 &vintdig {
250         regulator-name = "VINTDIG";
251         /* fixed to 1500000 */
252         regulator-always-on;
253 };
254
255 &twl {
256         twl_audio: audio {
257                 compatible = "ti,twl4030-audio";
258                 ti,enable-vibra = <1>;
259         };
260 };
261
262 &twl_keypad {
263         linux,keymap = < 0x00000010 /* KEY_Q */
264                          0x00010018 /* KEY_O */
265                          0x00020019 /* KEY_P */
266                          0x00030033 /* KEY_COMMA */
267                          0x0004000e /* KEY_BACKSPACE */
268                          0x0006001e /* KEY_A */
269                          0x0007001f /* KEY_S */
270
271                          0x01000011 /* KEY_W */
272                          0x01010020 /* KEY_D */
273                          0x01020021 /* KEY_F */
274                          0x01030022 /* KEY_G */
275                          0x01040023 /* KEY_H */
276                          0x01050024 /* KEY_J */
277                          0x01060025 /* KEY_K */
278                          0x01070026 /* KEY_L */
279
280                          0x02000012 /* KEY_E */
281                          0x02010034 /* KEY_DOT */
282                          0x02020067 /* KEY_UP */
283                          0x0203001c /* KEY_ENTER */
284                          0x0205002c /* KEY_Z */
285                          0x0206002d /* KEY_X */
286                          0x0207002e /* KEY_C */
287                          0x02080043 /* KEY_F9 */
288
289                          0x03000013 /* KEY_R */
290                          0x0301002f /* KEY_V */
291                          0x03020030 /* KEY_B */
292                          0x03030031 /* KEY_N */
293                          0x03040032 /* KEY_M */
294                          0x03050039 /* KEY_SPACE */
295                          0x03060039 /* KEY_SPACE */
296                          0x03070069 /* KEY_LEFT */
297
298                          0x04000014 /* KEY_T */
299                          0x0401006c /* KEY_DOWN */
300                          0x0402006a /* KEY_RIGHT */
301                          0x0404001d /* KEY_LEFTCTRL */
302                          0x04050064 /* KEY_RIGHTALT */
303                          0x0406002a /* KEY_LEFTSHIFT */
304                          0x04080044 /* KEY_F10 */
305
306                          0x05000015 /* KEY_Y */
307                          0x05080057 /* KEY_F11 */
308
309                          0x06000016 /* KEY_U */
310
311                          0x07000017 /* KEY_I */
312                          0x07010041 /* KEY_F7 */
313                          0x07020042 /* KEY_F8 */
314                          >;
315 };
316
317 &twl_gpio {
318         ti,pullups      = <0x0>;
319         ti,pulldowns    = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
320 };
321
322 &i2c2 {
323         pinctrl-names = "default";
324         pinctrl-0 = <&i2c2_pins>;
325
326         clock-frequency = <100000>;
327
328         tlv320aic3x: tlv320aic3x@18 {
329                 compatible = "ti,tlv320aic3x";
330                 reg = <0x18>;
331                 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
332                 ai3x-gpio-func = <
333                         0 /* AIC3X_GPIO1_FUNC_DISABLED */
334                         5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
335                 >;
336
337                 AVDD-supply = <&vmmc2>;
338                 DRVDD-supply = <&vmmc2>;
339                 IOVDD-supply = <&vio>;
340                 DVDD-supply = <&vio>;
341         };
342
343         tlv320aic3x_aux: tlv320aic3x@19 {
344                 compatible = "ti,tlv320aic3x";
345                 reg = <0x19>;
346                 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
347
348                 AVDD-supply = <&vmmc2>;
349                 DRVDD-supply = <&vmmc2>;
350                 IOVDD-supply = <&vio>;
351                 DVDD-supply = <&vio>;
352         };
353
354         tsl2563: tsl2563@29 {
355                 compatible = "amstaos,tsl2563";
356                 reg = <0x29>;
357
358                 amstaos,cover-comp-gain = <16>;
359         };
360
361         lp5523: lp5523@32 {
362                 compatible = "national,lp5523";
363                 reg = <0x32>;
364                 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
365                 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
366
367                 chan0 {
368                         chan-name = "lp5523:kb1";
369                         led-cur = /bits/ 8 <50>;
370                         max-cur = /bits/ 8 <100>;
371                 };
372
373                 chan1 {
374                         chan-name = "lp5523:kb2";
375                         led-cur = /bits/ 8 <50>;
376                         max-cur = /bits/ 8 <100>;
377                 };
378
379                 chan2 {
380                         chan-name = "lp5523:kb3";
381                         led-cur = /bits/ 8 <50>;
382                         max-cur = /bits/ 8 <100>;
383                 };
384
385                 chan3 {
386                         chan-name = "lp5523:kb4";
387                         led-cur = /bits/ 8 <50>;
388                         max-cur = /bits/ 8 <100>;
389                 };
390
391                 chan4 {
392                         chan-name = "lp5523:b";
393                         led-cur = /bits/ 8 <50>;
394                         max-cur = /bits/ 8 <100>;
395                 };
396
397                 chan5 {
398                         chan-name = "lp5523:g";
399                         led-cur = /bits/ 8 <50>;
400                         max-cur = /bits/ 8 <100>;
401                 };
402
403                 chan6 {
404                         chan-name = "lp5523:r";
405                         led-cur = /bits/ 8 <50>;
406                         max-cur = /bits/ 8 <100>;
407                 };
408
409                 chan7 {
410                         chan-name = "lp5523:kb5";
411                         led-cur = /bits/ 8 <50>;
412                         max-cur = /bits/ 8 <100>;
413                 };
414
415                 chan8 {
416                         chan-name = "lp5523:kb6";
417                         led-cur = /bits/ 8 <50>;
418                         max-cur = /bits/ 8 <100>;
419                 };
420         };
421
422         bq27200: bq27200@55 {
423                 compatible = "ti,bq27200";
424                 reg = <0x55>;
425         };
426
427         tpa6130a2: tpa6130a2@60 {
428                 compatible = "ti,tpa6130a2";
429                 reg = <0x60>;
430
431                 Vdd-supply = <&vmmc2>;
432
433                 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
434         };
435
436         bq24150a: bq24150a@6b {
437                 compatible = "ti,bq24150a";
438                 reg = <0x6b>;
439
440                 ti,current-limit = <100>;
441                 ti,weak-battery-voltage = <3400>;
442                 ti,battery-regulation-voltage = <4200>;
443                 ti,charge-current = <650>;
444                 ti,termination-current = <100>;
445                 ti,resistor-sense = <68>;
446
447                 ti,usb-charger-detection = <&isp1704>;
448         };
449 };
450
451 &i2c3 {
452         pinctrl-names = "default";
453         pinctrl-0 = <&i2c3_pins>;
454
455         clock-frequency = <400000>;
456 };
457
458 &mmc1 {
459         pinctrl-names = "default";
460         pinctrl-0 = <&mmc1_pins>;
461         vmmc-supply = <&vmmc1>;
462         bus-width = <4>;
463         cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
464 };
465
466 /* most boards use vaux3, only some old versions use vmmc2 instead */
467 &mmc2 {
468         pinctrl-names = "default";
469         pinctrl-0 = <&mmc2_pins>;
470         vmmc-supply = <&vaux3>;
471         vmmc_aux-supply = <&vsim>;
472         bus-width = <8>;
473         non-removable;
474 };
475
476 &mmc3 {
477         status = "disabled";
478 };
479
480 &gpmc {
481         ranges = <0 0 0x04000000 0x10000000>; /* 256MB */
482
483         /* gpio-irq for dma: 65 */
484
485         onenand@0,0 {
486                 #address-cells = <1>;
487                 #size-cells = <1>;
488                 reg = <0 0 0x10000000>;
489
490                 gpmc,sync-read;
491                 gpmc,sync-write;
492                 gpmc,burst-length = <16>;
493                 gpmc,burst-read;
494                 gpmc,burst-wrap;
495                 gpmc,burst-write;
496                 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
497                 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
498                 gpmc,cs-on-ns = <0>;
499                 gpmc,cs-rd-off-ns = <87>;
500                 gpmc,cs-wr-off-ns = <87>;
501                 gpmc,adv-on-ns = <0>;
502                 gpmc,adv-rd-off-ns = <10>;
503                 gpmc,adv-wr-off-ns = <10>;
504                 gpmc,oe-on-ns = <15>;
505                 gpmc,oe-off-ns = <87>;
506                 gpmc,we-on-ns = <0>;
507                 gpmc,we-off-ns = <87>;
508                 gpmc,rd-cycle-ns = <112>;
509                 gpmc,wr-cycle-ns = <112>;
510                 gpmc,access-ns = <81>;
511                 gpmc,page-burst-access-ns = <15>;
512                 gpmc,bus-turnaround-ns = <0>;
513                 gpmc,cycle2cycle-delay-ns = <0>;
514                 gpmc,wait-monitoring-ns = <0>;
515                 gpmc,clk-activation-ns = <5>;
516                 gpmc,wr-data-mux-bus-ns = <30>;
517                 gpmc,wr-access-ns = <81>;
518                 gpmc,sync-clk-ps = <15000>;
519
520                 /*
521                  * MTD partition table corresponding to Nokia's
522                  * Maemo 5 (Fremantle) release.
523                  */
524                 partition@0 {
525                         label = "bootloader";
526                         reg = <0x00000000 0x00020000>;
527                         read-only;
528                 };
529                 partition@1 {
530                         label = "config";
531                         reg = <0x00020000 0x00060000>;
532                 };
533                 partition@2 {
534                         label = "log";
535                         reg = <0x00080000 0x00040000>;
536                 };
537                 partition@3 {
538                         label = "kernel";
539                         reg = <0x000c0000 0x00200000>;
540                 };
541                 partition@4 {
542                         label = "initfs";
543                         reg = <0x002c0000 0x00200000>;
544                 };
545                 partition@5 {
546                         label = "rootfs";
547                         reg = <0x004c0000 0x0fb40000>;
548                 };
549         };
550 };
551
552 &mcspi1 {
553         /*
554          * For some reason, touchscreen is necessary for screen to work at
555          * all on real hw. It works well without it on emulator.
556          *
557          * Also... order in the device tree actually matters here.
558          */
559         tsc2005@0 {
560                 compatible = "tsc2005";
561                 spi-max-frequency = <6000000>;
562                 reg = <0>;
563         };
564         mipid@2 {
565                 compatible = "acx565akm";
566                 spi-max-frequency = <6000000>;
567                 reg = <2>;
568
569                 pinctrl-names = "default";
570                 pinctrl-0 = <&display_pins>;
571         };
572 };
573
574 &usb_otg_hs {
575         interface-type = <0>;
576         usb-phy = <&usb2_phy>;
577         phys = <&usb2_phy>;
578         phy-names = "usb2-phy";
579         mode = <2>;
580         power = <50>;
581 };
582
583 &uart1 {
584         status = "disabled";
585 };
586
587 &uart2 {
588         pinctrl-names = "default";
589         pinctrl-0 = <&uart2_pins>;
590 };
591
592 &uart3 {
593         pinctrl-names = "default";
594         pinctrl-0 = <&uart3_pins>;
595 };