Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[linux-drm-fsl-dcu.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         leds: leds {
20                 compatible = "gpio-leds";
21                 pinctrl-names = "default";
22                 pinctrl-0 = <
23                         &led_wkgpio_pins
24                 >;
25
26                 heartbeat {
27                         label = "pandaboard::status1";
28                         gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
29                         linux,default-trigger = "heartbeat";
30                 };
31
32                 mmc {
33                         label = "pandaboard::status2";
34                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
35                         linux,default-trigger = "mmc0";
36                 };
37         };
38
39         sound: sound {
40                 compatible = "ti,abe-twl6040";
41                 ti,model = "PandaBoard";
42
43                 ti,mclk-freq = <38400000>;
44
45                 ti,mcpdm = <&mcpdm>;
46
47                 ti,twl6040 = <&twl6040>;
48
49                 /* Audio routing */
50                 ti,audio-routing =
51                         "Headset Stereophone", "HSOL",
52                         "Headset Stereophone", "HSOR",
53                         "Ext Spk", "HFL",
54                         "Ext Spk", "HFR",
55                         "Line Out", "AUXL",
56                         "Line Out", "AUXR",
57                         "HSMIC", "Headset Mic",
58                         "Headset Mic", "Headset Mic Bias",
59                         "AFML", "Line In",
60                         "AFMR", "Line In";
61         };
62
63         /* HS USB Port 1 Power */
64         hsusb1_power: hsusb1_power_reg {
65                 compatible = "regulator-fixed";
66                 regulator-name = "hsusb1_vbus";
67                 regulator-min-microvolt = <3300000>;
68                 regulator-max-microvolt = <3300000>;
69                 gpio = <&gpio1 1 0>;    /* gpio_1 */
70                 startup-delay-us = <70000>;
71                 enable-active-high;
72                 /*
73                  * boot-on is required along with always-on as the
74                  * regulator framework doesn't enable the regulator
75                  * if boot-on is not there.
76                  */
77                 regulator-always-on;
78                 regulator-boot-on;
79         };
80
81         /* HS USB Host PHY on PORT 1 */
82         hsusb1_phy: hsusb1_phy {
83                 compatible = "usb-nop-xceiv";
84                 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;   /* gpio_62 */
85                 vcc-supply = <&hsusb1_power>;
86         /**
87          * FIXME:
88          * put the right clock phandle here when available
89          *      clocks = <&auxclk3>;
90          *      clock-names = "main_clk";
91          */
92                 clock-frequency = <19200000>;
93         };
94
95         /* regulator for wl12xx on sdio5 */
96         wl12xx_vmmc: wl12xx_vmmc {
97                 pinctrl-names = "default";
98                 pinctrl-0 = <&wl12xx_gpio>;
99                 compatible = "regulator-fixed";
100                 regulator-name = "vwl1271";
101                 regulator-min-microvolt = <1800000>;
102                 regulator-max-microvolt = <1800000>;
103                 gpio = <&gpio2 11 0>;
104                 startup-delay-us = <70000>;
105                 enable-active-high;
106         };
107 };
108
109 &omap4_pmx_core {
110         pinctrl-names = "default";
111         pinctrl-0 = <
112                         &twl6040_pins
113                         &mcpdm_pins
114                         &mcbsp1_pins
115                         &dss_dpi_pins
116                         &tfp410_pins
117                         &dss_hdmi_pins
118                         &tpd12s015_pins
119                         &hsusbb1_pins
120         >;
121
122         twl6040_pins: pinmux_twl6040_pins {
123                 pinctrl-single,pins = <
124                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
125                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
126                 >;
127         };
128
129         mcpdm_pins: pinmux_mcpdm_pins {
130                 pinctrl-single,pins = <
131                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
132                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
133                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
134                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
135                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
136                 >;
137         };
138
139         mcbsp1_pins: pinmux_mcbsp1_pins {
140                 pinctrl-single,pins = <
141                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
142                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
143                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
144                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
145                 >;
146         };
147
148         dss_dpi_pins: pinmux_dss_dpi_pins {
149                 pinctrl-single,pins = <
150                         0x122 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data23 */
151                         0x124 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data22 */
152                         0x126 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data21 */
153                         0x128 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data20 */
154                         0x12a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data19 */
155                         0x12c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data18 */
156                         0x12e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data15 */
157                         0x130 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data14 */
158                         0x132 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data13 */
159                         0x134 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data12 */
160                         0x136 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data11 */
161
162                         0x174 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data10 */
163                         0x176 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data9 */
164                         0x178 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data16 */
165                         0x17a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data17 */
166                         0x17c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_hsync */
167                         0x17e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_pclk */
168                         0x180 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_vsync */
169                         0x182 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_de */
170                         0x184 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data8 */
171                         0x186 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data7 */
172                         0x188 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data6 */
173                         0x18a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data5 */
174                         0x18c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data4 */
175                         0x18e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data3 */
176
177                         0x190 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data2 */
178                         0x192 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data1 */
179                         0x194 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data0 */
180                 >;
181         };
182
183         tfp410_pins: pinmux_tfp410_pins {
184                 pinctrl-single,pins = <
185                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
186                 >;
187         };
188
189         dss_hdmi_pins: pinmux_dss_hdmi_pins {
190                 pinctrl-single,pins = <
191                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
192                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
193                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
194                 >;
195         };
196
197         tpd12s015_pins: pinmux_tpd12s015_pins {
198                 pinctrl-single,pins = <
199                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
200                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
201                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
202                 >;
203         };
204
205         hsusbb1_pins: pinmux_hsusbb1_pins {
206                 pinctrl-single,pins = <
207                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
208                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
209                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
210                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
211                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
212                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
213                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
214                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
215                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
216                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
217                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
218                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
219                 >;
220         };
221
222         i2c1_pins: pinmux_i2c1_pins {
223                 pinctrl-single,pins = <
224                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
225                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
226                 >;
227         };
228
229         i2c2_pins: pinmux_i2c2_pins {
230                 pinctrl-single,pins = <
231                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
232                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
233                 >;
234         };
235
236         i2c3_pins: pinmux_i2c3_pins {
237                 pinctrl-single,pins = <
238                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
239                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
240                 >;
241         };
242
243         i2c4_pins: pinmux_i2c4_pins {
244                 pinctrl-single,pins = <
245                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
246                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
247                 >;
248         };
249
250         /*
251          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
252          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
253          */
254         wl12xx_gpio: pinmux_wl12xx_gpio {
255                 pinctrl-single,pins = <
256                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
257                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
258                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
259                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
260                 >;
261         };
262
263         /* wl12xx GPIO inputs and SDIO pins */
264         wl12xx_pins: pinmux_wl12xx_pins {
265                 pinctrl-single,pins = <
266                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
267                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
268                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
269                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
270                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
271                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
272                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
273                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
274                 >;
275         };
276 };
277
278 &omap4_pmx_wkup {
279         led_wkgpio_pins: pinmux_leds_wkpins {
280                 pinctrl-single,pins = <
281                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
282                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
283                 >;
284         };
285 };
286
287 &i2c1 {
288         pinctrl-names = "default";
289         pinctrl-0 = <&i2c1_pins>;
290
291         clock-frequency = <400000>;
292
293         twl: twl@48 {
294                 reg = <0x48>;
295                 /* IRQ# = 7 */
296                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
297                 interrupt-parent = <&gic>;
298         };
299
300         twl6040: twl@4b {
301                 compatible = "ti,twl6040";
302                 reg = <0x4b>;
303                 /* IRQ# = 119 */
304                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
305                 interrupt-parent = <&gic>;
306                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
307
308                 vio-supply = <&v1v8>;
309                 v2v1-supply = <&v2v1>;
310                 enable-active-high;
311         };
312 };
313
314 #include "twl6030.dtsi"
315 #include "twl6030_omap4.dtsi"
316
317 &i2c2 {
318         pinctrl-names = "default";
319         pinctrl-0 = <&i2c2_pins>;
320
321         clock-frequency = <400000>;
322 };
323
324 &i2c3 {
325         pinctrl-names = "default";
326         pinctrl-0 = <&i2c3_pins>;
327
328         clock-frequency = <100000>;
329
330         /*
331          * Display monitor features are burnt in their EEPROM as EDID data.
332          * The EEPROM is connected as I2C slave device.
333          */
334         eeprom@50 {
335                 compatible = "ti,eeprom";
336                 reg = <0x50>;
337         };
338 };
339
340 &i2c4 {
341         pinctrl-names = "default";
342         pinctrl-0 = <&i2c4_pins>;
343
344         clock-frequency = <400000>;
345 };
346
347 &mmc1 {
348         vmmc-supply = <&vmmc>;
349         bus-width = <8>;
350 };
351
352 &mmc2 {
353         status = "disabled";
354 };
355
356 &mmc3 {
357         status = "disabled";
358 };
359
360 &mmc4 {
361         status = "disabled";
362 };
363
364 &mmc5 {
365         pinctrl-names = "default";
366         pinctrl-0 = <&wl12xx_pins>;
367         vmmc-supply = <&wl12xx_vmmc>;
368         non-removable;
369         bus-width = <4>;
370         cap-power-off-card;
371 };
372
373 &emif1 {
374         cs1-used;
375         device-handle = <&elpida_ECB240ABACN>;
376 };
377
378 &emif2 {
379         cs1-used;
380         device-handle = <&elpida_ECB240ABACN>;
381 };
382
383 &mcbsp2 {
384         status = "disabled";
385 };
386
387 &mcbsp3 {
388         status = "disabled";
389 };
390
391 &dmic {
392         status = "disabled";
393 };
394
395 &twl_usb_comparator {
396         usb-supply = <&vusb>;
397 };
398
399 &usb_otg_hs {
400         interface-type = <1>;
401         mode = <3>;
402         power = <50>;
403 };
404
405 &usbhshost {
406         port1-mode = "ehci-phy";
407 };
408
409 &usbhsehci {
410         phys = <&hsusb1_phy>;
411 };