Merge tag 'regmap-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[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 /*
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
112 &omap4_pmx_wkup {
113 pinctrl-names = "default";
114 pinctrl-0 = <
115 &twl6030_wkup_pins
116 >;
117
118 twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
119 pinctrl-single,pins = <
120 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
121 >;
122 };
123 };
124
125 &omap4_pmx_core {
126 pinctrl-names = "default";
127 pinctrl-0 = <
128 &twl6030_pins
129 &twl6040_pins
130 &mcpdm_pins
131 &mcbsp1_pins
132 &dss_hdmi_pins
133 &tpd12s015_pins
134 &hsusbb1_pins
135 >;
136
137 twl6030_pins: pinmux_twl6030_pins {
138 pinctrl-single,pins = <
139 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
140 >;
141 };
142
143 twl6040_pins: pinmux_twl6040_pins {
144 pinctrl-single,pins = <
145 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
146 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
147 >;
148 };
149
150 mcpdm_pins: pinmux_mcpdm_pins {
151 pinctrl-single,pins = <
152 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
153 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
154 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
155 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
156 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
157 >;
158 };
159
160 mcbsp1_pins: pinmux_mcbsp1_pins {
161 pinctrl-single,pins = <
162 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
163 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
164 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
165 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
166 >;
167 };
168
169 dss_hdmi_pins: pinmux_dss_hdmi_pins {
170 pinctrl-single,pins = <
171 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
172 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
173 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
174 >;
175 };
176
177 tpd12s015_pins: pinmux_tpd12s015_pins {
178 pinctrl-single,pins = <
179 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
180 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
181 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
182 >;
183 };
184
185 hsusbb1_pins: pinmux_hsusbb1_pins {
186 pinctrl-single,pins = <
187 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
188 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
189 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
190 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
191 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
192 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
193 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
194 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
195 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
196 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
197 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
198 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
199 >;
200 };
201
202 i2c1_pins: pinmux_i2c1_pins {
203 pinctrl-single,pins = <
204 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
205 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
206 >;
207 };
208
209 i2c2_pins: pinmux_i2c2_pins {
210 pinctrl-single,pins = <
211 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
212 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
213 >;
214 };
215
216 i2c3_pins: pinmux_i2c3_pins {
217 pinctrl-single,pins = <
218 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
219 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
220 >;
221 };
222
223 i2c4_pins: pinmux_i2c4_pins {
224 pinctrl-single,pins = <
225 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
226 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
227 >;
228 };
229 };
230
231 &omap4_pmx_wkup {
232 led_wkgpio_pins: pinmux_leds_wkpins {
233 pinctrl-single,pins = <
234 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
235 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
236 >;
237 };
238 };
239
240 &i2c1 {
241 pinctrl-names = "default";
242 pinctrl-0 = <&i2c1_pins>;
243
244 clock-frequency = <400000>;
245
246 twl: twl@48 {
247 reg = <0x48>;
248 /* IRQ# = 7 */
249 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
250 interrupt-parent = <&gic>;
251 };
252
253 twl6040: twl@4b {
254 compatible = "ti,twl6040";
255 reg = <0x4b>;
256 /* IRQ# = 119 */
257 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
258 interrupt-parent = <&gic>;
259 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
260
261 vio-supply = <&v1v8>;
262 v2v1-supply = <&v2v1>;
263 enable-active-high;
264 };
265 };
266
267 #include "twl6030.dtsi"
268
269 &i2c2 {
270 pinctrl-names = "default";
271 pinctrl-0 = <&i2c2_pins>;
272
273 clock-frequency = <400000>;
274 };
275
276 &i2c3 {
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2c3_pins>;
279
280 clock-frequency = <100000>;
281
282 /*
283 * Display monitor features are burnt in their EEPROM as EDID data.
284 * The EEPROM is connected as I2C slave device.
285 */
286 eeprom@50 {
287 compatible = "ti,eeprom";
288 reg = <0x50>;
289 };
290 };
291
292 &i2c4 {
293 pinctrl-names = "default";
294 pinctrl-0 = <&i2c4_pins>;
295
296 clock-frequency = <400000>;
297 };
298
299 &mmc1 {
300 vmmc-supply = <&vmmc>;
301 bus-width = <8>;
302 };
303
304 &mmc2 {
305 status = "disabled";
306 };
307
308 &mmc3 {
309 status = "disabled";
310 };
311
312 &mmc4 {
313 status = "disabled";
314 };
315
316 &mmc5 {
317 ti,non-removable;
318 bus-width = <4>;
319 };
320
321 &emif1 {
322 cs1-used;
323 device-handle = <&elpida_ECB240ABACN>;
324 };
325
326 &emif2 {
327 cs1-used;
328 device-handle = <&elpida_ECB240ABACN>;
329 };
330
331 &mcbsp2 {
332 status = "disabled";
333 };
334
335 &mcbsp3 {
336 status = "disabled";
337 };
338
339 &dmic {
340 status = "disabled";
341 };
342
343 &twl_usb_comparator {
344 usb-supply = <&vusb>;
345 };
346
347 &usb_otg_hs {
348 interface-type = <1>;
349 mode = <3>;
350 power = <50>;
351 };
352
353 &usbhshost {
354 port1-mode = "ehci-phy";
355 };
356
357 &usbhsehci {
358 phys = <&hsusb1_phy>;
359 };
This page took 0.055704 seconds and 5 git commands to generate.