]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/omap4-panda-common.dtsi
Merge remote-tracking branch 'xfs/for-next'
[karo-tx-linux.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 GPIO_ACTIVE_HIGH>;     /* 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 GPIO_ACTIVE_HIGH>;
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 };