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