blob: 60fc62489b7aeb2b24eea867709738c7e1910515 [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;
88 };
89
90 /* HS USB Host PHY on PORT 1 */
91 hsusb1_phy: hsusb1_phy {
92 compatible = "usb-nop-xceiv";
93 reset-supply = <&hsusb1_reset>;
94 vcc-supply = <&hsusb1_power>;
95 /**
96 * FIXME:
97 * put the right clock phandle here when available
98 * clocks = <&auxclk3>;
99 * clock-names = "main_clk";
100 */
101 clock-frequency = <19200000>;
102 };
Nishanth Menon4b791972013-03-19 12:53:07 -0500103};
104
Kevin Hilman1e68f432013-05-24 17:24:21 -0700105&omap4_pmx_wkup {
106 pinctrl-names = "default";
107 pinctrl-0 = <
108 &twl6030_wkup_pins
109 >;
110
111 twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
112 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200113 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700114 >;
115 };
116};
117
Nishanth Menon4b791972013-03-19 12:53:07 -0500118&omap4_pmx_core {
119 pinctrl-names = "default";
120 pinctrl-0 = <
Kevin Hilman1e68f432013-05-24 17:24:21 -0700121 &twl6030_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500122 &twl6040_pins
123 &mcpdm_pins
124 &mcbsp1_pins
125 &dss_hdmi_pins
126 &tpd12s015_pins
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300127 &hsusbb1_pins
Nishanth Menon4b791972013-03-19 12:53:07 -0500128 >;
129
Kevin Hilman1e68f432013-05-24 17:24:21 -0700130 twl6030_pins: pinmux_twl6030_pins {
131 pinctrl-single,pins = <
Florian Vaussardbcd3cca2013-05-31 14:32:59 +0200132 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
Kevin Hilman1e68f432013-05-24 17:24:21 -0700133 >;
134 };
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 };
231};
232
Nishanth Menon4b791972013-03-19 12:53:07 -0500233&i2c1 {
234 pinctrl-names = "default";
235 pinctrl-0 = <&i2c1_pins>;
236
237 clock-frequency = <400000>;
238
239 twl: twl@48 {
240 reg = <0x48>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200241 /* IRQ# = 7 */
242 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500243 interrupt-parent = <&gic>;
244 };
245
246 twl6040: twl@4b {
247 compatible = "ti,twl6040";
248 reg = <0x4b>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200249 /* IRQ# = 119 */
250 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
Nishanth Menon4b791972013-03-19 12:53:07 -0500251 interrupt-parent = <&gic>;
Dan Murphy78eb9382013-05-31 10:45:22 -0500252 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
Nishanth Menon4b791972013-03-19 12:53:07 -0500253
254 vio-supply = <&v1v8>;
255 v2v1-supply = <&v2v1>;
256 enable-active-high;
257 };
258};
259
Florian Vaussard98ef79572013-05-31 14:32:55 +0200260#include "twl6030.dtsi"
Nishanth Menon4b791972013-03-19 12:53:07 -0500261
262&i2c2 {
263 pinctrl-names = "default";
264 pinctrl-0 = <&i2c2_pins>;
265
266 clock-frequency = <400000>;
267};
268
269&i2c3 {
270 pinctrl-names = "default";
271 pinctrl-0 = <&i2c3_pins>;
272
273 clock-frequency = <100000>;
274
275 /*
276 * Display monitor features are burnt in their EEPROM as EDID data.
277 * The EEPROM is connected as I2C slave device.
278 */
279 eeprom@50 {
280 compatible = "ti,eeprom";
281 reg = <0x50>;
282 };
283};
284
285&i2c4 {
286 pinctrl-names = "default";
287 pinctrl-0 = <&i2c4_pins>;
288
289 clock-frequency = <400000>;
290};
291
292&mmc1 {
293 vmmc-supply = <&vmmc>;
294 bus-width = <8>;
295};
296
297&mmc2 {
298 status = "disabled";
299};
300
301&mmc3 {
302 status = "disabled";
303};
304
305&mmc4 {
306 status = "disabled";
307};
308
309&mmc5 {
310 ti,non-removable;
311 bus-width = <4>;
312};
313
314&emif1 {
315 cs1-used;
316 device-handle = <&elpida_ECB240ABACN>;
317};
318
319&emif2 {
320 cs1-used;
321 device-handle = <&elpida_ECB240ABACN>;
322};
323
324&mcbsp2 {
325 status = "disabled";
326};
327
328&mcbsp3 {
329 status = "disabled";
330};
331
332&dmic {
333 status = "disabled";
334};
335
336&twl_usb_comparator {
337 usb-supply = <&vusb>;
338};
339
340&usb_otg_hs {
341 interface-type = <1>;
342 mode = <3>;
343 power = <50>;
344};
Roger Quadros5bd2100e2013-06-18 19:04:44 +0300345
346&usbhshost {
347 port1-mode = "ehci-phy";
348};
349
350&usbhsehci {
351 phys = <&hsusb1_phy>;
352};