Merge tag 'mvebu-dt-3.15-5' of git://git.infradead.org/linux-mvebu into next/dt
[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         /* 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                 clocks = <&auxclk3_ck>;
87                 clock-names = "main_clk";
88                 clock-frequency = <19200000>;
89         };
90
91         /* regulator for wl12xx on sdio5 */
92         wl12xx_vmmc: wl12xx_vmmc {
93                 pinctrl-names = "default";
94                 pinctrl-0 = <&wl12xx_gpio>;
95                 compatible = "regulator-fixed";
96                 regulator-name = "vwl1271";
97                 regulator-min-microvolt = <1800000>;
98                 regulator-max-microvolt = <1800000>;
99                 gpio = <&gpio2 11 0>;
100                 startup-delay-us = <70000>;
101                 enable-active-high;
102         };
103 };
104
105 &omap4_pmx_core {
106         pinctrl-names = "default";
107         pinctrl-0 = <
108                         &dss_dpi_pins
109                         &tfp410_pins
110                         &dss_hdmi_pins
111                         &tpd12s015_pins
112                         &hsusbb1_pins
113         >;
114
115         twl6040_pins: pinmux_twl6040_pins {
116                 pinctrl-single,pins = <
117                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
118                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
119                 >;
120         };
121
122         mcpdm_pins: pinmux_mcpdm_pins {
123                 pinctrl-single,pins = <
124                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
125                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
126                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
127                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
128                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
129                 >;
130         };
131
132         mcbsp1_pins: pinmux_mcbsp1_pins {
133                 pinctrl-single,pins = <
134                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
135                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
136                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
137                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
138                 >;
139         };
140
141         dss_dpi_pins: pinmux_dss_dpi_pins {
142                 pinctrl-single,pins = <
143                         0x122 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data23 */
144                         0x124 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data22 */
145                         0x126 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data21 */
146                         0x128 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data20 */
147                         0x12a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data19 */
148                         0x12c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data18 */
149                         0x12e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data15 */
150                         0x130 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data14 */
151                         0x132 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data13 */
152                         0x134 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data12 */
153                         0x136 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data11 */
154
155                         0x174 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data10 */
156                         0x176 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data9 */
157                         0x178 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data16 */
158                         0x17a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data17 */
159                         0x17c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_hsync */
160                         0x17e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_pclk */
161                         0x180 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_vsync */
162                         0x182 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_de */
163                         0x184 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data8 */
164                         0x186 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data7 */
165                         0x188 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data6 */
166                         0x18a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data5 */
167                         0x18c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data4 */
168                         0x18e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data3 */
169
170                         0x190 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data2 */
171                         0x192 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data1 */
172                         0x194 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data0 */
173                 >;
174         };
175
176         tfp410_pins: pinmux_tfp410_pins {
177                 pinctrl-single,pins = <
178                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
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          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
245          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
246          */
247         wl12xx_gpio: pinmux_wl12xx_gpio {
248                 pinctrl-single,pins = <
249                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
250                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
251                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
252                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
253                 >;
254         };
255
256         /* wl12xx GPIO inputs and SDIO pins */
257         wl12xx_pins: pinmux_wl12xx_pins {
258                 pinctrl-single,pins = <
259                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
260                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
261                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
262                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
263                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
264                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
265                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
266                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
267                 >;
268         };
269 };
270
271 &omap4_pmx_wkup {
272         led_wkgpio_pins: pinmux_leds_wkpins {
273                 pinctrl-single,pins = <
274                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
275                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
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
297                 pinctrl-names = "default";
298                 pinctrl-0 = <&twl6040_pins>;
299
300                 /* IRQ# = 119 */
301                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
302                 interrupt-parent = <&gic>;
303                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
304
305                 vio-supply = <&v1v8>;
306                 v2v1-supply = <&v2v1>;
307                 enable-active-high;
308         };
309 };
310
311 #include "twl6030.dtsi"
312 #include "twl6030_omap4.dtsi"
313
314 &i2c2 {
315         pinctrl-names = "default";
316         pinctrl-0 = <&i2c2_pins>;
317
318         clock-frequency = <400000>;
319 };
320
321 &i2c3 {
322         pinctrl-names = "default";
323         pinctrl-0 = <&i2c3_pins>;
324
325         clock-frequency = <100000>;
326
327         /*
328          * Display monitor features are burnt in their EEPROM as EDID data.
329          * The EEPROM is connected as I2C slave device.
330          */
331         eeprom@50 {
332                 compatible = "ti,eeprom";
333                 reg = <0x50>;
334         };
335 };
336
337 &i2c4 {
338         pinctrl-names = "default";
339         pinctrl-0 = <&i2c4_pins>;
340
341         clock-frequency = <400000>;
342 };
343
344 &mmc1 {
345         vmmc-supply = <&vmmc>;
346         bus-width = <8>;
347 };
348
349 &mmc2 {
350         status = "disabled";
351 };
352
353 &mmc3 {
354         status = "disabled";
355 };
356
357 &mmc4 {
358         status = "disabled";
359 };
360
361 &mmc5 {
362         pinctrl-names = "default";
363         pinctrl-0 = <&wl12xx_pins>;
364         vmmc-supply = <&wl12xx_vmmc>;
365         non-removable;
366         bus-width = <4>;
367         cap-power-off-card;
368 };
369
370 &emif1 {
371         cs1-used;
372         device-handle = <&elpida_ECB240ABACN>;
373 };
374
375 &emif2 {
376         cs1-used;
377         device-handle = <&elpida_ECB240ABACN>;
378 };
379
380 &mcbsp1 {
381         pinctrl-names = "default";
382         pinctrl-0 = <&mcbsp1_pins>;
383         status = "okay";
384 };
385
386 &mcpdm {
387         pinctrl-names = "default";
388         pinctrl-0 = <&mcpdm_pins>;
389         status = "okay";
390 };
391
392 &twl_usb_comparator {
393         usb-supply = <&vusb>;
394 };
395
396 &usb_otg_hs {
397         interface-type = <1>;
398         mode = <3>;
399         power = <50>;
400 };
401
402 &usbhshost {
403         port1-mode = "ehci-phy";
404 };
405
406 &usbhsehci {
407         phys = <&hsusb1_phy>;
408 };