]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | |
5bd2100e | 133 | &hsusbb1_pins |
4b79197c NM |
134 | >; |
135 | ||
136 | twl6040_pins: pinmux_twl6040_pins { | |
137 | pinctrl-single,pins = < | |
bcd3cca7 FV |
138 | 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ |
139 | 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */ | |
4b79197c NM |
140 | >; |
141 | }; | |
142 | ||
143 | mcpdm_pins: pinmux_mcpdm_pins { | |
144 | pinctrl-single,pins = < | |
bcd3cca7 FV |
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 */ | |
4b79197c NM |
150 | >; |
151 | }; | |
152 | ||
153 | mcbsp1_pins: pinmux_mcbsp1_pins { | |
154 | pinctrl-single,pins = < | |
bcd3cca7 FV |
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 */ | |
4b79197c NM |
159 | >; |
160 | }; | |
161 | ||
162 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | |
163 | pinctrl-single,pins = < | |
bcd3cca7 FV |
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 */ | |
4b79197c NM |
167 | >; |
168 | }; | |
169 | ||
170 | tpd12s015_pins: pinmux_tpd12s015_pins { | |
171 | pinctrl-single,pins = < | |
bcd3cca7 FV |
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 */ | |
4b79197c NM |
175 | >; |
176 | }; | |
177 | ||
5bd2100e RQ |
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 | ||
4b79197c NM |
195 | i2c1_pins: pinmux_i2c1_pins { |
196 | pinctrl-single,pins = < | |
bcd3cca7 FV |
197 | 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ |
198 | 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ | |
4b79197c NM |
199 | >; |
200 | }; | |
201 | ||
202 | i2c2_pins: pinmux_i2c2_pins { | |
203 | pinctrl-single,pins = < | |
bcd3cca7 FV |
204 | 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ |
205 | 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ | |
4b79197c NM |
206 | >; |
207 | }; | |
208 | ||
209 | i2c3_pins: pinmux_i2c3_pins { | |
210 | pinctrl-single,pins = < | |
bcd3cca7 FV |
211 | 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ |
212 | 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ | |
4b79197c NM |
213 | >; |
214 | }; | |
215 | ||
216 | i2c4_pins: pinmux_i2c4_pins { | |
217 | pinctrl-single,pins = < | |
bcd3cca7 FV |
218 | 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */ |
219 | 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ | |
4b79197c NM |
220 | >; |
221 | }; | |
222 | }; | |
223 | ||
3818d7ca DM |
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 | }; | |
851320e3 TL |
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 | }; | |
3818d7ca DM |
258 | }; |
259 | ||
4b79197c NM |
260 | &i2c1 { |
261 | pinctrl-names = "default"; | |
262 | pinctrl-0 = <&i2c1_pins>; | |
263 | ||
264 | clock-frequency = <400000>; | |
265 | ||
266 | twl: twl@48 { | |
267 | reg = <0x48>; | |
8fea7d5a FV |
268 | /* IRQ# = 7 */ |
269 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */ | |
4b79197c NM |
270 | interrupt-parent = <&gic>; |
271 | }; | |
272 | ||
273 | twl6040: twl@4b { | |
274 | compatible = "ti,twl6040"; | |
275 | reg = <0x4b>; | |
8fea7d5a FV |
276 | /* IRQ# = 119 */ |
277 | interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */ | |
4b79197c | 278 | interrupt-parent = <&gic>; |
78eb938e | 279 | ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */ |
4b79197c NM |
280 | |
281 | vio-supply = <&v1v8>; | |
282 | v2v1-supply = <&v2v1>; | |
283 | enable-active-high; | |
284 | }; | |
285 | }; | |
286 | ||
98ef7957 | 287 | #include "twl6030.dtsi" |
06a9ea5d | 288 | #include "twl6030_omap4.dtsi" |
4b79197c NM |
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 { | |
851320e3 TL |
338 | pinctrl-names = "default"; |
339 | pinctrl-0 = <&wl12xx_pins>; | |
340 | vmmc-supply = <&wl12xx_vmmc>; | |
341 | non-removable; | |
4b79197c | 342 | bus-width = <4>; |
851320e3 | 343 | cap-power-off-card; |
4b79197c NM |
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 | }; | |
5bd2100e RQ |
377 | |
378 | &usbhshost { | |
379 | port1-mode = "ehci-phy"; | |
380 | }; | |
381 | ||
382 | &usbhsehci { | |
383 | phys = <&hsusb1_phy>; | |
384 | }; |