blob: cbc45cfc44e9911cd216629998a0fa3f747ad223 [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>;
Roger Quadros2ecf8aa2014-02-27 16:18:29 +020086 clocks = <&auxclk3_ck>;
87 clock-names = "main_clk";
Roger Quadros5bd2100e2013-06-18 19:04:44 +030088 clock-frequency = <19200000>;
89 };
Tony Lindgren851320e2013-09-13 12:09:53 -070090
91 /* regulator for wl12xx on sdio5 */
92 wl12xx_vmmc: wl12xx_vmmc {
93 pinctrl-names = "default";
94 pinctrl-0 = <&wl12xx_gpio>;
95 compatible = "regulator-fixed";
96 regulator-name = "vwl1271";
97 regulator-min-microvolt = <1800000>;
98 regulator-max-microvolt = <1800000>;
99 gpio = <&gpio2 11 0>;
100 startup-delay-us = <70000>;
101 enable-active-high;
102 };
Nishanth Menon4b791972013-03-19 12:53:07 -0500103};
104
105&omap4_pmx_core {
106 pinctrl-names = "default";
107 pinctrl-0 = <
Tomi Valkeinen0352bd12013-10-25 13:07:36 +0300108 &dss_dpi_pins
109 &tfp410_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500110 &dss_hdmi_pins
111 &tpd12s015_pins
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300112 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500113 >;
114
Nishanth Menon4b791972013-03-19 12:53:07 -0500115 twl6040_pins: pinmux_twl6040_pins {
116 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200117 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
118 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500119 >;
120 };
121
122 mcpdm_pins: pinmux_mcpdm_pins {
123 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200124 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
125 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
126 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
127 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
128 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
Nishanth Menon4b791972013-03-19 12:53:07 -0500129 >;
130 };
131
132 mcbsp1_pins: pinmux_mcbsp1_pins {
133 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200134 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
135 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
136 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
137 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
Nishanth Menon4b791972013-03-19 12:53:07 -0500138 >;
139 };
140
Tomi Valkeinen0352bd12013-10-25 13:07:36 +0300141 dss_dpi_pins: pinmux_dss_dpi_pins {
142 pinctrl-single,pins = <
143 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */
144 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */
145 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */
146 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */
147 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */
148 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */
149 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */
150 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */
151 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */
152 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */
153 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */
154
155 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */
156 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */
157 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */
158 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */
159 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */
160 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */
161 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */
162 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */
163 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */
164 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */
165 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */
166 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */
167 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */
168 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */
169
170 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */
171 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */
172 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */
173 >;
174 };
175
176 tfp410_pins: pinmux_tfp410_pins {
177 pinctrl-single,pins = <
178 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */
179 >;
180 };
181
Nishanth Menon4b791972013-03-19 12:53:07 -0500182 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 };
Tony Lindgren851320e2013-09-13 12:09:53 -0700242
243 /*
244 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
245 * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
246 */
247 wl12xx_gpio: pinmux_wl12xx_gpio {
248 pinctrl-single,pins = <
249 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
250 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
251 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
252 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
253 >;
254 };
255
256 /* wl12xx GPIO inputs and SDIO pins */
257 wl12xx_pins: pinmux_wl12xx_pins {
258 pinctrl-single,pins = <
259 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
260 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
Balaji T K2ba28662013-12-02 11:38:13 -0800261 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
Tony Lindgren851320e2013-09-13 12:09:53 -0700262 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
263 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
264 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
265 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
266 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
267 >;
268 };
Dan Murphy3818d7c2013-05-31 10:44:55 -0500269};
270
Balaji T K2ba28662013-12-02 11:38:13 -0800271&omap4_pmx_wkup {
272 led_wkgpio_pins: pinmux_leds_wkpins {
273 pinctrl-single,pins = <
274 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
275 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
276 >;
277 };
278};
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>;
Peter Ujfalusiaa986452014-01-24 10:18:59 +0200296
297 pinctrl-names = "default";
298 pinctrl-0 = <&twl6040_pins>;
299
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200300 /* IRQ# = 119 */
301 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500302 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500303 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500304
305 vio-supply = <&v1v8>;
306 v2v1-supply = <&v2v1>;
307 enable-active-high;
308 };
309};
310
Florian Vaussard98ef79572013-05-31 14:32:55 +0200311#include "twl6030.dtsi"
Ruslan Bilovol06a9ea52013-08-14 11:35:47 +0300312#include "twl6030_omap4.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500313
314&i2c2 {
315 pinctrl-names = "default";
316 pinctrl-0 = <&i2c2_pins>;
317
318 clock-frequency = <400000>;
319};
320
321&i2c3 {
322 pinctrl-names = "default";
323 pinctrl-0 = <&i2c3_pins>;
324
325 clock-frequency = <100000>;
326
327 /*
328 * Display monitor features are burnt in their EEPROM as EDID data.
329 * The EEPROM is connected as I2C slave device.
330 */
331 eeprom@50 {
332 compatible = "ti,eeprom";
333 reg = <0x50>;
334 };
335};
336
337&i2c4 {
338 pinctrl-names = "default";
339 pinctrl-0 = <&i2c4_pins>;
340
341 clock-frequency = <400000>;
342};
343
344&mmc1 {
345 vmmc-supply = <&vmmc>;
346 bus-width = <8>;
347};
348
349&mmc2 {
350 status = "disabled";
351};
352
353&mmc3 {
354 status = "disabled";
355};
356
357&mmc4 {
358 status = "disabled";
359};
360
361&mmc5 {
Tony Lindgren851320e2013-09-13 12:09:53 -0700362 pinctrl-names = "default";
363 pinctrl-0 = <&wl12xx_pins>;
364 vmmc-supply = <&wl12xx_vmmc>;
365 non-removable;
Nishanth Menon4b791972013-03-19 12:53:07 -0500366 bus-width = <4>;
Tony Lindgren851320e2013-09-13 12:09:53 -0700367 cap-power-off-card;
Nishanth Menon4b791972013-03-19 12:53:07 -0500368};
369
370&emif1 {
371 cs1-used;
372 device-handle = <&elpida_ECB240ABACN>;
373};
374
375&emif2 {
376 cs1-used;
377 device-handle = <&elpida_ECB240ABACN>;
378};
379
Peter Ujfalusiaa986452014-01-24 10:18:59 +0200380&mcbsp1 {
381 pinctrl-names = "default";
382 pinctrl-0 = <&mcbsp1_pins>;
383 status = "okay";
384};
385
Peter Ujfalusiaa986452014-01-24 10:18:59 +0200386&mcpdm {
387 pinctrl-names = "default";
388 pinctrl-0 = <&mcpdm_pins>;
389 status = "okay";
390};
391
Nishanth Menon4b791972013-03-19 12:53:07 -0500392&twl_usb_comparator {
393 usb-supply = <&vusb>;
394};
395
396&usb_otg_hs {
397 interface-type = <1>;
398 mode = <3>;
399 power = <50>;
400};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300401
402&usbhshost {
403 port1-mode = "ehci-phy";
404};
405
406&usbhsehci {
407 phys = <&hsusb1_phy>;
408};