blob: faa95b5b242ee437aeea84c8d4dde915a67c2031 [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 };
Nishanth Menon4b791972013-03-19 12:53:07 -0500110};
111
Kevin Hilman1e68f432013-05-24 17:24:21 -0700112&omap4_pmx_wkup {
113 pinctrl-names = "default";
114 pinctrl-0 = <
115 &twl6030_wkup_pins
116 >;
117
118 twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
119 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200120 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700121 >;
122 };
123};
124
Nishanth Menon4b791972013-03-19 12:53:07 -0500125&omap4_pmx_core {
126 pinctrl-names = "default";
127 pinctrl-0 = <
Kevin Hilman1e68f432013-05-24 17:24:21 -0700128 &twl6030_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500129 &twl6040_pins
130 &mcpdm_pins
131 &mcbsp1_pins
132 &dss_hdmi_pins
133 &tpd12s015_pins
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300134 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500135 >;
136
Kevin Hilman1e68f432013-05-24 17:24:21 -0700137 twl6030_pins: pinmux_twl6030_pins {
138 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200139 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700140 >;
141 };
142
Nishanth Menon4b791972013-03-19 12:53:07 -0500143 twl6040_pins: pinmux_twl6040_pins {
144 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200145 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
146 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500147 >;
148 };
149
150 mcpdm_pins: pinmux_mcpdm_pins {
151 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200152 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
153 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
154 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
155 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
156 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
Nishanth Menon4b791972013-03-19 12:53:07 -0500157 >;
158 };
159
160 mcbsp1_pins: pinmux_mcbsp1_pins {
161 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200162 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
163 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
164 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
165 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
Nishanth Menon4b791972013-03-19 12:53:07 -0500166 >;
167 };
168
169 dss_hdmi_pins: pinmux_dss_hdmi_pins {
170 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200171 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
172 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
173 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500174 >;
175 };
176
177 tpd12s015_pins: pinmux_tpd12s015_pins {
178 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200179 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
180 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
181 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500182 >;
183 };
184
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300185 hsusbb1_pins: pinmux_hsusbb1_pins {
186 pinctrl-single,pins = <
187 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
188 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
189 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
190 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
191 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
192 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
193 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
194 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
195 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
196 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
197 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
198 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
199 >;
200 };
201
Nishanth Menon4b791972013-03-19 12:53:07 -0500202 i2c1_pins: pinmux_i2c1_pins {
203 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200204 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
205 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500206 >;
207 };
208
209 i2c2_pins: pinmux_i2c2_pins {
210 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200211 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
212 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500213 >;
214 };
215
216 i2c3_pins: pinmux_i2c3_pins {
217 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200218 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
219 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500220 >;
221 };
222
223 i2c4_pins: pinmux_i2c4_pins {
224 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200225 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
226 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
Nishanth Menon4b791972013-03-19 12:53:07 -0500227 >;
228 };
229};
230
Dan Murphy3818d7c2013-05-31 10:44:55 -0500231&omap4_pmx_wkup {
232 led_wkgpio_pins: pinmux_leds_wkpins {
233 pinctrl-single,pins = <
234 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
235 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
236 >;
237 };
238};
239
Nishanth Menon4b791972013-03-19 12:53:07 -0500240&i2c1 {
241 pinctrl-names = "default";
242 pinctrl-0 = <&i2c1_pins>;
243
244 clock-frequency = <400000>;
245
246 twl: twl@48 {
247 reg = <0x48>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200248 /* IRQ# = 7 */
249 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500250 interrupt-parent = <&gic>;
251 };
252
253 twl6040: twl@4b {
254 compatible = "ti,twl6040";
255 reg = <0x4b>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200256 /* IRQ# = 119 */
257 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500258 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500259 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500260
261 vio-supply = <&v1v8>;
262 v2v1-supply = <&v2v1>;
263 enable-active-high;
264 };
265};
266
Florian Vaussard98ef79572013-05-31 14:32:55 +0200267#include "twl6030.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500268
269&i2c2 {
270 pinctrl-names = "default";
271 pinctrl-0 = <&i2c2_pins>;
272
273 clock-frequency = <400000>;
274};
275
276&i2c3 {
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2c3_pins>;
279
280 clock-frequency = <100000>;
281
282 /*
283 * Display monitor features are burnt in their EEPROM as EDID data.
284 * The EEPROM is connected as I2C slave device.
285 */
286 eeprom@50 {
287 compatible = "ti,eeprom";
288 reg = <0x50>;
289 };
290};
291
292&i2c4 {
293 pinctrl-names = "default";
294 pinctrl-0 = <&i2c4_pins>;
295
296 clock-frequency = <400000>;
297};
298
299&mmc1 {
300 vmmc-supply = <&vmmc>;
301 bus-width = <8>;
302};
303
304&mmc2 {
305 status = "disabled";
306};
307
308&mmc3 {
309 status = "disabled";
310};
311
312&mmc4 {
313 status = "disabled";
314};
315
316&mmc5 {
317 ti,non-removable;
318 bus-width = <4>;
319};
320
321&emif1 {
322 cs1-used;
323 device-handle = <&elpida_ECB240ABACN>;
324};
325
326&emif2 {
327 cs1-used;
328 device-handle = <&elpida_ECB240ABACN>;
329};
330
331&mcbsp2 {
332 status = "disabled";
333};
334
335&mcbsp3 {
336 status = "disabled";
337};
338
339&dmic {
340 status = "disabled";
341};
342
343&twl_usb_comparator {
344 usb-supply = <&vusb>;
345};
346
347&usb_otg_hs {
348 interface-type = <1>;
349 mode = <3>;
350 power = <50>;
351};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300352
353&usbhshost {
354 port1-mode = "ehci-phy";
355};
356
357&usbhsehci {
358 phys = <&hsusb1_phy>;
359};