Merge branch 'async-scsi-resume' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / arch / arm / boot / dts / omap4-panda-common.dtsi
1 /*
2  * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 #include "elpida_ecb240abacn.dtsi"
9
10 / {
11         model = "TI OMAP4 PandaBoard";
12         compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
13
14         memory {
15                 device_type = "memory";
16                 reg = <0x80000000 0x40000000>; /* 1 GB */
17         };
18
19         aliases {
20                 display0 = &dvi0;
21                 display1 = &hdmi0;
22         };
23
24         leds: leds {
25                 compatible = "gpio-leds";
26                 pinctrl-names = "default";
27                 pinctrl-0 = <
28                         &led_wkgpio_pins
29                 >;
30
31                 heartbeat {
32                         label = "pandaboard::status1";
33                         gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
34                         linux,default-trigger = "heartbeat";
35                 };
36
37                 mmc {
38                         label = "pandaboard::status2";
39                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
40                         linux,default-trigger = "mmc0";
41                 };
42         };
43
44         sound: sound {
45                 compatible = "ti,abe-twl6040";
46                 ti,model = "PandaBoard";
47
48                 ti,mclk-freq = <38400000>;
49
50                 ti,mcpdm = <&mcpdm>;
51
52                 ti,twl6040 = <&twl6040>;
53
54                 /* Audio routing */
55                 ti,audio-routing =
56                         "Headset Stereophone", "HSOL",
57                         "Headset Stereophone", "HSOR",
58                         "Ext Spk", "HFL",
59                         "Ext Spk", "HFR",
60                         "Line Out", "AUXL",
61                         "Line Out", "AUXR",
62                         "HSMIC", "Headset Mic",
63                         "Headset Mic", "Headset Mic Bias",
64                         "AFML", "Line In",
65                         "AFMR", "Line In";
66         };
67
68         /* HS USB Port 1 Power */
69         hsusb1_power: hsusb1_power_reg {
70                 compatible = "regulator-fixed";
71                 regulator-name = "hsusb1_vbus";
72                 regulator-min-microvolt = <3300000>;
73                 regulator-max-microvolt = <3300000>;
74                 gpio = <&gpio1 1 0>;    /* gpio_1 */
75                 startup-delay-us = <70000>;
76                 enable-active-high;
77                 /*
78                  * boot-on is required along with always-on as the
79                  * regulator framework doesn't enable the regulator
80                  * if boot-on is not there.
81                  */
82                 regulator-always-on;
83                 regulator-boot-on;
84         };
85
86         /* HS USB Host PHY on PORT 1 */
87         hsusb1_phy: hsusb1_phy {
88                 compatible = "usb-nop-xceiv";
89                 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;   /* gpio_62 */
90                 vcc-supply = <&hsusb1_power>;
91                 clocks = <&auxclk3_ck>;
92                 clock-names = "main_clk";
93                 clock-frequency = <19200000>;
94         };
95
96         /* regulator for wl12xx on sdio5 */
97         wl12xx_vmmc: wl12xx_vmmc {
98                 pinctrl-names = "default";
99                 pinctrl-0 = <&wl12xx_gpio>;
100                 compatible = "regulator-fixed";
101                 regulator-name = "vwl1271";
102                 regulator-min-microvolt = <1800000>;
103                 regulator-max-microvolt = <1800000>;
104                 gpio = <&gpio2 11 0>;
105                 startup-delay-us = <70000>;
106                 enable-active-high;
107         };
108
109         tfp410: encoder@0 {
110                 compatible = "ti,tfp410";
111                 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;   /* gpio_0 */
112
113                 ports {
114                         #address-cells = <1>;
115                         #size-cells = <0>;
116
117                         port@0 {
118                                 reg = <0>;
119
120                                 tfp410_in: endpoint@0 {
121                                         remote-endpoint = <&dpi_out>;
122                                 };
123                         };
124
125                         port@1 {
126                                 reg = <1>;
127
128                                 tfp410_out: endpoint@0 {
129                                         remote-endpoint = <&dvi_connector_in>;
130                                 };
131                         };
132                 };
133         };
134
135         dvi0: connector@0 {
136                 compatible = "dvi-connector";
137                 label = "dvi";
138
139                 digital;
140
141                 ddc-i2c-bus = <&i2c3>;
142
143                 port {
144                         dvi_connector_in: endpoint {
145                                 remote-endpoint = <&tfp410_out>;
146                         };
147                 };
148         };
149
150         tpd12s015: encoder@1 {
151                 compatible = "ti,tpd12s015";
152
153                 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,   /* 60, CT CP HPD */
154                         <&gpio2 9 GPIO_ACTIVE_HIGH>,    /* 41, LS OE */
155                         <&gpio2 31 GPIO_ACTIVE_HIGH>;   /* 63, HPD */
156
157                 ports {
158                         #address-cells = <1>;
159                         #size-cells = <0>;
160
161                         port@0 {
162                                 reg = <0>;
163
164                                 tpd12s015_in: endpoint@0 {
165                                         remote-endpoint = <&hdmi_out>;
166                                 };
167                         };
168
169                         port@1 {
170                                 reg = <1>;
171
172                                 tpd12s015_out: endpoint@0 {
173                                         remote-endpoint = <&hdmi_connector_in>;
174                                 };
175                         };
176                 };
177         };
178
179         hdmi0: connector@1 {
180                 compatible = "hdmi-connector";
181                 label = "hdmi";
182
183                 type = "a";
184
185                 port {
186                         hdmi_connector_in: endpoint {
187                                 remote-endpoint = <&tpd12s015_out>;
188                         };
189                 };
190         };
191 };
192
193 &omap4_pmx_core {
194         pinctrl-names = "default";
195         pinctrl-0 = <
196                         &dss_dpi_pins
197                         &tfp410_pins
198                         &dss_hdmi_pins
199                         &tpd12s015_pins
200                         &hsusbb1_pins
201         >;
202
203         twl6040_pins: pinmux_twl6040_pins {
204                 pinctrl-single,pins = <
205                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
206                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
207                 >;
208         };
209
210         mcpdm_pins: pinmux_mcpdm_pins {
211                 pinctrl-single,pins = <
212                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
213                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
214                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
215                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
216                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
217                 >;
218         };
219
220         mcbsp1_pins: pinmux_mcbsp1_pins {
221                 pinctrl-single,pins = <
222                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
223                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
224                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
225                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
226                 >;
227         };
228
229         dss_dpi_pins: pinmux_dss_dpi_pins {
230                 pinctrl-single,pins = <
231                         0x122 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data23 */
232                         0x124 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data22 */
233                         0x126 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data21 */
234                         0x128 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data20 */
235                         0x12a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data19 */
236                         0x12c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data18 */
237                         0x12e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data15 */
238                         0x130 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data14 */
239                         0x132 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data13 */
240                         0x134 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data12 */
241                         0x136 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data11 */
242
243                         0x174 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data10 */
244                         0x176 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data9 */
245                         0x178 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data16 */
246                         0x17a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data17 */
247                         0x17c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_hsync */
248                         0x17e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_pclk */
249                         0x180 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_vsync */
250                         0x182 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_de */
251                         0x184 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data8 */
252                         0x186 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data7 */
253                         0x188 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data6 */
254                         0x18a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data5 */
255                         0x18c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data4 */
256                         0x18e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data3 */
257
258                         0x190 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data2 */
259                         0x192 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data1 */
260                         0x194 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data0 */
261                 >;
262         };
263
264         tfp410_pins: pinmux_tfp410_pins {
265                 pinctrl-single,pins = <
266                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
267                 >;
268         };
269
270         dss_hdmi_pins: pinmux_dss_hdmi_pins {
271                 pinctrl-single,pins = <
272                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
273                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
274                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
275                 >;
276         };
277
278         tpd12s015_pins: pinmux_tpd12s015_pins {
279                 pinctrl-single,pins = <
280                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
281                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
282                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
283                 >;
284         };
285
286         hsusbb1_pins: pinmux_hsusbb1_pins {
287                 pinctrl-single,pins = <
288                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
289                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
290                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
291                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
292                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
293                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
294                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
295                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
296                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
297                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
298                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
299                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
300                 >;
301         };
302
303         i2c1_pins: pinmux_i2c1_pins {
304                 pinctrl-single,pins = <
305                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
306                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
307                 >;
308         };
309
310         i2c2_pins: pinmux_i2c2_pins {
311                 pinctrl-single,pins = <
312                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
313                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
314                 >;
315         };
316
317         i2c3_pins: pinmux_i2c3_pins {
318                 pinctrl-single,pins = <
319                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
320                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
321                 >;
322         };
323
324         i2c4_pins: pinmux_i2c4_pins {
325                 pinctrl-single,pins = <
326                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
327                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
328                 >;
329         };
330
331         /*
332          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
333          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
334          */
335         wl12xx_gpio: pinmux_wl12xx_gpio {
336                 pinctrl-single,pins = <
337                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
338                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
339                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
340                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
341                 >;
342         };
343
344         /* wl12xx GPIO inputs and SDIO pins */
345         wl12xx_pins: pinmux_wl12xx_pins {
346                 pinctrl-single,pins = <
347                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
348                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
349                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
350                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
351                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
352                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
353                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
354                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
355                 >;
356         };
357 };
358
359 &omap4_pmx_wkup {
360         led_wkgpio_pins: pinmux_leds_wkpins {
361                 pinctrl-single,pins = <
362                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
363                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
364                 >;
365         };
366 };
367
368 &i2c1 {
369         pinctrl-names = "default";
370         pinctrl-0 = <&i2c1_pins>;
371
372         clock-frequency = <400000>;
373
374         twl: twl@48 {
375                 reg = <0x48>;
376                 /* IRQ# = 7 */
377                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
378                 interrupt-parent = <&gic>;
379         };
380
381         twl6040: twl@4b {
382                 compatible = "ti,twl6040";
383                 reg = <0x4b>;
384
385                 pinctrl-names = "default";
386                 pinctrl-0 = <&twl6040_pins>;
387
388                 /* IRQ# = 119 */
389                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
390                 interrupt-parent = <&gic>;
391                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
392
393                 vio-supply = <&v1v8>;
394                 v2v1-supply = <&v2v1>;
395                 enable-active-high;
396         };
397 };
398
399 #include "twl6030.dtsi"
400 #include "twl6030_omap4.dtsi"
401
402 &i2c2 {
403         pinctrl-names = "default";
404         pinctrl-0 = <&i2c2_pins>;
405
406         clock-frequency = <400000>;
407 };
408
409 &i2c3 {
410         pinctrl-names = "default";
411         pinctrl-0 = <&i2c3_pins>;
412
413         clock-frequency = <100000>;
414
415         /*
416          * Display monitor features are burnt in their EEPROM as EDID data.
417          * The EEPROM is connected as I2C slave device.
418          */
419         eeprom@50 {
420                 compatible = "ti,eeprom";
421                 reg = <0x50>;
422         };
423 };
424
425 &i2c4 {
426         pinctrl-names = "default";
427         pinctrl-0 = <&i2c4_pins>;
428
429         clock-frequency = <400000>;
430 };
431
432 &mmc1 {
433         vmmc-supply = <&vmmc>;
434         bus-width = <8>;
435 };
436
437 &mmc2 {
438         status = "disabled";
439 };
440
441 &mmc3 {
442         status = "disabled";
443 };
444
445 &mmc4 {
446         status = "disabled";
447 };
448
449 &mmc5 {
450         pinctrl-names = "default";
451         pinctrl-0 = <&wl12xx_pins>;
452         vmmc-supply = <&wl12xx_vmmc>;
453         non-removable;
454         bus-width = <4>;
455         cap-power-off-card;
456 };
457
458 &emif1 {
459         cs1-used;
460         device-handle = <&elpida_ECB240ABACN>;
461 };
462
463 &emif2 {
464         cs1-used;
465         device-handle = <&elpida_ECB240ABACN>;
466 };
467
468 &mcbsp1 {
469         pinctrl-names = "default";
470         pinctrl-0 = <&mcbsp1_pins>;
471         status = "okay";
472 };
473
474 &mcpdm {
475         pinctrl-names = "default";
476         pinctrl-0 = <&mcpdm_pins>;
477         status = "okay";
478 };
479
480 &twl_usb_comparator {
481         usb-supply = <&vusb>;
482 };
483
484 &usb_otg_hs {
485         interface-type = <1>;
486         mode = <3>;
487         power = <50>;
488 };
489
490 &usbhshost {
491         port1-mode = "ehci-phy";
492 };
493
494 &usbhsehci {
495         phys = <&hsusb1_phy>;
496 };
497
498 &dss {
499         status = "ok";
500
501         port {
502                 dpi_out: endpoint {
503                         remote-endpoint = <&tfp410_in>;
504                         data-lines = <24>;
505                 };
506         };
507 };
508
509 &dsi2 {
510         status = "ok";
511         vdd-supply = <&vcxio>;
512 };
513
514 &hdmi {
515         status = "ok";
516         vdda-supply = <&vdac>;
517
518         port {
519                 hdmi_out: endpoint {
520                         remote-endpoint = <&tpd12s015_in>;
521                 };
522         };
523 };