Merge tag 'locks-v3.16-2' of git://git.samba.org/jlayton/linux
[linux/fpc-iii.git] / arch / arm / boot / dts / omap4-panda-common.dtsi
blob8cfa3c8a72b08ea7985b1ee3ed1f92bee132a4d8
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"
10 / {
11         model = "TI OMAP4 PandaBoard";
12         compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
14         memory {
15                 device_type = "memory";
16                 reg = <0x80000000 0x40000000>; /* 1 GB */
17         };
19         aliases {
20                 display0 = &dvi0;
21                 display1 = &hdmi0;
22         };
24         leds: leds {
25                 compatible = "gpio-leds";
26                 pinctrl-names = "default";
27                 pinctrl-0 = <
28                         &led_wkgpio_pins
29                 >;
31                 heartbeat {
32                         label = "pandaboard::status1";
33                         gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
34                         linux,default-trigger = "heartbeat";
35                 };
37                 mmc {
38                         label = "pandaboard::status2";
39                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
40                         linux,default-trigger = "mmc0";
41                 };
42         };
44         sound: sound {
45                 compatible = "ti,abe-twl6040";
46                 ti,model = "PandaBoard";
48                 ti,mclk-freq = <38400000>;
50                 ti,mcpdm = <&mcpdm>;
52                 ti,twl6040 = <&twl6040>;
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         };
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         };
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         };
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         };
109         tfp410: encoder@0 {
110                 compatible = "ti,tfp410";
111                 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;   /* gpio_0 */
113                 ports {
114                         #address-cells = <1>;
115                         #size-cells = <0>;
117                         port@0 {
118                                 reg = <0>;
120                                 tfp410_in: endpoint@0 {
121                                         remote-endpoint = <&dpi_out>;
122                                 };
123                         };
125                         port@1 {
126                                 reg = <1>;
128                                 tfp410_out: endpoint@0 {
129                                         remote-endpoint = <&dvi_connector_in>;
130                                 };
131                         };
132                 };
133         };
135         dvi0: connector@0 {
136                 compatible = "dvi-connector";
137                 label = "dvi";
139                 digital;
141                 ddc-i2c-bus = <&i2c3>;
143                 port {
144                         dvi_connector_in: endpoint {
145                                 remote-endpoint = <&tfp410_out>;
146                         };
147                 };
148         };
150         tpd12s015: encoder@1 {
151                 compatible = "ti,tpd12s015";
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 */
157                 ports {
158                         #address-cells = <1>;
159                         #size-cells = <0>;
161                         port@0 {
162                                 reg = <0>;
164                                 tpd12s015_in: endpoint@0 {
165                                         remote-endpoint = <&hdmi_out>;
166                                 };
167                         };
169                         port@1 {
170                                 reg = <1>;
172                                 tpd12s015_out: endpoint@0 {
173                                         remote-endpoint = <&hdmi_connector_in>;
174                                 };
175                         };
176                 };
177         };
179         hdmi0: connector@1 {
180                 compatible = "hdmi-connector";
181                 label = "hdmi";
183                 type = "a";
185                 port {
186                         hdmi_connector_in: endpoint {
187                                 remote-endpoint = <&tpd12s015_out>;
188                         };
189                 };
190         };
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         >;
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         };
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         };
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         };
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 */
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 */
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         };
264         tfp410_pins: pinmux_tfp410_pins {
265                 pinctrl-single,pins = <
266                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
267                 >;
268         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
368 &i2c1 {
369         pinctrl-names = "default";
370         pinctrl-0 = <&i2c1_pins>;
372         clock-frequency = <400000>;
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         };
381         twl6040: twl@4b {
382                 compatible = "ti,twl6040";
383                 reg = <0x4b>;
385                 pinctrl-names = "default";
386                 pinctrl-0 = <&twl6040_pins>;
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 */
393                 vio-supply = <&v1v8>;
394                 v2v1-supply = <&v2v1>;
395                 enable-active-high;
396         };
399 #include "twl6030.dtsi"
400 #include "twl6030_omap4.dtsi"
402 &i2c2 {
403         pinctrl-names = "default";
404         pinctrl-0 = <&i2c2_pins>;
406         clock-frequency = <400000>;
409 &i2c3 {
410         pinctrl-names = "default";
411         pinctrl-0 = <&i2c3_pins>;
413         clock-frequency = <100000>;
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         };
425 &i2c4 {
426         pinctrl-names = "default";
427         pinctrl-0 = <&i2c4_pins>;
429         clock-frequency = <400000>;
432 &mmc1 {
433         vmmc-supply = <&vmmc>;
434         bus-width = <8>;
437 &mmc2 {
438         status = "disabled";
441 &mmc3 {
442         status = "disabled";
445 &mmc4 {
446         status = "disabled";
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;
458 &emif1 {
459         cs1-used;
460         device-handle = <&elpida_ECB240ABACN>;
463 &emif2 {
464         cs1-used;
465         device-handle = <&elpida_ECB240ABACN>;
468 &mcbsp1 {
469         pinctrl-names = "default";
470         pinctrl-0 = <&mcbsp1_pins>;
471         status = "okay";
474 &mcpdm {
475         pinctrl-names = "default";
476         pinctrl-0 = <&mcpdm_pins>;
477         status = "okay";
480 &twl_usb_comparator {
481         usb-supply = <&vusb>;
484 &uart2 {
485         interrupts-extended = <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
486                                &omap4_pmx_core OMAP4_UART2_RX>;
489 &uart3 {
490         interrupts-extended = <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
491                                &omap4_pmx_core OMAP4_UART3_RX>;
494 &uart4 {
495         interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
496                                &omap4_pmx_core OMAP4_UART4_RX>;
499 &usb_otg_hs {
500         interface-type = <1>;
501         mode = <3>;
502         power = <50>;
505 &usbhshost {
506         port1-mode = "ehci-phy";
509 &usbhsehci {
510         phys = <&hsusb1_phy>;
513 &dss {
514         status = "ok";
516         port {
517                 dpi_out: endpoint {
518                         remote-endpoint = <&tfp410_in>;
519                         data-lines = <24>;
520                 };
521         };
524 &dsi2 {
525         status = "ok";
526         vdd-supply = <&vcxio>;
529 &hdmi {
530         status = "ok";
531         vdda-supply = <&vdac>;
533         port {
534                 hdmi_out: endpoint {
535                         remote-endpoint = <&tpd12s015_in>;
536                 };
537         };