Merge tag 'hwspinlock-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / omap5-uevm.dts
1 /*
2  * Copyright (C) 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 /dts-v1/;
9
10 #include "omap5.dtsi"
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/interrupt-controller/arm-gic.h>
13
14 / {
15         model = "TI OMAP5 uEVM board";
16         compatible = "ti,omap5-uevm", "ti,omap5";
17
18         memory {
19                 device_type = "memory";
20                 reg = <0x80000000 0x7F000000>; /* 2032 MB */
21         };
22
23         aliases {
24                 display0 = &hdmi0;
25         };
26
27         vmmcsd_fixed: fixedregulator-mmcsd {
28                 compatible = "regulator-fixed";
29                 regulator-name = "vmmcsd_fixed";
30                 regulator-min-microvolt = <3000000>;
31                 regulator-max-microvolt = <3000000>;
32         };
33
34         /* HS USB Host PHY on PORT 2 */
35         hsusb2_phy: hsusb2_phy {
36                 compatible = "usb-nop-xceiv";
37                 reset-gpios = <&gpio3 16 GPIO_ACTIVE_LOW>; /* gpio3_80 HUB_NRESET */
38                 clocks = <&auxclk1_ck>;
39                 clock-names = "main_clk";
40                 clock-frequency = <19200000>;
41         };
42
43         /* HS USB Host PHY on PORT 3 */
44         hsusb3_phy: hsusb3_phy {
45                 compatible = "usb-nop-xceiv";
46                 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; /* gpio3_79 ETH_NRESET */
47         };
48
49         leds {
50                 compatible = "gpio-leds";
51                 led@1 {
52                         label = "omap5:blue:usr1";
53                         gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>; /* gpio5_153 D1 LED */
54                         linux,default-trigger = "heartbeat";
55                         default-state = "off";
56                 };
57         };
58
59         tpd12s015: encoder@0 {
60                 compatible = "ti,tpd12s015";
61
62                 pinctrl-names = "default";
63                 pinctrl-0 = <&tpd12s015_pins>;
64
65                 gpios = <&gpio9 0 GPIO_ACTIVE_HIGH>,    /* TCA6424A P01, CT CP HPD */
66                         <&gpio9 1 GPIO_ACTIVE_HIGH>,    /* TCA6424A P00, LS OE */
67                         <&gpio7 1 GPIO_ACTIVE_HIGH>;    /* GPIO 193, HPD */
68
69                 ports {
70                         #address-cells = <1>;
71                         #size-cells = <0>;
72
73                         port@0 {
74                                 reg = <0>;
75
76                                 tpd12s015_in: endpoint@0 {
77                                         remote-endpoint = <&hdmi_out>;
78                                 };
79                         };
80
81                         port@1 {
82                                 reg = <1>;
83
84                                 tpd12s015_out: endpoint@0 {
85                                         remote-endpoint = <&hdmi_connector_in>;
86                                 };
87                         };
88                 };
89         };
90
91         hdmi0: connector@0 {
92                 compatible = "hdmi-connector";
93                 label = "hdmi";
94
95                 type = "b";
96
97                 port {
98                         hdmi_connector_in: endpoint {
99                                 remote-endpoint = <&tpd12s015_out>;
100                         };
101                 };
102         };
103
104         sound: sound {
105                 compatible = "ti,abe-twl6040";
106                 ti,model = "omap5-uevm";
107
108                 ti,mclk-freq = <19200000>;
109
110                 ti,mcpdm = <&mcpdm>;
111
112                 ti,twl6040 = <&twl6040>;
113
114                 /* Audio routing */
115                 ti,audio-routing =
116                         "Headset Stereophone", "HSOL",
117                         "Headset Stereophone", "HSOR",
118                         "Line Out", "AUXL",
119                         "Line Out", "AUXR",
120                         "HSMIC", "Headset Mic",
121                         "Headset Mic", "Headset Mic Bias",
122                         "AFML", "Line In",
123                         "AFMR", "Line In";
124         };
125 };
126
127 &omap5_pmx_core {
128         pinctrl-names = "default";
129         pinctrl-0 = <
130                         &usbhost_pins
131                         &led_gpio_pins
132         >;
133
134         twl6040_pins: pinmux_twl6040_pins {
135                 pinctrl-single,pins = <
136                         0x17e (PIN_OUTPUT | MUX_MODE6)  /* mcspi1_somi.gpio5_141 */
137                 >;
138         };
139
140         mcpdm_pins: pinmux_mcpdm_pins {
141                 pinctrl-single,pins = <
142                         0x142 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abe_clks.abe_clks */
143                         0x15c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_ul_data.abemcpdm_ul_data */
144                         0x15e (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_dl_data.abemcpdm_dl_data */
145                         0x160 (PIN_INPUT_PULLUP | MUX_MODE0)    /* abemcpdm_frame.abemcpdm_frame */
146                         0x162 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_lb_clk.abemcpdm_lb_clk */
147                 >;
148         };
149
150         mcbsp1_pins: pinmux_mcbsp1_pins {
151                 pinctrl-single,pins = <
152                         0x14c (PIN_INPUT | MUX_MODE1)           /* abedmic_clk2.abemcbsp1_fsx */
153                         0x14e (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* abedmic_clk3.abemcbsp1_dx */
154                         0x150 (PIN_INPUT | MUX_MODE1)           /* abeslimbus1_clock.abemcbsp1_clkx */
155                         0x152 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* abeslimbus1_data.abemcbsp1_dr */
156                 >;
157         };
158
159         mcbsp2_pins: pinmux_mcbsp2_pins {
160                 pinctrl-single,pins = <
161                         0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcbsp2_dr.abemcbsp2_dr */
162                         0x156 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dx.abemcbsp2_dx */
163                         0x158 (PIN_INPUT | MUX_MODE0)           /* abemcbsp2_fsx.abemcbsp2_fsx */
164                         0x15a (PIN_INPUT | MUX_MODE0)           /* abemcbsp2_clkx.abemcbsp2_clkx */
165                 >;
166         };
167
168         i2c1_pins: pinmux_i2c1_pins {
169                 pinctrl-single,pins = <
170                         0x1b2 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_scl */
171                         0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_sda */
172                 >;
173         };
174
175         i2c5_pins: pinmux_i2c5_pins {
176                 pinctrl-single,pins = <
177                         0x184 (PIN_INPUT | MUX_MODE0)           /* i2c5_scl */
178                         0x186 (PIN_INPUT | MUX_MODE0)           /* i2c5_sda */
179                 >;
180         };
181
182         mcspi2_pins: pinmux_mcspi2_pins {
183                 pinctrl-single,pins = <
184                         0xbc (PIN_INPUT | MUX_MODE0)            /*  mcspi2_clk */
185                         0xbe (PIN_INPUT | MUX_MODE0)            /*  mcspi2_simo */
186                         0xc0 (PIN_INPUT_PULLUP | MUX_MODE0)     /*  mcspi2_somi */
187                         0xc2 (PIN_OUTPUT | MUX_MODE0)           /*  mcspi2_cs0 */
188                 >;
189         };
190
191         mcspi3_pins: pinmux_mcspi3_pins {
192                 pinctrl-single,pins = <
193                         0x78 (PIN_INPUT | MUX_MODE1)            /*  mcspi3_somi */
194                         0x7a (PIN_INPUT | MUX_MODE1)            /*  mcspi3_cs0 */
195                         0x7c (PIN_INPUT | MUX_MODE1)            /*  mcspi3_simo */
196                         0x7e (PIN_INPUT | MUX_MODE1)            /*  mcspi3_clk */
197                 >;
198         };
199
200         mcspi4_pins: pinmux_mcspi4_pins {
201                 pinctrl-single,pins = <
202                         0x164 (PIN_INPUT | MUX_MODE1)           /*  mcspi4_clk */
203                         0x168 (PIN_INPUT | MUX_MODE1)           /*  mcspi4_simo */
204                         0x16a (PIN_INPUT | MUX_MODE1)           /*  mcspi4_somi */
205                         0x16c (PIN_INPUT | MUX_MODE1)           /*  mcspi4_cs0 */
206                 >;
207         };
208
209         usbhost_pins: pinmux_usbhost_pins {
210                 pinctrl-single,pins = <
211                         0x84 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_strobe */
212                         0x86 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_data */
213
214                         0x19e (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_strobe */
215                         0x1a0 (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_data */
216
217                         0x70 (PIN_OUTPUT | MUX_MODE6) /* gpio3_80 HUB_NRESET */
218                         0x6e (PIN_OUTPUT | MUX_MODE6) /* gpio3_79 ETH_NRESET */
219                 >;
220         };
221
222         led_gpio_pins: pinmux_led_gpio_pins {
223                 pinctrl-single,pins = <
224                         0x196 (PIN_OUTPUT | MUX_MODE6) /* uart3_cts_rctx.gpio5_153 */
225                 >;
226         };
227
228         uart1_pins: pinmux_uart1_pins {
229                 pinctrl-single,pins = <
230                         0x60 (PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_cts */
231                         0x62 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_tx.uart1_cts */
232                         0x64 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rx.uart1_rts */
233                         0x66 (PIN_OUTPUT | MUX_MODE0) /* uart1_rx.uart1_rts */
234                 >;
235         };
236
237         uart3_pins: pinmux_uart3_pins {
238                 pinctrl-single,pins = <
239                         0x19a (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_irsd.uart3_tx_irtx */
240                         0x19c (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_rx_irrx.uart3_usbb3_hsic */
241                 >;
242         };
243
244         uart5_pins: pinmux_uart5_pins {
245                 pinctrl-single,pins = <
246                         0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_rx.uart5_rx */
247                         0x172 (PIN_OUTPUT | MUX_MODE0) /* uart5_tx.uart5_tx */
248                         0x174 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_cts.uart5_rts */
249                         0x176 (PIN_OUTPUT | MUX_MODE0) /* uart5_cts.uart5_rts */
250                 >;
251         };
252
253         dss_hdmi_pins: pinmux_dss_hdmi_pins {
254                 pinctrl-single,pins = <
255                         0x0fc (PIN_INPUT_PULLUP | MUX_MODE0)    /* hdmi_cec.hdmi_cec */
256                         0x100 (PIN_INPUT | MUX_MODE0)   /* hdmi_ddc_scl.hdmi_ddc_scl */
257                         0x102 (PIN_INPUT | MUX_MODE0)   /* hdmi_ddc_sda.hdmi_ddc_sda */
258                 >;
259         };
260
261         tpd12s015_pins: pinmux_tpd12s015_pins {
262                 pinctrl-single,pins = <
263                         0x0fe (PIN_INPUT_PULLDOWN | MUX_MODE6)  /* hdmi_hpd.gpio7_193 */
264                 >;
265         };
266 };
267
268 &omap5_pmx_wkup {
269         pinctrl-names = "default";
270         pinctrl-0 = <
271                         &usbhost_wkup_pins
272         >;
273
274         usbhost_wkup_pins: pinmux_usbhost_wkup_pins {
275                 pinctrl-single,pins = <
276                         0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
277                 >;
278         };
279 };
280
281 &mmc1 {
282         vmmc-supply = <&ldo9_reg>;
283         bus-width = <4>;
284 };
285
286 &mmc2 {
287         vmmc-supply = <&vmmcsd_fixed>;
288         bus-width = <8>;
289         ti,non-removable;
290 };
291
292 &mmc3 {
293         bus-width = <4>;
294         ti,non-removable;
295 };
296
297 &mmc4 {
298         status = "disabled";
299 };
300
301 &mmc5 {
302         status = "disabled";
303 };
304
305 &i2c1 {
306         pinctrl-names = "default";
307         pinctrl-0 = <&i2c1_pins>;
308
309         clock-frequency = <400000>;
310
311         palmas: palmas@48 {
312                 compatible = "ti,palmas";
313                 interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
314                 interrupt-parent = <&gic>;
315                 reg = <0x48>;
316                 interrupt-controller;
317                 #interrupt-cells = <2>;
318                 ti,system-power-controller;
319
320                 extcon_usb3: palmas_usb {
321                         compatible = "ti,palmas-usb-vid";
322                         ti,enable-vbus-detection;
323                         ti,enable-id-detection;
324                         ti,wakeup;
325                 };
326
327                 clk32kgaudio: palmas_clk32k@1 {
328                         compatible = "ti,palmas-clk32kgaudio";
329                         #clock-cells = <0>;
330                 };
331
332                 palmas_pmic {
333                         compatible = "ti,palmas-pmic";
334                         interrupt-parent = <&palmas>;
335                         interrupts = <14 IRQ_TYPE_NONE>;
336                         interrupt-name = "short-irq";
337
338                         ti,ldo6-vibrator;
339
340                         regulators {
341                                 smps123_reg: smps123 {
342                                         /* VDD_OPP_MPU */
343                                         regulator-name = "smps123";
344                                         regulator-min-microvolt = < 600000>;
345                                         regulator-max-microvolt = <1500000>;
346                                         regulator-always-on;
347                                         regulator-boot-on;
348                                 };
349
350                                 smps45_reg: smps45 {
351                                         /* VDD_OPP_MM */
352                                         regulator-name = "smps45";
353                                         regulator-min-microvolt = < 600000>;
354                                         regulator-max-microvolt = <1310000>;
355                                         regulator-always-on;
356                                         regulator-boot-on;
357                                 };
358
359                                 smps6_reg: smps6 {
360                                         /* VDD_DDR3 - over VDD_SMPS6 */
361                                         regulator-name = "smps6";
362                                         regulator-min-microvolt = <1200000>;
363                                         regulator-max-microvolt = <1200000>;
364                                         regulator-always-on;
365                                         regulator-boot-on;
366                                 };
367
368                                 smps7_reg: smps7 {
369                                         /* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
370                                         regulator-name = "smps7";
371                                         regulator-min-microvolt = <1800000>;
372                                         regulator-max-microvolt = <1800000>;
373                                         regulator-always-on;
374                                         regulator-boot-on;
375                                 };
376
377                                 smps8_reg: smps8 {
378                                         /* VDD_OPP_CORE */
379                                         regulator-name = "smps8";
380                                         regulator-min-microvolt = < 600000>;
381                                         regulator-max-microvolt = <1310000>;
382                                         regulator-always-on;
383                                         regulator-boot-on;
384                                 };
385
386                                 smps9_reg: smps9 {
387                                         /* VDDA_2v1_AUD over VDD_2v1 */
388                                         regulator-name = "smps9";
389                                         regulator-min-microvolt = <2100000>;
390                                         regulator-max-microvolt = <2100000>;
391                                         ti,smps-range = <0x80>;
392                                 };
393
394                                 smps10_out2_reg: smps10_out2 {
395                                         /* VBUS_5V_OTG */
396                                         regulator-name = "smps10_out2";
397                                         regulator-min-microvolt = <5000000>;
398                                         regulator-max-microvolt = <5000000>;
399                                         regulator-always-on;
400                                         regulator-boot-on;
401                                 };
402
403                                 smps10_out1_reg: smps10_out1 {
404                                         /* VBUS_5V_OTG */
405                                         regulator-name = "smps10_out1";
406                                         regulator-min-microvolt = <5000000>;
407                                         regulator-max-microvolt = <5000000>;
408                                 };
409
410                                 ldo1_reg: ldo1 {
411                                         /* VDDAPHY_CAM: vdda_csiport */
412                                         regulator-name = "ldo1";
413                                         regulator-min-microvolt = <1500000>;
414                                         regulator-max-microvolt = <1800000>;
415                                 };
416
417                                 ldo2_reg: ldo2 {
418                                         /* VCC_2V8_DISP: Does not go anywhere */
419                                         regulator-name = "ldo2";
420                                         regulator-min-microvolt = <2800000>;
421                                         regulator-max-microvolt = <2800000>;
422                                         /* Unused */
423                                         status = "disabled";
424                                 };
425
426                                 ldo3_reg: ldo3 {
427                                         /* VDDAPHY_MDM: vdda_lli */
428                                         regulator-name = "ldo3";
429                                         regulator-min-microvolt = <1500000>;
430                                         regulator-max-microvolt = <1500000>;
431                                         regulator-boot-on;
432                                         /* Only if Modem is used */
433                                         status = "disabled";
434                                 };
435
436                                 ldo4_reg: ldo4 {
437                                         /* VDDAPHY_DISP: vdda_dsiport/hdmi */
438                                         regulator-name = "ldo4";
439                                         regulator-min-microvolt = <1500000>;
440                                         regulator-max-microvolt = <1800000>;
441                                 };
442
443                                 ldo5_reg: ldo5 {
444                                         /* VDDA_1V8_PHY: usb/sata/hdmi.. */
445                                         regulator-name = "ldo5";
446                                         regulator-min-microvolt = <1800000>;
447                                         regulator-max-microvolt = <1800000>;
448                                         regulator-always-on;
449                                         regulator-boot-on;
450                                 };
451
452                                 ldo6_reg: ldo6 {
453                                         /* VDDS_1V2_WKUP: hsic/ldo_emu_wkup */
454                                         regulator-name = "ldo6";
455                                         regulator-min-microvolt = <1200000>;
456                                         regulator-max-microvolt = <1200000>;
457                                         regulator-always-on;
458                                         regulator-boot-on;
459                                 };
460
461                                 ldo7_reg: ldo7 {
462                                         /* VDD_VPP: vpp1 */
463                                         regulator-name = "ldo7";
464                                         regulator-min-microvolt = <2000000>;
465                                         regulator-max-microvolt = <2000000>;
466                                         /* Only for efuse reprograming! */
467                                         status = "disabled";
468                                 };
469
470                                 ldo8_reg: ldo8 {
471                                         /* VDD_3v0: Does not go anywhere */
472                                         regulator-name = "ldo8";
473                                         regulator-min-microvolt = <3000000>;
474                                         regulator-max-microvolt = <3000000>;
475                                         regulator-boot-on;
476                                         /* Unused */
477                                         status = "disabled";
478                                 };
479
480                                 ldo9_reg: ldo9 {
481                                         /* VCC_DV_SDIO: vdds_sdcard */
482                                         regulator-name = "ldo9";
483                                         regulator-min-microvolt = <1800000>;
484                                         regulator-max-microvolt = <3000000>;
485                                         regulator-boot-on;
486                                 };
487
488                                 ldoln_reg: ldoln {
489                                         /* VDDA_1v8_REF: vdds_osc/mm_l4per.. */
490                                         regulator-name = "ldoln";
491                                         regulator-min-microvolt = <1800000>;
492                                         regulator-max-microvolt = <1800000>;
493                                         regulator-always-on;
494                                         regulator-boot-on;
495                                 };
496
497                                 ldousb_reg: ldousb {
498                                         /* VDDA_3V_USB: VDDA_USBHS33 */
499                                         regulator-name = "ldousb";
500                                         regulator-min-microvolt = <3250000>;
501                                         regulator-max-microvolt = <3250000>;
502                                         regulator-always-on;
503                                         regulator-boot-on;
504                                 };
505
506                                 regen3_reg: regen3 {
507                                         /* REGEN3 controls LDO9 supply to card */
508                                         regulator-name = "regen3";
509                                         regulator-always-on;
510                                         regulator-boot-on;
511                                 };
512                         };
513                 };
514         };
515
516         twl6040: twl@4b {
517                 compatible = "ti,twl6040";
518                 reg = <0x4b>;
519
520                 pinctrl-names = "default";
521                 pinctrl-0 = <&twl6040_pins>;
522
523                 interrupts = <GIC_SPI 119 IRQ_TYPE_NONE>; /* IRQ_SYS_2N cascaded to gic */
524                 interrupt-parent = <&gic>;
525                 ti,audpwron-gpio = <&gpio5 13 0>;  /* gpio line 141 */
526
527                 vio-supply = <&smps7_reg>;
528                 v2v1-supply = <&smps9_reg>;
529                 enable-active-high;
530
531                 clocks = <&clk32kgaudio>;
532                 clock-names = "clk32k";
533         };
534 };
535
536 &i2c5 {
537         pinctrl-names = "default";
538         pinctrl-0 = <&i2c5_pins>;
539
540         clock-frequency = <400000>;
541
542         gpio9: gpio@22 {
543                 compatible = "ti,tca6424";
544                 reg = <0x22>;
545                 gpio-controller;
546                 #gpio-cells = <2>;
547         };
548 };
549
550 &mcpdm {
551         pinctrl-names = "default";
552         pinctrl-0 = <&mcpdm_pins>;
553         status = "okay";
554 };
555
556 &mcbsp1 {
557         pinctrl-names = "default";
558         pinctrl-0 = <&mcbsp1_pins>;
559         status = "okay";
560 };
561
562 &mcbsp2 {
563         pinctrl-names = "default";
564         pinctrl-0 = <&mcbsp2_pins>;
565         status = "okay";
566 };
567
568 &usbhshost {
569         port2-mode = "ehci-hsic";
570         port3-mode = "ehci-hsic";
571 };
572
573 &usbhsehci {
574         phys = <0 &hsusb2_phy &hsusb3_phy>;
575 };
576
577 &usb3 {
578         extcon = <&extcon_usb3>;
579         vbus-supply = <&smps10_out1_reg>;
580 };
581
582 &mcspi1 {
583
584 };
585
586 &mcspi2 {
587         pinctrl-names = "default";
588         pinctrl-0 = <&mcspi2_pins>;
589 };
590
591 &mcspi3 {
592         pinctrl-names = "default";
593         pinctrl-0 = <&mcspi3_pins>;
594 };
595
596 &mcspi4 {
597         pinctrl-names = "default";
598         pinctrl-0 = <&mcspi4_pins>;
599 };
600
601 &uart1 {
602         pinctrl-names = "default";
603         pinctrl-0 = <&uart1_pins>;
604 };
605
606 &uart3 {
607         pinctrl-names = "default";
608         pinctrl-0 = <&uart3_pins>;
609 };
610
611 &uart5 {
612         pinctrl-names = "default";
613         pinctrl-0 = <&uart5_pins>;
614 };
615
616 &cpu0 {
617         cpu0-supply = <&smps123_reg>;
618 };
619
620 &dss {
621         status = "ok";
622 };
623
624 &hdmi {
625         status = "ok";
626         vdda-supply = <&ldo4_reg>;
627
628         pinctrl-names = "default";
629         pinctrl-0 = <&dss_hdmi_pins>;
630
631         port {
632                 hdmi_out: endpoint {
633                         remote-endpoint = <&tpd12s015_in>;
634                 };
635         };
636 };