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