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