blob: 814ab67c8c299b0b818f669c917d51ebcb8a94c0 [file] [log] [blame]
Nishanth Menon4b791972013-03-19 12:53:07 -05001/*
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 */
Florian Vaussard98ef79572013-05-31 14:32:55 +02008#include "elpida_ecb240abacn.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -05009
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
Dan Murphy3818d7c2013-05-31 10:44:55 -050019 leds: leds {
Nishanth Menon4b791972013-03-19 12:53:07 -050020 compatible = "gpio-leds";
Dan Murphy3818d7c2013-05-31 10:44:55 -050021 pinctrl-names = "default";
22 pinctrl-0 = <
23 &led_wkgpio_pins
24 >;
25
Nishanth Menon4b791972013-03-19 12:53:07 -050026 heartbeat {
27 label = "pandaboard::status1";
Florian Vaussard6d624ea2013-05-31 14:32:56 +020028 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
Nishanth Menon4b791972013-03-19 12:53:07 -050029 linux,default-trigger = "heartbeat";
30 };
31
32 mmc {
33 label = "pandaboard::status2";
Florian Vaussard6d624ea2013-05-31 14:32:56 +020034 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
Nishanth Menon4b791972013-03-19 12:53:07 -050035 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 };
Roger Quadros5bd2100e2013-06-18 19:04:44 +030062
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;
Roger Quadros6f569292013-06-18 19:04:45 +030088 /*
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;
Roger Quadros5bd2100e2013-06-18 19:04:44 +030095 };
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 };
Tony Lindgren851320e2013-09-13 12:09:53 -0700110
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 };
Nishanth Menon4b791972013-03-19 12:53:07 -0500123};
124
Kevin Hilman1e68f432013-05-24 17:24:21 -0700125&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 = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200133 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700134 >;
135 };
136};
137
Nishanth Menon4b791972013-03-19 12:53:07 -0500138&omap4_pmx_core {
139 pinctrl-names = "default";
140 pinctrl-0 = <
Kevin Hilman1e68f432013-05-24 17:24:21 -0700141 &twl6030_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500142 &twl6040_pins
143 &mcpdm_pins
144 &mcbsp1_pins
145 &dss_hdmi_pins
146 &tpd12s015_pins
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300147 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500148 >;
149
Kevin Hilman1e68f432013-05-24 17:24:21 -0700150 twl6030_pins: pinmux_twl6030_pins {
151 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200152 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700153 >;
154 };
155
Nishanth Menon4b791972013-03-19 12:53:07 -0500156 twl6040_pins: pinmux_twl6040_pins {
157 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200158 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
159 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500160 >;
161 };
162
163 mcpdm_pins: pinmux_mcpdm_pins {
164 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200165 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500170 >;
171 };
172
173 mcbsp1_pins: pinmux_mcbsp1_pins {
174 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200175 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500179 >;
180 };
181
182 dss_hdmi_pins: pinmux_dss_hdmi_pins {
183 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200184 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500187 >;
188 };
189
190 tpd12s015_pins: pinmux_tpd12s015_pins {
191 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200192 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500195 >;
196 };
197
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300198 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
Nishanth Menon4b791972013-03-19 12:53:07 -0500215 i2c1_pins: pinmux_i2c1_pins {
216 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200217 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
218 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500219 >;
220 };
221
222 i2c2_pins: pinmux_i2c2_pins {
223 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200224 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
225 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500226 >;
227 };
228
229 i2c3_pins: pinmux_i2c3_pins {
230 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200231 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
232 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500233 >;
234 };
235
236 i2c4_pins: pinmux_i2c4_pins {
237 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200238 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
239 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500240 >;
241 };
242};
243
Dan Murphy3818d7c2013-05-31 10:44:55 -0500244&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 };
Tony Lindgren851320e2013-09-13 12:09:53 -0700251
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 };
Dan Murphy3818d7c2013-05-31 10:44:55 -0500278};
279
Nishanth Menon4b791972013-03-19 12:53:07 -0500280&i2c1 {
281 pinctrl-names = "default";
282 pinctrl-0 = <&i2c1_pins>;
283
284 clock-frequency = <400000>;
285
286 twl: twl@48 {
287 reg = <0x48>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200288 /* IRQ# = 7 */
289 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500290 interrupt-parent = <&gic>;
291 };
292
293 twl6040: twl@4b {
294 compatible = "ti,twl6040";
295 reg = <0x4b>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200296 /* IRQ# = 119 */
297 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500298 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500299 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500300
301 vio-supply = <&v1v8>;
302 v2v1-supply = <&v2v1>;
303 enable-active-high;
304 };
305};
306
Florian Vaussard98ef79572013-05-31 14:32:55 +0200307#include "twl6030.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500308
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 {
Tony Lindgren851320e2013-09-13 12:09:53 -0700357 pinctrl-names = "default";
358 pinctrl-0 = <&wl12xx_pins>;
359 vmmc-supply = <&wl12xx_vmmc>;
360 non-removable;
Nishanth Menon4b791972013-03-19 12:53:07 -0500361 bus-width = <4>;
Tony Lindgren851320e2013-09-13 12:09:53 -0700362 cap-power-off-card;
Nishanth Menon4b791972013-03-19 12:53:07 -0500363};
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};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300396
397&usbhshost {
398 port1-mode = "ehci-phy";
399};
400
401&usbhsehci {
402 phys = <&hsusb1_phy>;
403};