blob: 43b7661cfe240a1a20210faeb92004c64eb84c25 [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
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
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300133 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500134 >;
135
Nishanth Menon4b791972013-03-19 12:53:07 -0500136 twl6040_pins: pinmux_twl6040_pins {
137 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200138 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
139 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500140 >;
141 };
142
143 mcpdm_pins: pinmux_mcpdm_pins {
144 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200145 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500150 >;
151 };
152
153 mcbsp1_pins: pinmux_mcbsp1_pins {
154 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200155 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500159 >;
160 };
161
162 dss_hdmi_pins: pinmux_dss_hdmi_pins {
163 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200164 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500167 >;
168 };
169
170 tpd12s015_pins: pinmux_tpd12s015_pins {
171 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200172 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 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500175 >;
176 };
177
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300178 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
Nishanth Menon4b791972013-03-19 12:53:07 -0500195 i2c1_pins: pinmux_i2c1_pins {
196 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200197 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
198 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500199 >;
200 };
201
202 i2c2_pins: pinmux_i2c2_pins {
203 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200204 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
205 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500206 >;
207 };
208
209 i2c3_pins: pinmux_i2c3_pins {
210 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200211 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
212 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500213 >;
214 };
215
216 i2c4_pins: pinmux_i2c4_pins {
217 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200218 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
219 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500220 >;
221 };
222};
223
Dan Murphy3818d7c2013-05-31 10:44:55 -0500224&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 };
Tony Lindgren851320e2013-09-13 12:09:53 -0700231
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 };
Dan Murphy3818d7c2013-05-31 10:44:55 -0500258};
259
Nishanth Menon4b791972013-03-19 12:53:07 -0500260&i2c1 {
261 pinctrl-names = "default";
262 pinctrl-0 = <&i2c1_pins>;
263
264 clock-frequency = <400000>;
265
266 twl: twl@48 {
267 reg = <0x48>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200268 /* IRQ# = 7 */
269 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500270 interrupt-parent = <&gic>;
271 };
272
273 twl6040: twl@4b {
274 compatible = "ti,twl6040";
275 reg = <0x4b>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200276 /* IRQ# = 119 */
277 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500278 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500279 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500280
281 vio-supply = <&v1v8>;
282 v2v1-supply = <&v2v1>;
283 enable-active-high;
284 };
285};
286
Florian Vaussard98ef79572013-05-31 14:32:55 +0200287#include "twl6030.dtsi"
Ruslan Bilovol06a9ea52013-08-14 11:35:47 +0300288#include "twl6030_omap4.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500289
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 {
Tony Lindgren851320e2013-09-13 12:09:53 -0700338 pinctrl-names = "default";
339 pinctrl-0 = <&wl12xx_pins>;
340 vmmc-supply = <&wl12xx_vmmc>;
341 non-removable;
Nishanth Menon4b791972013-03-19 12:53:07 -0500342 bus-width = <4>;
Tony Lindgren851320e2013-09-13 12:09:53 -0700343 cap-power-off-card;
Nishanth Menon4b791972013-03-19 12:53:07 -0500344};
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};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300377
378&usbhshost {
379 port1-mode = "ehci-phy";
380};
381
382&usbhsehci {
383 phys = <&hsusb1_phy>;
384};