]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - arch/arm/boot/dts/omap4-panda-common.dtsi
Merge tag 'jfs-3.12' of git://github.com/kleikamp/linux-shaggy
[mirror_ubuntu-eoan-kernel.git] / arch / arm / boot / dts / omap4-panda-common.dtsi
CommitLineData
4b79197c
NM
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 */
98ef7957 8#include "elpida_ecb240abacn.dtsi"
4b79197c
NM
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
3818d7ca 19 leds: leds {
4b79197c 20 compatible = "gpio-leds";
3818d7ca
DM
21 pinctrl-names = "default";
22 pinctrl-0 = <
23 &led_wkgpio_pins
24 >;
25
4b79197c
NM
26 heartbeat {
27 label = "pandaboard::status1";
6d624eab 28 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
4b79197c
NM
29 linux,default-trigger = "heartbeat";
30 };
31
32 mmc {
33 label = "pandaboard::status2";
6d624eab 34 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
4b79197c
NM
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 };
5bd2100e
RQ
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;
6f569293
RQ
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;
5bd2100e
RQ
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 };
851320e3
TL
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 };
4b79197c
NM
123};
124
1e68f43b
KH
125&omap4_pmx_wkup {
126 pinctrl-names = "default";
127 pinctrl-0 = <
128 &twl6030_wkup_pins
129 >;
130
131 twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
132 pinctrl-single,pins = <
bcd3cca7 133 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
1e68f43b
KH
134 >;
135 };
136};
137
4b79197c
NM
138&omap4_pmx_core {
139 pinctrl-names = "default";
140 pinctrl-0 = <
1e68f43b 141 &twl6030_pins
4b79197c
NM
142 &twl6040_pins
143 &mcpdm_pins
144 &mcbsp1_pins
145 &dss_hdmi_pins
146 &tpd12s015_pins
5bd2100e 147 &hsusbb1_pins
4b79197c
NM
148 >;
149
1e68f43b
KH
150 twl6030_pins: pinmux_twl6030_pins {
151 pinctrl-single,pins = <
bcd3cca7 152 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
1e68f43b
KH
153 >;
154 };
155
4b79197c
NM
156 twl6040_pins: pinmux_twl6040_pins {
157 pinctrl-single,pins = <
bcd3cca7
FV
158 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
159 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
4b79197c
NM
160 >;
161 };
162
163 mcpdm_pins: pinmux_mcpdm_pins {
164 pinctrl-single,pins = <
bcd3cca7
FV
165 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
166 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
167 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
168 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
169 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
4b79197c
NM
170 >;
171 };
172
173 mcbsp1_pins: pinmux_mcbsp1_pins {
174 pinctrl-single,pins = <
bcd3cca7
FV
175 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
176 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
177 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
178 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
4b79197c
NM
179 >;
180 };
181
182 dss_hdmi_pins: pinmux_dss_hdmi_pins {
183 pinctrl-single,pins = <
bcd3cca7
FV
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 */
4b79197c
NM
187 >;
188 };
189
190 tpd12s015_pins: pinmux_tpd12s015_pins {
191 pinctrl-single,pins = <
bcd3cca7
FV
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 */
4b79197c
NM
195 >;
196 };
197
5bd2100e
RQ
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
4b79197c
NM
215 i2c1_pins: pinmux_i2c1_pins {
216 pinctrl-single,pins = <
bcd3cca7
FV
217 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
218 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
4b79197c
NM
219 >;
220 };
221
222 i2c2_pins: pinmux_i2c2_pins {
223 pinctrl-single,pins = <
bcd3cca7
FV
224 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
225 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
4b79197c
NM
226 >;
227 };
228
229 i2c3_pins: pinmux_i2c3_pins {
230 pinctrl-single,pins = <
bcd3cca7
FV
231 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
232 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
4b79197c
NM
233 >;
234 };
235
236 i2c4_pins: pinmux_i2c4_pins {
237 pinctrl-single,pins = <
bcd3cca7
FV
238 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
239 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
4b79197c
NM
240 >;
241 };
242};
243
3818d7ca
DM
244&omap4_pmx_wkup {
245 led_wkgpio_pins: pinmux_leds_wkpins {
246 pinctrl-single,pins = <
247 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
248 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
249 >;
250 };
851320e3
TL
251
252 /*
253 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
254 * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
255 */
256 wl12xx_gpio: pinmux_wl12xx_gpio {
257 pinctrl-single,pins = <
258 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
259 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
260 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
261 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
262 >;
263 };
264
265 /* wl12xx GPIO inputs and SDIO pins */
266 wl12xx_pins: pinmux_wl12xx_pins {
267 pinctrl-single,pins = <
268 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
269 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
270 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
271 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
272 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
273 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
274 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
275 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
276 >;
277 };
3818d7ca
DM
278};
279
4b79197c
NM
280&i2c1 {
281 pinctrl-names = "default";
282 pinctrl-0 = <&i2c1_pins>;
283
284 clock-frequency = <400000>;
285
286 twl: twl@48 {
287 reg = <0x48>;
8fea7d5a
FV
288 /* IRQ# = 7 */
289 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
4b79197c
NM
290 interrupt-parent = <&gic>;
291 };
292
293 twl6040: twl@4b {
294 compatible = "ti,twl6040";
295 reg = <0x4b>;
8fea7d5a
FV
296 /* IRQ# = 119 */
297 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
4b79197c 298 interrupt-parent = <&gic>;
78eb938e 299 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
4b79197c
NM
300
301 vio-supply = <&v1v8>;
302 v2v1-supply = <&v2v1>;
303 enable-active-high;
304 };
305};
306
98ef7957 307#include "twl6030.dtsi"
4b79197c
NM
308
309&i2c2 {
310 pinctrl-names = "default";
311 pinctrl-0 = <&i2c2_pins>;
312
313 clock-frequency = <400000>;
314};
315
316&i2c3 {
317 pinctrl-names = "default";
318 pinctrl-0 = <&i2c3_pins>;
319
320 clock-frequency = <100000>;
321
322 /*
323 * Display monitor features are burnt in their EEPROM as EDID data.
324 * The EEPROM is connected as I2C slave device.
325 */
326 eeprom@50 {
327 compatible = "ti,eeprom";
328 reg = <0x50>;
329 };
330};
331
332&i2c4 {
333 pinctrl-names = "default";
334 pinctrl-0 = <&i2c4_pins>;
335
336 clock-frequency = <400000>;
337};
338
339&mmc1 {
340 vmmc-supply = <&vmmc>;
341 bus-width = <8>;
342};
343
344&mmc2 {
345 status = "disabled";
346};
347
348&mmc3 {
349 status = "disabled";
350};
351
352&mmc4 {
353 status = "disabled";
354};
355
356&mmc5 {
851320e3
TL
357 pinctrl-names = "default";
358 pinctrl-0 = <&wl12xx_pins>;
359 vmmc-supply = <&wl12xx_vmmc>;
360 non-removable;
4b79197c 361 bus-width = <4>;
851320e3 362 cap-power-off-card;
4b79197c
NM
363};
364
365&emif1 {
366 cs1-used;
367 device-handle = <&elpida_ECB240ABACN>;
368};
369
370&emif2 {
371 cs1-used;
372 device-handle = <&elpida_ECB240ABACN>;
373};
374
375&mcbsp2 {
376 status = "disabled";
377};
378
379&mcbsp3 {
380 status = "disabled";
381};
382
383&dmic {
384 status = "disabled";
385};
386
387&twl_usb_comparator {
388 usb-supply = <&vusb>;
389};
390
391&usb_otg_hs {
392 interface-type = <1>;
393 mode = <3>;
394 power = <50>;
395};
5bd2100e
RQ
396
397&usbhshost {
398 port1-mode = "ehci-phy";
399};
400
401&usbhsehci {
402 phys = <&hsusb1_phy>;
403};