Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
[cascardo/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         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         /*
64          * Temp hack: Need to be replaced with the proper gpio-controlled
65          * reset driver as soon it will be merged.
66          * http://thread.gmane.org/gmane.linux.drivers.devicetree/36830
67          */
68         /* HS USB Port 1 RESET */
69         hsusb1_reset: hsusb1_reset_reg {
70                 compatible = "regulator-fixed";
71                 regulator-name = "hsusb1_reset";
72                 regulator-min-microvolt = <3300000>;
73                 regulator-max-microvolt = <3300000>;
74                 gpio = <&gpio2 30 0>;   /* gpio_62 */
75                 startup-delay-us = <70000>;
76                 enable-active-high;
77         };
78
79         /* HS USB Port 1 Power */
80         hsusb1_power: hsusb1_power_reg {
81                 compatible = "regulator-fixed";
82                 regulator-name = "hsusb1_vbus";
83                 regulator-min-microvolt = <3300000>;
84                 regulator-max-microvolt = <3300000>;
85                 gpio = <&gpio1 1 0>;    /* gpio_1 */
86                 startup-delay-us = <70000>;
87                 enable-active-high;
88                 /*
89                  * boot-on is required along with always-on as the
90                  * regulator framework doesn't enable the regulator
91                  * if boot-on is not there.
92                  */
93                 regulator-always-on;
94                 regulator-boot-on;
95         };
96
97         /* HS USB Host PHY on PORT 1 */
98         hsusb1_phy: hsusb1_phy {
99                 compatible = "usb-nop-xceiv";
100                 reset-supply = <&hsusb1_reset>;
101                 vcc-supply = <&hsusb1_power>;
102         /**
103          * FIXME:
104          * put the right clock phandle here when available
105          *      clocks = <&auxclk3>;
106          *      clock-names = "main_clk";
107          */
108                 clock-frequency = <19200000>;
109         };
110
111         /* regulator for wl12xx on sdio5 */
112         wl12xx_vmmc: wl12xx_vmmc {
113                 pinctrl-names = "default";
114                 pinctrl-0 = <&wl12xx_gpio>;
115                 compatible = "regulator-fixed";
116                 regulator-name = "vwl1271";
117                 regulator-min-microvolt = <1800000>;
118                 regulator-max-microvolt = <1800000>;
119                 gpio = <&gpio2 11 0>;
120                 startup-delay-us = <70000>;
121                 enable-active-high;
122         };
123 };
124
125 &omap4_pmx_wkup {
126         pinctrl-names = "default";
127         pinctrl-0 = <
128                         &twl6030_wkup_pins
129         >;
130
131         twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
132                 pinctrl-single,pins = <
133                         0x14 (PIN_OUTPUT | MUX_MODE2)           /* fref_clk0_out.sys_drm_msecure */
134                 >;
135         };
136 };
137
138 &omap4_pmx_core {
139         pinctrl-names = "default";
140         pinctrl-0 = <
141                         &twl6030_pins
142                         &twl6040_pins
143                         &mcpdm_pins
144                         &mcbsp1_pins
145                         &dss_hdmi_pins
146                         &tpd12s015_pins
147                         &hsusbb1_pins
148         >;
149
150         twl6030_pins: pinmux_twl6030_pins {
151                 pinctrl-single,pins = <
152                         0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)        /* sys_nirq1.sys_nirq1 */
153                 >;
154         };
155
156         twl6040_pins: pinmux_twl6040_pins {
157                 pinctrl-single,pins = <
158                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
159                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
160                 >;
161         };
162
163         mcpdm_pins: pinmux_mcpdm_pins {
164                 pinctrl-single,pins = <
165                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
166                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
167                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
168                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
169                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
170                 >;
171         };
172
173         mcbsp1_pins: pinmux_mcbsp1_pins {
174                 pinctrl-single,pins = <
175                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
176                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
177                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
178                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
179                 >;
180         };
181
182         dss_hdmi_pins: pinmux_dss_hdmi_pins {
183                 pinctrl-single,pins = <
184                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
185                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
186                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
187                 >;
188         };
189
190         tpd12s015_pins: pinmux_tpd12s015_pins {
191                 pinctrl-single,pins = <
192                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
193                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
194                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
195                 >;
196         };
197
198         hsusbb1_pins: pinmux_hsusbb1_pins {
199                 pinctrl-single,pins = <
200                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
201                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
202                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
203                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
204                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
205                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
206                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
207                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
208                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
209                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
210                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
211                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
212                 >;
213         };
214
215         i2c1_pins: pinmux_i2c1_pins {
216                 pinctrl-single,pins = <
217                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
218                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
219                 >;
220         };
221
222         i2c2_pins: pinmux_i2c2_pins {
223                 pinctrl-single,pins = <
224                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
225                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
226                 >;
227         };
228
229         i2c3_pins: pinmux_i2c3_pins {
230                 pinctrl-single,pins = <
231                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
232                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
233                 >;
234         };
235
236         i2c4_pins: pinmux_i2c4_pins {
237                 pinctrl-single,pins = <
238                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
239                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
240                 >;
241         };
242 };
243
244 &omap4_pmx_wkup {
245         led_wkgpio_pins: pinmux_leds_wkpins {
246                 pinctrl-single,pins = <
247                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
248                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
249                 >;
250         };
251
252         /*
253          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
254          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
255          */
256         wl12xx_gpio: pinmux_wl12xx_gpio {
257                 pinctrl-single,pins = <
258                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
259                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
260                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
261                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
262                 >;
263         };
264
265         /* wl12xx GPIO inputs and SDIO pins */
266         wl12xx_pins: pinmux_wl12xx_pins {
267                 pinctrl-single,pins = <
268                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
269                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
270                         0x108 (PIN_OUTPUT | MUX_MODE0)          /* sdmmc5_clk.sdmmc5_clk */
271                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
272                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
273                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
274                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
275                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
276                 >;
277         };
278 };
279
280 &i2c1 {
281         pinctrl-names = "default";
282         pinctrl-0 = <&i2c1_pins>;
283
284         clock-frequency = <400000>;
285
286         twl: twl@48 {
287                 reg = <0x48>;
288                 /* IRQ# = 7 */
289                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
290                 interrupt-parent = <&gic>;
291         };
292
293         twl6040: twl@4b {
294                 compatible = "ti,twl6040";
295                 reg = <0x4b>;
296                 /* IRQ# = 119 */
297                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
298                 interrupt-parent = <&gic>;
299                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
300
301                 vio-supply = <&v1v8>;
302                 v2v1-supply = <&v2v1>;
303                 enable-active-high;
304         };
305 };
306
307 #include "twl6030.dtsi"
308
309 &i2c2 {
310         pinctrl-names = "default";
311         pinctrl-0 = <&i2c2_pins>;
312
313         clock-frequency = <400000>;
314 };
315
316 &i2c3 {
317         pinctrl-names = "default";
318         pinctrl-0 = <&i2c3_pins>;
319
320         clock-frequency = <100000>;
321
322         /*
323          * Display monitor features are burnt in their EEPROM as EDID data.
324          * The EEPROM is connected as I2C slave device.
325          */
326         eeprom@50 {
327                 compatible = "ti,eeprom";
328                 reg = <0x50>;
329         };
330 };
331
332 &i2c4 {
333         pinctrl-names = "default";
334         pinctrl-0 = <&i2c4_pins>;
335
336         clock-frequency = <400000>;
337 };
338
339 &mmc1 {
340         vmmc-supply = <&vmmc>;
341         bus-width = <8>;
342 };
343
344 &mmc2 {
345         status = "disabled";
346 };
347
348 &mmc3 {
349         status = "disabled";
350 };
351
352 &mmc4 {
353         status = "disabled";
354 };
355
356 &mmc5 {
357         pinctrl-names = "default";
358         pinctrl-0 = <&wl12xx_pins>;
359         vmmc-supply = <&wl12xx_vmmc>;
360         non-removable;
361         bus-width = <4>;
362         cap-power-off-card;
363 };
364
365 &emif1 {
366         cs1-used;
367         device-handle = <&elpida_ECB240ABACN>;
368 };
369
370 &emif2 {
371         cs1-used;
372         device-handle = <&elpida_ECB240ABACN>;
373 };
374
375 &mcbsp2 {
376         status = "disabled";
377 };
378
379 &mcbsp3 {
380         status = "disabled";
381 };
382
383 &dmic {
384         status = "disabled";
385 };
386
387 &twl_usb_comparator {
388         usb-supply = <&vusb>;
389 };
390
391 &usb_otg_hs {
392         interface-type = <1>;
393         mode = <3>;
394         power = <50>;
395 };
396
397 &usbhshost {
398         port1-mode = "ehci-phy";
399 };
400
401 &usbhsehci {
402         phys = <&hsusb1_phy>;
403 };