Merge tag 'for-linus-3.11-merge-window-part-2' of git://git.kernel.org/pub/scm/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         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
112 &omap4_pmx_wkup {
113         pinctrl-names = "default";
114         pinctrl-0 = <
115                         &twl6030_wkup_pins
116         >;
117
118         twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
119                 pinctrl-single,pins = <
120                         0x14 (PIN_OUTPUT | MUX_MODE2)           /* fref_clk0_out.sys_drm_msecure */
121                 >;
122         };
123 };
124
125 &omap4_pmx_core {
126         pinctrl-names = "default";
127         pinctrl-0 = <
128                         &twl6030_pins
129                         &twl6040_pins
130                         &mcpdm_pins
131                         &mcbsp1_pins
132                         &dss_hdmi_pins
133                         &tpd12s015_pins
134                         &hsusbb1_pins
135         >;
136
137         twl6030_pins: pinmux_twl6030_pins {
138                 pinctrl-single,pins = <
139                         0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)        /* sys_nirq1.sys_nirq1 */
140                 >;
141         };
142
143         twl6040_pins: pinmux_twl6040_pins {
144                 pinctrl-single,pins = <
145                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
146                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
147                 >;
148         };
149
150         mcpdm_pins: pinmux_mcpdm_pins {
151                 pinctrl-single,pins = <
152                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
153                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
154                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
155                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
156                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
157                 >;
158         };
159
160         mcbsp1_pins: pinmux_mcbsp1_pins {
161                 pinctrl-single,pins = <
162                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
163                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
164                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
165                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
166                 >;
167         };
168
169         dss_hdmi_pins: pinmux_dss_hdmi_pins {
170                 pinctrl-single,pins = <
171                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
172                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
173                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
174                 >;
175         };
176
177         tpd12s015_pins: pinmux_tpd12s015_pins {
178                 pinctrl-single,pins = <
179                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
180                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
181                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
182                 >;
183         };
184
185         hsusbb1_pins: pinmux_hsusbb1_pins {
186                 pinctrl-single,pins = <
187                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
188                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
189                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
190                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
191                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
192                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
193                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
194                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
195                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
196                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
197                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
198                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
199                 >;
200         };
201
202         i2c1_pins: pinmux_i2c1_pins {
203                 pinctrl-single,pins = <
204                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
205                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
206                 >;
207         };
208
209         i2c2_pins: pinmux_i2c2_pins {
210                 pinctrl-single,pins = <
211                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
212                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
213                 >;
214         };
215
216         i2c3_pins: pinmux_i2c3_pins {
217                 pinctrl-single,pins = <
218                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
219                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
220                 >;
221         };
222
223         i2c4_pins: pinmux_i2c4_pins {
224                 pinctrl-single,pins = <
225                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
226                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
227                 >;
228         };
229 };
230
231 &omap4_pmx_wkup {
232         led_wkgpio_pins: pinmux_leds_wkpins {
233                 pinctrl-single,pins = <
234                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
235                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
236                 >;
237         };
238 };
239
240 &i2c1 {
241         pinctrl-names = "default";
242         pinctrl-0 = <&i2c1_pins>;
243
244         clock-frequency = <400000>;
245
246         twl: twl@48 {
247                 reg = <0x48>;
248                 /* IRQ# = 7 */
249                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
250                 interrupt-parent = <&gic>;
251         };
252
253         twl6040: twl@4b {
254                 compatible = "ti,twl6040";
255                 reg = <0x4b>;
256                 /* IRQ# = 119 */
257                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
258                 interrupt-parent = <&gic>;
259                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
260
261                 vio-supply = <&v1v8>;
262                 v2v1-supply = <&v2v1>;
263                 enable-active-high;
264         };
265 };
266
267 #include "twl6030.dtsi"
268
269 &i2c2 {
270         pinctrl-names = "default";
271         pinctrl-0 = <&i2c2_pins>;
272
273         clock-frequency = <400000>;
274 };
275
276 &i2c3 {
277         pinctrl-names = "default";
278         pinctrl-0 = <&i2c3_pins>;
279
280         clock-frequency = <100000>;
281
282         /*
283          * Display monitor features are burnt in their EEPROM as EDID data.
284          * The EEPROM is connected as I2C slave device.
285          */
286         eeprom@50 {
287                 compatible = "ti,eeprom";
288                 reg = <0x50>;
289         };
290 };
291
292 &i2c4 {
293         pinctrl-names = "default";
294         pinctrl-0 = <&i2c4_pins>;
295
296         clock-frequency = <400000>;
297 };
298
299 &mmc1 {
300         vmmc-supply = <&vmmc>;
301         bus-width = <8>;
302 };
303
304 &mmc2 {
305         status = "disabled";
306 };
307
308 &mmc3 {
309         status = "disabled";
310 };
311
312 &mmc4 {
313         status = "disabled";
314 };
315
316 &mmc5 {
317         ti,non-removable;
318         bus-width = <4>;
319 };
320
321 &emif1 {
322         cs1-used;
323         device-handle = <&elpida_ECB240ABACN>;
324 };
325
326 &emif2 {
327         cs1-used;
328         device-handle = <&elpida_ECB240ABACN>;
329 };
330
331 &mcbsp2 {
332         status = "disabled";
333 };
334
335 &mcbsp3 {
336         status = "disabled";
337 };
338
339 &dmic {
340         status = "disabled";
341 };
342
343 &twl_usb_comparator {
344         usb-supply = <&vusb>;
345 };
346
347 &usb_otg_hs {
348         interface-type = <1>;
349         mode = <3>;
350         power = <50>;
351 };
352
353 &usbhshost {
354         port1-mode = "ehci-phy";
355 };
356
357 &usbhsehci {
358         phys = <&hsusb1_phy>;
359 };