]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - arch/arm/boot/dts/omap4-panda-common.dtsi
Merge tag 'spi-v4.1-rc1' into spi-linus
[mirror_ubuntu-zesty-kernel.git] / arch / arm / boot / dts / omap4-panda-common.dtsi
1 /*
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 */
8 #include "elpida_ecb240abacn.dtsi"
9
10 / {
11 memory {
12 device_type = "memory";
13 reg = <0x80000000 0x40000000>; /* 1 GB */
14 };
15
16 aliases {
17 display0 = &dvi0;
18 display1 = &hdmi0;
19 };
20
21 leds: leds {
22 compatible = "gpio-leds";
23 pinctrl-names = "default";
24 pinctrl-0 = <
25 &led_wkgpio_pins
26 >;
27
28 heartbeat {
29 label = "pandaboard::status1";
30 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
31 linux,default-trigger = "heartbeat";
32 };
33
34 mmc {
35 label = "pandaboard::status2";
36 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
37 linux,default-trigger = "mmc0";
38 };
39 };
40
41 sound: sound {
42 compatible = "ti,abe-twl6040";
43 ti,model = "PandaBoard";
44
45 ti,mclk-freq = <38400000>;
46
47 ti,mcpdm = <&mcpdm>;
48
49 ti,twl6040 = <&twl6040>;
50
51 /* Audio routing */
52 ti,audio-routing =
53 "Headset Stereophone", "HSOL",
54 "Headset Stereophone", "HSOR",
55 "Ext Spk", "HFL",
56 "Ext Spk", "HFR",
57 "Line Out", "AUXL",
58 "Line Out", "AUXR",
59 "HSMIC", "Headset Mic",
60 "Headset Mic", "Headset Mic Bias",
61 "AFML", "Line In",
62 "AFMR", "Line In";
63 };
64
65 /* HS USB Port 1 Power */
66 hsusb1_power: hsusb1_power_reg {
67 compatible = "regulator-fixed";
68 regulator-name = "hsusb1_vbus";
69 regulator-min-microvolt = <3300000>;
70 regulator-max-microvolt = <3300000>;
71 gpio = <&gpio1 1 0>; /* gpio_1 */
72 startup-delay-us = <70000>;
73 enable-active-high;
74 /*
75 * boot-on is required along with always-on as the
76 * regulator framework doesn't enable the regulator
77 * if boot-on is not there.
78 */
79 regulator-always-on;
80 regulator-boot-on;
81 };
82
83 /* HS USB Host PHY on PORT 1 */
84 hsusb1_phy: hsusb1_phy {
85 compatible = "usb-nop-xceiv";
86 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; /* gpio_62 */
87 vcc-supply = <&hsusb1_power>;
88 clocks = <&auxclk3_ck>;
89 clock-names = "main_clk";
90 clock-frequency = <19200000>;
91 };
92
93 /* regulator for wl12xx on sdio5 */
94 wl12xx_vmmc: wl12xx_vmmc {
95 pinctrl-names = "default";
96 pinctrl-0 = <&wl12xx_gpio>;
97 compatible = "regulator-fixed";
98 regulator-name = "vwl1271";
99 regulator-min-microvolt = <1800000>;
100 regulator-max-microvolt = <1800000>;
101 gpio = <&gpio2 11 0>;
102 startup-delay-us = <70000>;
103 enable-active-high;
104 };
105
106 tfp410: encoder@0 {
107 compatible = "ti,tfp410";
108 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* gpio_0 */
109
110 ports {
111 #address-cells = <1>;
112 #size-cells = <0>;
113
114 port@0 {
115 reg = <0>;
116
117 tfp410_in: endpoint@0 {
118 remote-endpoint = <&dpi_out>;
119 };
120 };
121
122 port@1 {
123 reg = <1>;
124
125 tfp410_out: endpoint@0 {
126 remote-endpoint = <&dvi_connector_in>;
127 };
128 };
129 };
130 };
131
132 dvi0: connector@0 {
133 compatible = "dvi-connector";
134 label = "dvi";
135
136 digital;
137
138 ddc-i2c-bus = <&i2c3>;
139
140 port {
141 dvi_connector_in: endpoint {
142 remote-endpoint = <&tfp410_out>;
143 };
144 };
145 };
146
147 tpd12s015: encoder@1 {
148 compatible = "ti,tpd12s015";
149
150 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */
151 <&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */
152 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */
153
154 ports {
155 #address-cells = <1>;
156 #size-cells = <0>;
157
158 port@0 {
159 reg = <0>;
160
161 tpd12s015_in: endpoint@0 {
162 remote-endpoint = <&hdmi_out>;
163 };
164 };
165
166 port@1 {
167 reg = <1>;
168
169 tpd12s015_out: endpoint@0 {
170 remote-endpoint = <&hdmi_connector_in>;
171 };
172 };
173 };
174 };
175
176 hdmi0: connector@1 {
177 compatible = "hdmi-connector";
178 label = "hdmi";
179
180 type = "a";
181
182 port {
183 hdmi_connector_in: endpoint {
184 remote-endpoint = <&tpd12s015_out>;
185 };
186 };
187 };
188 };
189
190 &omap4_pmx_core {
191 pinctrl-names = "default";
192 pinctrl-0 = <
193 &dss_dpi_pins
194 &tfp410_pins
195 &dss_hdmi_pins
196 &tpd12s015_pins
197 &hsusbb1_pins
198 >;
199
200 twl6040_pins: pinmux_twl6040_pins {
201 pinctrl-single,pins = <
202 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
203 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
204 >;
205 };
206
207 mcpdm_pins: pinmux_mcpdm_pins {
208 pinctrl-single,pins = <
209 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
210 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
211 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
212 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
213 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
214 >;
215 };
216
217 mcbsp1_pins: pinmux_mcbsp1_pins {
218 pinctrl-single,pins = <
219 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
220 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
221 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
222 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
223 >;
224 };
225
226 dss_dpi_pins: pinmux_dss_dpi_pins {
227 pinctrl-single,pins = <
228 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */
229 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */
230 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */
231 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */
232 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */
233 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */
234 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */
235 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */
236 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */
237 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */
238 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */
239
240 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */
241 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */
242 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */
243 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */
244 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */
245 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */
246 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */
247 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */
248 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */
249 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */
250 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */
251 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */
252 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */
253 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */
254
255 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */
256 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */
257 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */
258 >;
259 };
260
261 tfp410_pins: pinmux_tfp410_pins {
262 pinctrl-single,pins = <
263 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */
264 >;
265 };
266
267 dss_hdmi_pins: pinmux_dss_hdmi_pins {
268 pinctrl-single,pins = <
269 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
270 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
271 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
272 >;
273 };
274
275 tpd12s015_pins: pinmux_tpd12s015_pins {
276 pinctrl-single,pins = <
277 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
278 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
279 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
280 >;
281 };
282
283 hsusbb1_pins: pinmux_hsusbb1_pins {
284 pinctrl-single,pins = <
285 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
286 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
287 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
288 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
289 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
290 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
291 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
292 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
293 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
294 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
295 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
296 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
297 >;
298 };
299
300 i2c1_pins: pinmux_i2c1_pins {
301 pinctrl-single,pins = <
302 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
303 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
304 >;
305 };
306
307 i2c2_pins: pinmux_i2c2_pins {
308 pinctrl-single,pins = <
309 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
310 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
311 >;
312 };
313
314 i2c3_pins: pinmux_i2c3_pins {
315 pinctrl-single,pins = <
316 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
317 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
318 >;
319 };
320
321 i2c4_pins: pinmux_i2c4_pins {
322 pinctrl-single,pins = <
323 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
324 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
325 >;
326 };
327
328 /*
329 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
330 * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
331 */
332 wl12xx_gpio: pinmux_wl12xx_gpio {
333 pinctrl-single,pins = <
334 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
335 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
336 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
337 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
338 >;
339 };
340
341 /* wl12xx GPIO inputs and SDIO pins */
342 wl12xx_pins: pinmux_wl12xx_pins {
343 pinctrl-single,pins = <
344 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
345 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
346 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
347 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
348 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
349 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
350 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
351 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
352 >;
353 };
354 };
355
356 &omap4_pmx_wkup {
357 led_wkgpio_pins: pinmux_leds_wkpins {
358 pinctrl-single,pins = <
359 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
360 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
361 >;
362 };
363 };
364
365 &i2c1 {
366 pinctrl-names = "default";
367 pinctrl-0 = <&i2c1_pins>;
368
369 clock-frequency = <400000>;
370
371 twl: twl@48 {
372 reg = <0x48>;
373 /* IRQ# = 7 */
374 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
375 };
376
377 twl6040: twl@4b {
378 compatible = "ti,twl6040";
379 reg = <0x4b>;
380
381 pinctrl-names = "default";
382 pinctrl-0 = <&twl6040_pins>;
383
384 /* IRQ# = 119 */
385 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
386 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
387
388 vio-supply = <&v1v8>;
389 v2v1-supply = <&v2v1>;
390 enable-active-high;
391 };
392 };
393
394 #include "twl6030.dtsi"
395 #include "twl6030_omap4.dtsi"
396
397 &i2c2 {
398 pinctrl-names = "default";
399 pinctrl-0 = <&i2c2_pins>;
400
401 clock-frequency = <400000>;
402 };
403
404 &i2c3 {
405 pinctrl-names = "default";
406 pinctrl-0 = <&i2c3_pins>;
407
408 clock-frequency = <100000>;
409
410 /*
411 * Display monitor features are burnt in their EEPROM as EDID data.
412 * The EEPROM is connected as I2C slave device.
413 */
414 eeprom@50 {
415 compatible = "ti,eeprom";
416 reg = <0x50>;
417 };
418 };
419
420 &i2c4 {
421 pinctrl-names = "default";
422 pinctrl-0 = <&i2c4_pins>;
423
424 clock-frequency = <400000>;
425 };
426
427 &mmc1 {
428 vmmc-supply = <&vmmc>;
429 bus-width = <8>;
430 };
431
432 &mmc2 {
433 status = "disabled";
434 };
435
436 &mmc3 {
437 status = "disabled";
438 };
439
440 &mmc4 {
441 status = "disabled";
442 };
443
444 &mmc5 {
445 pinctrl-names = "default";
446 pinctrl-0 = <&wl12xx_pins>;
447 vmmc-supply = <&wl12xx_vmmc>;
448 non-removable;
449 bus-width = <4>;
450 cap-power-off-card;
451
452 #address-cells = <1>;
453 #size-cells = <0>;
454 wlcore: wlcore@2 {
455 compatible = "ti,wl1271";
456 reg = <2>;
457 interrupt-parent = <&gpio2>;
458 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
459 ref-clock-frequency = <38400000>;
460 };
461 };
462
463 &emif1 {
464 cs1-used;
465 device-handle = <&elpida_ECB240ABACN>;
466 };
467
468 &emif2 {
469 cs1-used;
470 device-handle = <&elpida_ECB240ABACN>;
471 };
472
473 &mcbsp1 {
474 pinctrl-names = "default";
475 pinctrl-0 = <&mcbsp1_pins>;
476 status = "okay";
477 };
478
479 &mcpdm {
480 pinctrl-names = "default";
481 pinctrl-0 = <&mcpdm_pins>;
482 status = "okay";
483 };
484
485 &twl_usb_comparator {
486 usb-supply = <&vusb>;
487 };
488
489 &uart2 {
490 interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
491 &omap4_pmx_core OMAP4_UART2_RX>;
492 };
493
494 &uart3 {
495 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
496 &omap4_pmx_core OMAP4_UART3_RX>;
497 };
498
499 &uart4 {
500 interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
501 &omap4_pmx_core OMAP4_UART4_RX>;
502 };
503
504 &usb_otg_hs {
505 interface-type = <1>;
506 mode = <3>;
507 power = <50>;
508 };
509
510 &usbhshost {
511 port1-mode = "ehci-phy";
512 };
513
514 &usbhsehci {
515 phys = <&hsusb1_phy>;
516 };
517
518 &dss {
519 status = "ok";
520
521 port {
522 dpi_out: endpoint {
523 remote-endpoint = <&tfp410_in>;
524 data-lines = <24>;
525 };
526 };
527 };
528
529 &dsi2 {
530 status = "ok";
531 vdd-supply = <&vcxio>;
532 };
533
534 &hdmi {
535 status = "ok";
536 vdda-supply = <&vdac>;
537
538 port {
539 hdmi_out: endpoint {
540 remote-endpoint = <&tpd12s015_in>;
541 };
542 };
543 };