Linux Audio

Check our new training course

Loading...
v6.2
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
  4 * Copyright (C) 2014 Stefan Roese <sr@denx.de>
 
 
 
 
  5 */
  6/dts-v1/;
  7
  8#include "omap34xx.dtsi"
  9
 10/* Secure omaps have some devices inaccessible depending on the firmware */
 11&aes1_target {
 12	status = "disabled";
 13};
 14
 15&aes2_target {
 16	status = "disabled";
 17};
 18
 19&sham {
 20	status = "disabled";
 21};
 22
 23/ {
 24	cpus {
 25		cpu@0 {
 26			cpu0-supply = <&vcc>;
 27		};
 28	};
 29
 30	memory@80000000 {
 31		device_type = "memory";
 32		reg = <0x80000000 0x10000000>; /* 256 MB */
 33	};
 34
 35	/* HS USB Port 2 Power */
 36	hsusb2_power: hsusb2_power_reg {
 37		compatible = "regulator-fixed";
 38		regulator-name = "hsusb2_vbus";
 39		regulator-min-microvolt = <3300000>;
 40		regulator-max-microvolt = <3300000>;
 41		gpio = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;	/* GPIO LEDA */
 42		startup-delay-us = <70000>;
 43	};
 44
 45	/* HS USB Host PHY on PORT 2 */
 46	hsusb2_phy: hsusb2_phy {
 47		compatible = "usb-nop-xceiv";
 48		reset-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;	/* gpio_162 */
 49		vcc-supply = <&hsusb2_power>;
 50		#phy-cells = <0>;
 51	};
 52
 53	sound {
 54		compatible = "ti,omap-twl4030";
 55		ti,model = "omap3beagle";
 56
 57		/* McBSP2 is used for onboard sound, same as on beagle */
 58		ti,mcbsp = <&mcbsp2>;
 59	};
 60
 61	/* Regulator to enable/switch the vcc of the Wifi module */
 62	mmc2_sdio_poweron: regulator-mmc2-sdio-poweron {
 63		compatible = "regulator-fixed";
 64		regulator-name = "regulator-mmc2-sdio-poweron";
 65		regulator-min-microvolt = <3150000>;
 66		regulator-max-microvolt = <3150000>;
 67		gpio = <&gpio5 29 GPIO_ACTIVE_LOW>;		/* gpio_157 */
 
 68		startup-delay-us = <10000>;
 69	};
 70};
 71
 72&omap3_pmx_core {
 73	hsusbb2_pins: pinmux_hsusbb2_pins {
 74		pinctrl-single,pins = <
 75			OMAP3_CORE1_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */
 76			OMAP3_CORE1_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */
 77			OMAP3_CORE1_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */
 78			OMAP3_CORE1_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */
 79			OMAP3_CORE1_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */
 80			OMAP3_CORE1_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */
 81			OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi1_cs3.hsusb2_data2 */
 82			OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_clk.hsusb2_data7 */
 83			OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_simo.hsusb2_data4 */
 84			OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_somi.hsusb2_data5 */
 85			OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs0.hsusb2_data6 */
 86			OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs1.hsusb2_data3 */
 87		>;
 88	};
 89
 90	mmc1_pins: pinmux_mmc1_pins {
 91		pinctrl-single,pins = <
 92			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk.sdmmc1_clk */
 93			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd.sdmmc1_cmd */
 94			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat0.sdmmc1_dat0 */
 95			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */
 96			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */
 97			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */
 98			OMAP3_CORE1_IOPAD(0x2150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */
 99			OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */
100			OMAP3_CORE1_IOPAD(0x2154, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */
101			OMAP3_CORE1_IOPAD(0x2156, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */
102		>;
103	};
104
105	mmc2_pins: pinmux_mmc2_pins {
106		pinctrl-single,pins = <
107			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk.sdmmc2_clk */
108			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd.sdmmc2_cmd */
109			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat0.sdmmc2_dat0 */
110			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1.sdmmc2_dat1 */
111			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2.sdmmc2_dat2 */
112			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3.sdmmc2_dat3 */
113		>;
114	};
115
116	/* wlan GPIO output for WLAN_EN */
117	wlan_gpio: pinmux_wlan_gpio {
118		pinctrl-single,pins = <
119			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)	/* mcbsp1_fsr gpio_157 */
120		>;
121	};
122
123	uart3_pins: pinmux_uart3_pins {
124		pinctrl-single,pins = <
125			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
126			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)	/* uart3_tx_irtx.uart3_tx_irtx */
127		>;
128	};
129
130	i2c3_pins: pinmux_i2c3_pins {
131		pinctrl-single,pins = <
132			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_scl.i2c3_scl */
133			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_sda.i2c3_sda */
134		>;
135	};
136
137	mcspi1_pins: pinmux_mcspi1_pins {
138		pinctrl-single,pins = <
139			OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)	/* mcspi1_clk.mcspi1_clk */
140			OMAP3_CORE1_IOPAD(0x21ca, PIN_OUTPUT | MUX_MODE0)	/* mcspi1_simo.mcspi1_simo */
141			OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT_PULLUP | MUX_MODE0)	/* mcspi1_somi.mcspi1_somi */
142			OMAP3_CORE1_IOPAD(0x21ce, PIN_OUTPUT | MUX_MODE0)	/* mcspi1_cs0.mcspi1_cs0 */
143		>;
144	};
145
146	mcspi3_pins: pinmux_mcspi3_pins {
147		pinctrl-single,pins = <
148                        OMAP3_CORE1_IOPAD(0x25dc, PIN_OUTPUT | MUX_MODE1)	/* etk_d0.mcspi3_simo gpio14 INPUT | MODE1 */
149                        OMAP3_CORE1_IOPAD(0x25de, PIN_INPUT_PULLUP | MUX_MODE1)	/* etk_d1.mcspi3_somi gpio15 INPUT | MODE1 */
150                        OMAP3_CORE1_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE1)	/* etk_d2.mcspi3_cs0 gpio16 INPUT | MODE1 */
151                        OMAP3_CORE1_IOPAD(0x25e2, PIN_INPUT | MUX_MODE1)	/* etk_d3.mcspi3_clk gpio17 INPUT | MODE1 */
152		>;
153	};
154
155	mcbsp3_pins: pinmux_mcbsp3_pins {
156		pinctrl-single,pins = <
157			OMAP3_CORE1_IOPAD(0x216c, PIN_OUTPUT | MUX_MODE0)	/* mcbsp3_dx.uart2_cts */
158			OMAP3_CORE1_IOPAD(0x216e, PIN_INPUT | MUX_MODE0)	/* mcbsp3_dr.uart2_rts */
159			OMAP3_CORE1_IOPAD(0x2170, PIN_INPUT | MUX_MODE0)	/* mcbsp3_clk.uart2_tx */
160			OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE0)	/* mcbsp3_fsx.uart2_rx */
161		>;
162	};
163};
164
165/* McBSP1: mux'ed with GPIO158 as clock for HA-DSP */
166&mcbsp1 {
167	status = "disabled";
168};
169
170&mcbsp2 {
171	status = "okay";
172};
173
174&i2c1 {
175	clock-frequency = <2600000>;
176
177	twl: twl@48 {
178		reg = <0x48>;
179		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
180		interrupt-parent = <&intc>;
181
182		twl_audio: audio {
183			compatible = "ti,twl4030-audio";
184			codec {
185			};
186		};
187	};
188};
189
190&i2c3 {
191	clock-frequency = <100000>;
192
193	pinctrl-names = "default";
194	pinctrl-0 = <&i2c3_pins>;
195};
196
197&mcspi1 {
198	pinctrl-names = "default";
199	pinctrl-0 = <&mcspi1_pins>;
 
 
 
 
 
 
 
200};
201
202&mcspi3 {
203	pinctrl-names = "default";
204	pinctrl-0 = <&mcspi3_pins>;
 
 
 
 
 
 
 
205};
206
207#include "twl4030.dtsi"
208#include "twl4030_omap3.dtsi"
209
210&mmc1 {
211	pinctrl-names = "default";
212	pinctrl-0 = <&mmc1_pins>;
213	vmmc-supply = <&vmmc1>;
214	vqmmc-supply = <&vsim>;
215	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
216	bus-width = <8>;
217};
218
219// WiFi (Marvell 88W8686) on MMC2/SDIO
220&mmc2 {
221	pinctrl-names = "default";
222	pinctrl-0 = <&mmc2_pins>;
223	vmmc-supply = <&mmc2_sdio_poweron>;
224	non-removable;
225	bus-width = <4>;
226	cap-power-off-card;
227};
228
229&mmc3 {
230	status = "disabled";
231};
232
233&usbhshost {
234	port2-mode = "ehci-phy";
235};
236
237&usbhsehci {
238	phys = <0 &hsusb2_phy>;
239};
240
241&twl_gpio {
242	ti,use-leds;
243	/* pullups: BIT(1) */
244	ti,pullups = <0x000002>;
245	/*
246	 * pulldowns:
247	 * BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
248	 * BIT(15), BIT(16), BIT(17)
249	 */
250	ti,pulldowns = <0x03a1c4>;
251};
252
253&uart3 {
254	pinctrl-names = "default";
255	pinctrl-0 = <&uart3_pins>;
256};
257
258&mcbsp3 {
259	status = "okay";
260	pinctrl-names = "default";
261	pinctrl-0 = <&mcbsp3_pins>;
262};
263
264&gpmc {
265	ranges = <0 0 0x30000000 0x01000000>;	/* CS0: 16MB for NAND */
266
267	nand@0,0 {
268		compatible = "ti,omap2-nand";
269		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
270		interrupt-parent = <&gpmc>;
271		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
272			     <1 IRQ_TYPE_NONE>;	/* termcount */
273		nand-bus-width = <16>;
274		gpmc,device-width = <2>;	/* GPMC_DEVWIDTH_16BIT */
275		ti,nand-ecc-opt = "sw";
276
277		gpmc,cs-on-ns = <0>;
278		gpmc,cs-rd-off-ns = <36>;
279		gpmc,cs-wr-off-ns = <36>;
280		gpmc,adv-on-ns = <6>;
281		gpmc,adv-rd-off-ns = <24>;
282		gpmc,adv-wr-off-ns = <36>;
283		gpmc,oe-on-ns = <6>;
284		gpmc,oe-off-ns = <48>;
285		gpmc,we-on-ns = <6>;
286		gpmc,we-off-ns = <30>;
287		gpmc,rd-cycle-ns = <72>;
288		gpmc,wr-cycle-ns = <72>;
289		gpmc,access-ns = <54>;
290		gpmc,wr-access-ns = <30>;
291
292		#address-cells = <1>;
293		#size-cells = <1>;
294
295		x-loader@0 {
296			label = "X-Loader";
297			reg = <0 0x80000>;
298		};
299
300		bootloaders@80000 {
301			label = "U-Boot";
302			reg = <0x80000 0x1e0000>;
303		};
304
305		bootloaders_env@260000 {
306			label = "U-Boot Env";
307			reg = <0x260000 0x20000>;
308		};
309
310		kernel@280000 {
311			label = "Kernel";
312			reg = <0x280000 0x400000>;
313		};
314
315		filesystem@680000 {
316			label = "File System";
317			reg = <0x680000 0xf980000>;
318		};
319	};
320};
321
322&usb_otg_hs {
323	interface-type = <0>;
324	usb-phy = <&usb2_phy>;
325	phys = <&usb2_phy>;
326	phy-names = "usb2-phy";
327	mode = <3>;
328	power = <50>;
329};
330
331&vaux2 {
332	regulator-name = "vdd_ehci";
333	regulator-min-microvolt = <1800000>;
334	regulator-max-microvolt = <1800000>;
335	regulator-always-on;
336};
v4.10.11
 
  1/*
  2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
  3 * Copyright (C) 2014 Stefan Roese <sr@denx.de>
  4 *
  5 * This program is free software; you can redistribute it and/or modify
  6 * it under the terms of the GNU General Public License version 2 as
  7 * published by the Free Software Foundation.
  8 */
  9/dts-v1/;
 10
 11#include "omap34xx.dtsi"
 12
 13/* Secure omaps have some devices inaccessible depending on the firmware */
 14&aes {
 
 
 
 
 15	status = "disabled";
 16};
 17
 18&sham {
 19	status = "disabled";
 20};
 21
 22/ {
 23	cpus {
 24		cpu@0 {
 25			cpu0-supply = <&vcc>;
 26		};
 27	};
 28
 29	memory@80000000 {
 30		device_type = "memory";
 31		reg = <0x80000000 0x10000000>; /* 256 MB */
 32	};
 33
 34	/* HS USB Port 2 Power */
 35	hsusb2_power: hsusb2_power_reg {
 36		compatible = "regulator-fixed";
 37		regulator-name = "hsusb2_vbus";
 38		regulator-min-microvolt = <3300000>;
 39		regulator-max-microvolt = <3300000>;
 40		gpio = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;	/* GPIO LEDA */
 41		startup-delay-us = <70000>;
 42	};
 43
 44	/* HS USB Host PHY on PORT 2 */
 45	hsusb2_phy: hsusb2_phy {
 46		compatible = "usb-nop-xceiv";
 47		reset-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;	/* gpio_162 */
 48		vcc-supply = <&hsusb2_power>;
 
 49	};
 50
 51	sound {
 52		compatible = "ti,omap-twl4030";
 53		ti,model = "omap3beagle";
 54
 55		/* McBSP2 is used for onboard sound, same as on beagle */
 56		ti,mcbsp = <&mcbsp2>;
 57	};
 58
 59	/* Regulator to enable/switch the vcc of the Wifi module */
 60	mmc2_sdio_poweron: regulator-mmc2-sdio-poweron {
 61		compatible = "regulator-fixed";
 62		regulator-name = "regulator-mmc2-sdio-poweron";
 63		regulator-min-microvolt = <3150000>;
 64		regulator-max-microvolt = <3150000>;
 65		gpio = <&gpio5 29 GPIO_ACTIVE_LOW>;		/* gpio_157 */
 66		enable-active-low;
 67		startup-delay-us = <10000>;
 68	};
 69};
 70
 71&omap3_pmx_core {
 72	hsusbb2_pins: pinmux_hsusbb2_pins {
 73		pinctrl-single,pins = <
 74			OMAP3_CORE1_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */
 75			OMAP3_CORE1_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */
 76			OMAP3_CORE1_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */
 77			OMAP3_CORE1_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */
 78			OMAP3_CORE1_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */
 79			OMAP3_CORE1_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */
 80			OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi1_cs3.hsusb2_data2 */
 81			OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_clk.hsusb2_data7 */
 82			OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_simo.hsusb2_data4 */
 83			OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_somi.hsusb2_data5 */
 84			OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs0.hsusb2_data6 */
 85			OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs1.hsusb2_data3 */
 86		>;
 87	};
 88
 89	mmc1_pins: pinmux_mmc1_pins {
 90		pinctrl-single,pins = <
 91			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk.sdmmc1_clk */
 92			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd.sdmmc1_cmd */
 93			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat0.sdmmc1_dat0 */
 94			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */
 95			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */
 96			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */
 97			OMAP3_CORE1_IOPAD(0x2150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */
 98			OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */
 99			OMAP3_CORE1_IOPAD(0x2154, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */
100			OMAP3_CORE1_IOPAD(0x2156, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */
101		>;
102	};
103
104	mmc2_pins: pinmux_mmc2_pins {
105		pinctrl-single,pins = <
106			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk.sdmmc2_clk */
107			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd.sdmmc2_cmd */
108			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat0.sdmmc2_dat0 */
109			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1.sdmmc2_dat1 */
110			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2.sdmmc2_dat2 */
111			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3.sdmmc2_dat3 */
112		>;
113	};
114
115	/* wlan GPIO output for WLAN_EN */
116	wlan_gpio: pinmux_wlan_gpio {
117		pinctrl-single,pins = <
118			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)	/* mcbsp1_fsr gpio_157 */
119		>;
120	};
121
122	uart3_pins: pinmux_uart3_pins {
123		pinctrl-single,pins = <
124			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
125			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)	/* uart3_tx_irtx.uart3_tx_irtx */
126		>;
127	};
128
129	i2c3_pins: pinmux_i2c3_pins {
130		pinctrl-single,pins = <
131			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_scl.i2c3_scl */
132			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_sda.i2c3_sda */
133		>;
134	};
135
136	mcspi1_pins: pinmux_mcspi1_pins {
137		pinctrl-single,pins = <
138			OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)	/* mcspi1_clk.mcspi1_clk */
139			OMAP3_CORE1_IOPAD(0x21ca, PIN_OUTPUT | MUX_MODE0)	/* mcspi1_simo.mcspi1_simo */
140			OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT_PULLUP | MUX_MODE0)	/* mcspi1_somi.mcspi1_somi */
141			OMAP3_CORE1_IOPAD(0x21ce, PIN_OUTPUT | MUX_MODE0)	/* mcspi1_cs0.mcspi1_cs0 */
142		>;
143	};
144
145	mcspi3_pins: pinmux_mcspi3_pins {
146		pinctrl-single,pins = <
147                        OMAP3_CORE1_IOPAD(0x25dc, PIN_OUTPUT | MUX_MODE1)	/* etk_d0.mcspi3_simo gpio14 INPUT | MODE1 */
148                        OMAP3_CORE1_IOPAD(0x25de, PIN_INPUT_PULLUP | MUX_MODE1)	/* etk_d1.mcspi3_somi gpio15 INPUT | MODE1 */
149                        OMAP3_CORE1_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE1)	/* etk_d2.mcspi3_cs0 gpio16 INPUT | MODE1 */
150                        OMAP3_CORE1_IOPAD(0x25e2, PIN_INPUT | MUX_MODE1)	/* etk_d3.mcspi3_clk gpio17 INPUT | MODE1 */
151		>;
152	};
153
154	mcbsp3_pins: pinmux_mcbsp3_pins {
155		pinctrl-single,pins = <
156			OMAP3_CORE1_IOPAD(0x216c, PIN_OUTPUT | MUX_MODE0)	/* mcbsp3_dx.uart2_cts */
157			OMAP3_CORE1_IOPAD(0x216e, PIN_INPUT | MUX_MODE0)	/* mcbsp3_dr.uart2_rts */
158			OMAP3_CORE1_IOPAD(0x2170, PIN_INPUT | MUX_MODE0)	/* mcbsp3_clk.uart2_tx */
159			OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE0)	/* mcbsp3_fsx.uart2_rx */
160		>;
161	};
162};
163
164/* McBSP1: mux'ed with GPIO158 as clock for HA-DSP */
165&mcbsp1 {
166	status = "disabled";
167};
168
169&mcbsp2 {
170	status = "okay";
171};
172
173&i2c1 {
174	clock-frequency = <2600000>;
175
176	twl: twl@48 {
177		reg = <0x48>;
178		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
179		interrupt-parent = <&intc>;
180
181		twl_audio: audio {
182			compatible = "ti,twl4030-audio";
183			codec {
184			};
185		};
186	};
187};
188
189&i2c3 {
190	clock-frequency = <100000>;
191
192	pinctrl-names = "default";
193	pinctrl-0 = <&i2c3_pins>;
194};
195
196&mcspi1 {
197	pinctrl-names = "default";
198	pinctrl-0 = <&mcspi1_pins>;
199
200	spidev@0 {
201		compatible = "spidev";
202		spi-max-frequency = <48000000>;
203		reg = <0>;
204		spi-cpha;
205	};
206};
207
208&mcspi3 {
209	pinctrl-names = "default";
210	pinctrl-0 = <&mcspi3_pins>;
211
212	spidev@0 {
213		compatible = "spidev";
214		spi-max-frequency = <48000000>;
215		reg = <0>;
216		spi-cpha;
217	};
218};
219
220#include "twl4030.dtsi"
221#include "twl4030_omap3.dtsi"
222
223&mmc1 {
224	pinctrl-names = "default";
225	pinctrl-0 = <&mmc1_pins>;
226	vmmc-supply = <&vmmc1>;
227	vmmc_aux-supply = <&vsim>;
228	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_HIGH>;
229	bus-width = <8>;
230};
231
232// WiFi (Marvell 88W8686) on MMC2/SDIO
233&mmc2 {
234	pinctrl-names = "default";
235	pinctrl-0 = <&mmc2_pins>;
236	vmmc-supply = <&mmc2_sdio_poweron>;
237	non-removable;
238	bus-width = <4>;
239	cap-power-off-card;
240};
241
242&mmc3 {
243	status = "disabled";
244};
245
246&usbhshost {
247	port2-mode = "ehci-phy";
248};
249
250&usbhsehci {
251	phys = <0 &hsusb2_phy>;
252};
253
254&twl_gpio {
255	ti,use-leds;
256	/* pullups: BIT(1) */
257	ti,pullups = <0x000002>;
258	/*
259	 * pulldowns:
260	 * BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
261	 * BIT(15), BIT(16), BIT(17)
262	 */
263	ti,pulldowns = <0x03a1c4>;
264};
265
266&uart3 {
267	pinctrl-names = "default";
268	pinctrl-0 = <&uart3_pins>;
269};
270
271&mcbsp3 {
272	status = "okay";
273	pinctrl-names = "default";
274	pinctrl-0 = <&mcbsp3_pins>;
275};
276
277&gpmc {
278	ranges = <0 0 0x30000000 0x01000000>;	/* CS0: 16MB for NAND */
279
280	nand@0,0 {
281		compatible = "ti,omap2-nand";
282		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
283		interrupt-parent = <&gpmc>;
284		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
285			     <1 IRQ_TYPE_NONE>;	/* termcount */
286		nand-bus-width = <16>;
287		gpmc,device-width = <2>;	/* GPMC_DEVWIDTH_16BIT */
288		ti,nand-ecc-opt = "sw";
289
290		gpmc,cs-on-ns = <0>;
291		gpmc,cs-rd-off-ns = <36>;
292		gpmc,cs-wr-off-ns = <36>;
293		gpmc,adv-on-ns = <6>;
294		gpmc,adv-rd-off-ns = <24>;
295		gpmc,adv-wr-off-ns = <36>;
296		gpmc,oe-on-ns = <6>;
297		gpmc,oe-off-ns = <48>;
298		gpmc,we-on-ns = <6>;
299		gpmc,we-off-ns = <30>;
300		gpmc,rd-cycle-ns = <72>;
301		gpmc,wr-cycle-ns = <72>;
302		gpmc,access-ns = <54>;
303		gpmc,wr-access-ns = <30>;
304
305		#address-cells = <1>;
306		#size-cells = <1>;
307
308		x-loader@0 {
309			label = "X-Loader";
310			reg = <0 0x80000>;
311		};
312
313		bootloaders@80000 {
314			label = "U-Boot";
315			reg = <0x80000 0x1e0000>;
316		};
317
318		bootloaders_env@260000 {
319			label = "U-Boot Env";
320			reg = <0x260000 0x20000>;
321		};
322
323		kernel@280000 {
324			label = "Kernel";
325			reg = <0x280000 0x400000>;
326		};
327
328		filesystem@680000 {
329			label = "File System";
330			reg = <0x680000 0xf980000>;
331		};
332	};
333};
334
335&usb_otg_hs {
336	interface-type = <0>;
337	usb-phy = <&usb2_phy>;
338	phys = <&usb2_phy>;
339	phy-names = "usb2-phy";
340	mode = <3>;
341	power = <50>;
342};
343
344&vaux2 {
345	regulator-name = "vdd_ehci";
346	regulator-min-microvolt = <1800000>;
347	regulator-max-microvolt = <1800000>;
348	regulator-always-on;
349};