Merge branch 'elan-i2c' into next
[linux-2.6-microblaze.git] / arch / arm / boot / dts / omap4-duovero.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group
4  */
5
6 #include "omap443x.dtsi"
7 #include "omap4-mcpdm.dtsi"
8
9 / {
10         model = "Gumstix Duovero";
11         compatible = "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
12
13         chosen {
14                 stdout-path = &uart3;
15         };
16
17         memory@80000000 {
18                 device_type = "memory";
19                 reg = <0x80000000 0x40000000>; /* 1 GB */
20         };
21
22         sound {
23                 compatible = "ti,abe-twl6040";
24                 ti,model = "DuoVero";
25
26                 ti,mclk-freq = <38400000>;
27
28                 ti,mcpdm = <&mcpdm>;
29
30                 ti,twl6040 = <&twl6040>;
31
32                 /* Audio routing */
33                 ti,audio-routing =
34                         "Headset Stereophone", "HSOL",
35                         "Headset Stereophone", "HSOR",
36                         "HSMIC", "Headset Mic",
37                         "Headset Mic", "Headset Mic Bias";
38         };
39
40         /* HS USB Host PHY on PORT 1 */
41         hsusb1_phy: hsusb1_phy {
42                 compatible = "usb-nop-xceiv";
43                 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;      /* gpio_62 */
44                 #phy-cells = <0>;
45
46                 pinctrl-names = "default";
47                 pinctrl-0 = <&hsusb1phy_pins>;
48
49                 clocks = <&auxclk3_ck>;
50                 clock-names = "main_clk";
51                 clock-frequency = <19200000>;
52         };
53
54         /* regulator for w2cbw0015 on sdio5 */
55         w2cbw0015_vmmc: w2cbw0015_vmmc {
56                 pinctrl-names = "default";
57                 pinctrl-0 = <&w2cbw0015_pins>;
58                 compatible = "regulator-fixed";
59                 regulator-name = "w2cbw0015";
60                 regulator-min-microvolt = <3000000>;
61                 regulator-max-microvolt = <3000000>;
62                 gpio = <&gpio2 11 GPIO_ACTIVE_LOW>;             /* gpio_43 */
63                 startup-delay-us = <70000>;
64                 enable-active-high;
65                 regulator-boot-on;
66         };
67 };
68
69 &omap4_pmx_core {
70         pinctrl-names = "default";
71         pinctrl-0 = <
72                         &twl6040_pins
73                         &hsusbb1_pins
74         >;
75
76         twl6040_pins: pinmux_twl6040_pins {
77                 pinctrl-single,pins = <
78                         OMAP4_IOPAD(0x166, PIN_OUTPUT | MUX_MODE3)              /* usbb2_ulpitll_nxt.gpio_160 */
79                         OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0)               /* sys_nirq2.sys_nirq2 */
80                 >;
81         };
82
83         mcbsp1_pins: pinmux_mcbsp1_pins {
84                 pinctrl-single,pins = <
85                         OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0)               /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
86                         OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0)      /* abe_mcbsp1_dr.abe_mcbsp1_dr */
87                         OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0)     /* abe_mcbsp1_dx.abe_mcbsp1_dx */
88                         OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0)               /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
89                 >;
90         };
91
92         hsusbb1_pins: pinmux_hsusbb1_pins {
93                 pinctrl-single,pins = <
94                         OMAP4_IOPAD(0x0c2, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
95                         OMAP4_IOPAD(0x0c4, PIN_OUTPUT | MUX_MODE4)              /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
96                         OMAP4_IOPAD(0x0c6, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
97                         OMAP4_IOPAD(0x0c8, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
98                         OMAP4_IOPAD(0x0ca, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
99                         OMAP4_IOPAD(0x0cc, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
100                         OMAP4_IOPAD(0x0ce, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
101                         OMAP4_IOPAD(0x0d0, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
102                         OMAP4_IOPAD(0x0d2, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
103                         OMAP4_IOPAD(0x0d4, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
104                         OMAP4_IOPAD(0x0d6, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
105                         OMAP4_IOPAD(0x0d8, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
106                 >;
107         };
108
109         hsusb1phy_pins: pinmux_hsusb1phy_pins {
110                 pinctrl-single,pins = <
111                         OMAP4_IOPAD(0x08c, PIN_OUTPUT | MUX_MODE3)              /* gpmc_wait1.gpio_62 */
112                 >;
113         };
114
115         w2cbw0015_pins: pinmux_w2cbw0015_pins {
116                 pinctrl-single,pins = <
117                         OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3)              /* gpmc_a19.gpio_43 */
118                         OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)               /* gpmc_ncs3.gpio_53 */
119                 >;
120         };
121
122         i2c1_pins: pinmux_i2c1_pins {
123                 pinctrl-single,pins = <
124                         OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c1_scl */
125                         OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c1_sda */
126                 >;
127         };
128
129         i2c4_pins: pinmux_i2c4_pins {
130                 pinctrl-single,pins = <
131                         OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c4_scl */
132                         OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c4_sda */
133                 >;
134         };
135
136         mmc1_pins: pinmux_mmc1_pins {
137                 pinctrl-single,pins = <
138                         OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_clk */
139                         OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc1_cmd */
140                         OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc1_dat0 */
141                         OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat1 */
142                         OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat2 */
143                         OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat3 */
144                 >;
145         };
146
147         mmc5_pins: pinmux_mmc5_pins {
148                 pinctrl-single,pins = <
149                         OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_clk */
150                         OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc5_cmd */
151                         OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc5_dat0 */
152                         OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat1 */
153                         OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat2 */
154                         OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat3 */
155                 >;
156         };
157 };
158
159 /* PMIC */
160 &i2c1 {
161         pinctrl-names = "default";
162         pinctrl-0 = <&i2c1_pins>;
163
164         clock-frequency = <400000>;
165
166         twl: twl@48 {
167                 reg = <0x48>;
168                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;           /* IRQ_SYS_1N cascaded to gic */
169         };
170
171         twl6040: twl@4b {
172                 compatible = "ti,twl6040";
173                 #clock-cells = <0>;
174                 reg = <0x4b>;
175                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;         /* IRQ_SYS_2N cascaded to gic */
176                 ti,audpwron-gpio = <&gpio6 0 GPIO_ACTIVE_HIGH>;         /* gpio_160 */
177
178                 vio-supply = <&v1v8>;
179                 v2v1-supply = <&v2v1>;
180                 enable-active-high;
181         };
182 };
183
184 #include "twl6030.dtsi"
185 #include "twl6030_omap4.dtsi"
186
187 /* on-board bluetooth / WiFi module */
188 &i2c4 {
189         pinctrl-names = "default";
190         pinctrl-0 = <&i2c4_pins>;
191
192         clock-frequency = <400000>;
193 };
194
195 &mcbsp1 {
196         pinctrl-names = "default";
197         pinctrl-0 = <&mcbsp1_pins>;
198         status = "okay";
199 };
200
201 &mmc1 {
202         pinctrl-names = "default";
203         pinctrl-0 = <&mmc1_pins>;
204
205         vmmc-supply = <&vmmc>;
206         ti,bus-width = <4>;
207         ti,non-removable;               /* FIXME: use PMIC_MMC detect */
208 };
209
210 &mmc2 {
211         status = "disabled";
212 };
213
214 /* mmc3 is available to the expansion board */
215
216 &mmc4 {
217         status = "disabled";
218 };
219
220 /* on-board WiFi module */
221 &mmc5 {
222         pinctrl-names = "default";
223         pinctrl-0 = <&mmc5_pins>;
224
225         vmmc-supply = <&w2cbw0015_vmmc>;
226         ti,bus-width = <4>;
227         ti,non-removable;
228         cap-power-off-card;
229         keep-power-in-suspend;
230 };
231
232 &twl_usb_comparator {
233         usb-supply = <&vusb>;
234 };
235
236 &usb_otg_hs {
237         interface-type = <1>;
238         mode = <3>;
239         power = <50>;
240 };
241
242 &usbhshost {
243         port1-mode = "ehci-phy";
244 };
245
246 &usbhsehci {
247         phys = <&hsusb1_phy>;
248 };
249