blob: 298e85020e1b20bec89b8ecc52b38886e4656467 [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
Roger Quadros5bd2100e2013-06-18 19:04:44 +030063 /* HS USB Port 1 Power */
64 hsusb1_power: hsusb1_power_reg {
65 compatible = "regulator-fixed";
66 regulator-name = "hsusb1_vbus";
67 regulator-min-microvolt = <3300000>;
68 regulator-max-microvolt = <3300000>;
69 gpio = <&gpio1 1 0>; /* gpio_1 */
70 startup-delay-us = <70000>;
71 enable-active-high;
Roger Quadros6f569292013-06-18 19:04:45 +030072 /*
73 * boot-on is required along with always-on as the
74 * regulator framework doesn't enable the regulator
75 * if boot-on is not there.
76 */
77 regulator-always-on;
78 regulator-boot-on;
Roger Quadros5bd2100e2013-06-18 19:04:44 +030079 };
80
81 /* HS USB Host PHY on PORT 1 */
82 hsusb1_phy: hsusb1_phy {
83 compatible = "usb-nop-xceiv";
Roger Quadros4cbdc862013-09-24 11:53:52 +030084 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; /* gpio_62 */
Roger Quadros5bd2100e2013-06-18 19:04:44 +030085 vcc-supply = <&hsusb1_power>;
86 /**
87 * FIXME:
88 * put the right clock phandle here when available
89 * clocks = <&auxclk3>;
90 * clock-names = "main_clk";
91 */
92 clock-frequency = <19200000>;
93 };
Tony Lindgren851320e2013-09-13 12:09:53 -070094
95 /* regulator for wl12xx on sdio5 */
96 wl12xx_vmmc: wl12xx_vmmc {
97 pinctrl-names = "default";
98 pinctrl-0 = <&wl12xx_gpio>;
99 compatible = "regulator-fixed";
100 regulator-name = "vwl1271";
101 regulator-min-microvolt = <1800000>;
102 regulator-max-microvolt = <1800000>;
103 gpio = <&gpio2 11 0>;
104 startup-delay-us = <70000>;
105 enable-active-high;
106 };
Nishanth Menon4b791972013-03-19 12:53:07 -0500107};
108
109&omap4_pmx_core {
110 pinctrl-names = "default";
111 pinctrl-0 = <
112 &twl6040_pins
113 &mcpdm_pins
114 &mcbsp1_pins
Tomi Valkeinen0352bd12013-10-25 13:07:36 +0300115 &dss_dpi_pins
116 &tfp410_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500117 &dss_hdmi_pins
118 &tpd12s015_pins
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300119 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500120 >;
121
Nishanth Menon4b791972013-03-19 12:53:07 -0500122 twl6040_pins: pinmux_twl6040_pins {
123 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200124 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
125 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500126 >;
127 };
128
129 mcpdm_pins: pinmux_mcpdm_pins {
130 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200131 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
132 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
133 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
134 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
135 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
Nishanth Menon4b791972013-03-19 12:53:07 -0500136 >;
137 };
138
139 mcbsp1_pins: pinmux_mcbsp1_pins {
140 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200141 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
142 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
143 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
144 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
Nishanth Menon4b791972013-03-19 12:53:07 -0500145 >;
146 };
147
Tomi Valkeinen0352bd12013-10-25 13:07:36 +0300148 dss_dpi_pins: pinmux_dss_dpi_pins {
149 pinctrl-single,pins = <
150 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */
151 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */
152 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */
153 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */
154 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */
155 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */
156 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */
157 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */
158 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */
159 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */
160 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */
161
162 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */
163 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */
164 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */
165 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */
166 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */
167 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */
168 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */
169 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */
170 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */
171 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */
172 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */
173 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */
174 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */
175 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */
176
177 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */
178 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */
179 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */
180 >;
181 };
182
183 tfp410_pins: pinmux_tfp410_pins {
184 pinctrl-single,pins = <
185 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */
186 >;
187 };
188
Nishanth Menon4b791972013-03-19 12:53:07 -0500189 dss_hdmi_pins: pinmux_dss_hdmi_pins {
190 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200191 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
192 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
193 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500194 >;
195 };
196
197 tpd12s015_pins: pinmux_tpd12s015_pins {
198 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200199 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
200 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
201 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500202 >;
203 };
204
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300205 hsusbb1_pins: pinmux_hsusbb1_pins {
206 pinctrl-single,pins = <
207 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
208 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
209 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
210 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
211 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
212 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
213 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
214 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
215 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
216 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
217 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
218 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
219 >;
220 };
221
Nishanth Menon4b791972013-03-19 12:53:07 -0500222 i2c1_pins: pinmux_i2c1_pins {
223 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200224 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
225 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500226 >;
227 };
228
229 i2c2_pins: pinmux_i2c2_pins {
230 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200231 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
232 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500233 >;
234 };
235
236 i2c3_pins: pinmux_i2c3_pins {
237 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200238 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
239 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500240 >;
241 };
242
243 i2c4_pins: pinmux_i2c4_pins {
244 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200245 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
246 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500247 >;
248 };
249};
250
Dan Murphy3818d7c2013-05-31 10:44:55 -0500251&omap4_pmx_wkup {
252 led_wkgpio_pins: pinmux_leds_wkpins {
253 pinctrl-single,pins = <
254 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
255 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
256 >;
257 };
Tony Lindgren851320e2013-09-13 12:09:53 -0700258
259 /*
260 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
261 * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
262 */
263 wl12xx_gpio: pinmux_wl12xx_gpio {
264 pinctrl-single,pins = <
265 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
266 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
267 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
268 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
269 >;
270 };
271
272 /* wl12xx GPIO inputs and SDIO pins */
273 wl12xx_pins: pinmux_wl12xx_pins {
274 pinctrl-single,pins = <
275 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
276 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
277 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
278 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
279 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
280 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
281 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
282 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
283 >;
284 };
Dan Murphy3818d7c2013-05-31 10:44:55 -0500285};
286
Nishanth Menon4b791972013-03-19 12:53:07 -0500287&i2c1 {
288 pinctrl-names = "default";
289 pinctrl-0 = <&i2c1_pins>;
290
291 clock-frequency = <400000>;
292
293 twl: twl@48 {
294 reg = <0x48>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200295 /* IRQ# = 7 */
296 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500297 interrupt-parent = <&gic>;
298 };
299
300 twl6040: twl@4b {
301 compatible = "ti,twl6040";
302 reg = <0x4b>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200303 /* IRQ# = 119 */
304 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500305 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500306 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500307
308 vio-supply = <&v1v8>;
309 v2v1-supply = <&v2v1>;
310 enable-active-high;
311 };
312};
313
Florian Vaussard98ef79572013-05-31 14:32:55 +0200314#include "twl6030.dtsi"
Ruslan Bilovol06a9ea52013-08-14 11:35:47 +0300315#include "twl6030_omap4.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500316
317&i2c2 {
318 pinctrl-names = "default";
319 pinctrl-0 = <&i2c2_pins>;
320
321 clock-frequency = <400000>;
322};
323
324&i2c3 {
325 pinctrl-names = "default";
326 pinctrl-0 = <&i2c3_pins>;
327
328 clock-frequency = <100000>;
329
330 /*
331 * Display monitor features are burnt in their EEPROM as EDID data.
332 * The EEPROM is connected as I2C slave device.
333 */
334 eeprom@50 {
335 compatible = "ti,eeprom";
336 reg = <0x50>;
337 };
338};
339
340&i2c4 {
341 pinctrl-names = "default";
342 pinctrl-0 = <&i2c4_pins>;
343
344 clock-frequency = <400000>;
345};
346
347&mmc1 {
348 vmmc-supply = <&vmmc>;
349 bus-width = <8>;
350};
351
352&mmc2 {
353 status = "disabled";
354};
355
356&mmc3 {
357 status = "disabled";
358};
359
360&mmc4 {
361 status = "disabled";
362};
363
364&mmc5 {
Tony Lindgren851320e2013-09-13 12:09:53 -0700365 pinctrl-names = "default";
366 pinctrl-0 = <&wl12xx_pins>;
367 vmmc-supply = <&wl12xx_vmmc>;
368 non-removable;
Nishanth Menon4b791972013-03-19 12:53:07 -0500369 bus-width = <4>;
Tony Lindgren851320e2013-09-13 12:09:53 -0700370 cap-power-off-card;
Nishanth Menon4b791972013-03-19 12:53:07 -0500371};
372
373&emif1 {
374 cs1-used;
375 device-handle = <&elpida_ECB240ABACN>;
376};
377
378&emif2 {
379 cs1-used;
380 device-handle = <&elpida_ECB240ABACN>;
381};
382
383&mcbsp2 {
384 status = "disabled";
385};
386
387&mcbsp3 {
388 status = "disabled";
389};
390
391&dmic {
392 status = "disabled";
393};
394
395&twl_usb_comparator {
396 usb-supply = <&vusb>;
397};
398
399&usb_otg_hs {
400 interface-type = <1>;
401 mode = <3>;
402 power = <50>;
403};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300404
405&usbhshost {
406 port1-mode = "ehci-phy";
407};
408
409&usbhsehci {
410 phys = <&hsusb1_phy>;
411};