Merge tag 'bcm2835-for-3.15-dt' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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         /**
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                         &dss_dpi_pins
113                         &tfp410_pins
114                         &dss_hdmi_pins
115                         &tpd12s015_pins
116                         &hsusbb1_pins
117         >;
118
119         twl6040_pins: pinmux_twl6040_pins {
120                 pinctrl-single,pins = <
121                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
122                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
123                 >;
124         };
125
126         mcpdm_pins: pinmux_mcpdm_pins {
127                 pinctrl-single,pins = <
128                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
129                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
130                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
131                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
132                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
133                 >;
134         };
135
136         mcbsp1_pins: pinmux_mcbsp1_pins {
137                 pinctrl-single,pins = <
138                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
139                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
140                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
141                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
142                 >;
143         };
144
145         dss_dpi_pins: pinmux_dss_dpi_pins {
146                 pinctrl-single,pins = <
147                         0x122 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data23 */
148                         0x124 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data22 */
149                         0x126 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data21 */
150                         0x128 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data20 */
151                         0x12a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data19 */
152                         0x12c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data18 */
153                         0x12e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data15 */
154                         0x130 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data14 */
155                         0x132 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data13 */
156                         0x134 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data12 */
157                         0x136 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data11 */
158
159                         0x174 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data10 */
160                         0x176 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data9 */
161                         0x178 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data16 */
162                         0x17a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data17 */
163                         0x17c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_hsync */
164                         0x17e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_pclk */
165                         0x180 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_vsync */
166                         0x182 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_de */
167                         0x184 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data8 */
168                         0x186 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data7 */
169                         0x188 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data6 */
170                         0x18a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data5 */
171                         0x18c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data4 */
172                         0x18e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data3 */
173
174                         0x190 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data2 */
175                         0x192 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data1 */
176                         0x194 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data0 */
177                 >;
178         };
179
180         tfp410_pins: pinmux_tfp410_pins {
181                 pinctrl-single,pins = <
182                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
183                 >;
184         };
185
186         dss_hdmi_pins: pinmux_dss_hdmi_pins {
187                 pinctrl-single,pins = <
188                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
189                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
190                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
191                 >;
192         };
193
194         tpd12s015_pins: pinmux_tpd12s015_pins {
195                 pinctrl-single,pins = <
196                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
197                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
198                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
199                 >;
200         };
201
202         hsusbb1_pins: pinmux_hsusbb1_pins {
203                 pinctrl-single,pins = <
204                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
205                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
206                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
207                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
208                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
209                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
210                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
211                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
212                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
213                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
214                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
215                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
216                 >;
217         };
218
219         i2c1_pins: pinmux_i2c1_pins {
220                 pinctrl-single,pins = <
221                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
222                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
223                 >;
224         };
225
226         i2c2_pins: pinmux_i2c2_pins {
227                 pinctrl-single,pins = <
228                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
229                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
230                 >;
231         };
232
233         i2c3_pins: pinmux_i2c3_pins {
234                 pinctrl-single,pins = <
235                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
236                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
237                 >;
238         };
239
240         i2c4_pins: pinmux_i2c4_pins {
241                 pinctrl-single,pins = <
242                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
243                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
244                 >;
245         };
246
247         /*
248          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
249          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
250          */
251         wl12xx_gpio: pinmux_wl12xx_gpio {
252                 pinctrl-single,pins = <
253                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
254                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
255                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
256                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
257                 >;
258         };
259
260         /* wl12xx GPIO inputs and SDIO pins */
261         wl12xx_pins: pinmux_wl12xx_pins {
262                 pinctrl-single,pins = <
263                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
264                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
265                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
266                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
267                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
268                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
269                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
270                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
271                 >;
272         };
273 };
274
275 &omap4_pmx_wkup {
276         led_wkgpio_pins: pinmux_leds_wkpins {
277                 pinctrl-single,pins = <
278                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
279                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
280                 >;
281         };
282 };
283
284 &i2c1 {
285         pinctrl-names = "default";
286         pinctrl-0 = <&i2c1_pins>;
287
288         clock-frequency = <400000>;
289
290         twl: twl@48 {
291                 reg = <0x48>;
292                 /* IRQ# = 7 */
293                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
294                 interrupt-parent = <&gic>;
295         };
296
297         twl6040: twl@4b {
298                 compatible = "ti,twl6040";
299                 reg = <0x4b>;
300
301                 pinctrl-names = "default";
302                 pinctrl-0 = <&twl6040_pins>;
303
304                 /* IRQ# = 119 */
305                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
306                 interrupt-parent = <&gic>;
307                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
308
309                 vio-supply = <&v1v8>;
310                 v2v1-supply = <&v2v1>;
311                 enable-active-high;
312         };
313 };
314
315 #include "twl6030.dtsi"
316 #include "twl6030_omap4.dtsi"
317
318 &i2c2 {
319         pinctrl-names = "default";
320         pinctrl-0 = <&i2c2_pins>;
321
322         clock-frequency = <400000>;
323 };
324
325 &i2c3 {
326         pinctrl-names = "default";
327         pinctrl-0 = <&i2c3_pins>;
328
329         clock-frequency = <100000>;
330
331         /*
332          * Display monitor features are burnt in their EEPROM as EDID data.
333          * The EEPROM is connected as I2C slave device.
334          */
335         eeprom@50 {
336                 compatible = "ti,eeprom";
337                 reg = <0x50>;
338         };
339 };
340
341 &i2c4 {
342         pinctrl-names = "default";
343         pinctrl-0 = <&i2c4_pins>;
344
345         clock-frequency = <400000>;
346 };
347
348 &mmc1 {
349         vmmc-supply = <&vmmc>;
350         bus-width = <8>;
351 };
352
353 &mmc2 {
354         status = "disabled";
355 };
356
357 &mmc3 {
358         status = "disabled";
359 };
360
361 &mmc4 {
362         status = "disabled";
363 };
364
365 &mmc5 {
366         pinctrl-names = "default";
367         pinctrl-0 = <&wl12xx_pins>;
368         vmmc-supply = <&wl12xx_vmmc>;
369         non-removable;
370         bus-width = <4>;
371         cap-power-off-card;
372 };
373
374 &emif1 {
375         cs1-used;
376         device-handle = <&elpida_ECB240ABACN>;
377 };
378
379 &emif2 {
380         cs1-used;
381         device-handle = <&elpida_ECB240ABACN>;
382 };
383
384 &mcbsp1 {
385         pinctrl-names = "default";
386         pinctrl-0 = <&mcbsp1_pins>;
387         status = "okay";
388 };
389
390 &mcpdm {
391         pinctrl-names = "default";
392         pinctrl-0 = <&mcpdm_pins>;
393         status = "okay";
394 };
395
396 &twl_usb_comparator {
397         usb-supply = <&vusb>;
398 };
399
400 &usb_otg_hs {
401         interface-type = <1>;
402         mode = <3>;
403         power = <50>;
404 };
405
406 &usbhshost {
407         port1-mode = "ehci-phy";
408 };
409
410 &usbhsehci {
411         phys = <&hsusb1_phy>;
412 };