• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2011 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 "omap36xx.dtsi"
11
12/ {
13	model = "TI OMAP3 BeagleBoard xM";
14	compatible = "ti,omap3-beagle-xm", "ti,omap36xx", "ti,omap3";
15
16	cpus {
17		cpu@0 {
18			cpu0-supply = <&vcc>;
19		};
20	};
21
22	memory@80000000 {
23		device_type = "memory";
24		reg = <0x80000000 0x20000000>; /* 512 MB */
25	};
26
27	aliases {
28		display0 = &dvi0;
29		display1 = &tv0;
30		ethernet = &ethernet;
31	};
32
33	leds {
34		compatible = "gpio-leds";
35
36		heartbeat {
37			label = "beagleboard::usr0";
38			gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */
39			linux,default-trigger = "heartbeat";
40		};
41
42		mmc {
43			label = "beagleboard::usr1";
44			gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */
45			linux,default-trigger = "mmc0";
46		};
47	};
48
49	pwmleds {
50		compatible = "pwm-leds";
51
52		pmu_stat {
53			label = "beagleboard::pmu_stat";
54			pwms = <&twl_pwmled 1 7812500>;
55			max-brightness = <127>;
56		};
57	};
58
59	sound {
60		compatible = "ti,omap-twl4030";
61		ti,model = "omap3beagle";
62
63		ti,mcbsp = <&mcbsp2>;
64	};
65
66	gpio_keys {
67		compatible = "gpio-keys";
68
69		user {
70			label = "user";
71			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
72			linux,code = <0x114>;
73			wakeup-source;
74		};
75
76	};
77
78	/* HS USB Port 2 Power */
79	hsusb2_power: hsusb2_power_reg {
80		compatible = "regulator-fixed";
81		regulator-name = "hsusb2_vbus";
82		regulator-min-microvolt = <3300000>;
83		regulator-max-microvolt = <3300000>;
84		gpio = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;	/* GPIO LEDA */
85		startup-delay-us = <70000>;
86	};
87
88	/* HS USB Host PHY on PORT 2 */
89	hsusb2_phy: hsusb2_phy {
90		compatible = "usb-nop-xceiv";
91		reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */
92		vcc-supply = <&hsusb2_power>;
93	};
94
95	tfp410: encoder0 {
96		compatible = "ti,tfp410";
97		powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>;
98
99		/* XXX pinctrl from twl */
100
101		ports {
102			#address-cells = <1>;
103			#size-cells = <0>;
104
105			port@0 {
106				reg = <0>;
107
108				tfp410_in: endpoint {
109					remote-endpoint = <&dpi_out>;
110				};
111			};
112
113			port@1 {
114				reg = <1>;
115
116				tfp410_out: endpoint {
117					remote-endpoint = <&dvi_connector_in>;
118				};
119			};
120		};
121	};
122
123	dvi0: connector0 {
124		compatible = "dvi-connector";
125		label = "dvi";
126
127		digital;
128
129		ddc-i2c-bus = <&i2c3>;
130
131		port {
132			dvi_connector_in: endpoint {
133				remote-endpoint = <&tfp410_out>;
134			};
135		};
136	};
137
138	tv0: connector1 {
139		compatible = "svideo-connector";
140		label = "tv";
141
142		port {
143			tv_connector_in: endpoint {
144				remote-endpoint = <&venc_out>;
145			};
146		};
147	};
148
149	etb@5401b000 {
150		compatible = "arm,coresight-etb10", "arm,primecell";
151		reg = <0x5401b000 0x1000>;
152
153		clocks = <&emu_src_ck>;
154		clock-names = "apb_pclk";
155		port {
156			etb_in: endpoint {
157				slave-mode;
158				remote-endpoint = <&etm_out>;
159			};
160		};
161	};
162
163	etm@54010000 {
164		compatible = "arm,coresight-etm3x", "arm,primecell";
165		reg = <0x54010000 0x1000>;
166
167		clocks = <&emu_src_ck>;
168		clock-names = "apb_pclk";
169		port {
170			etm_out: endpoint {
171				remote-endpoint = <&etb_in>;
172			};
173		};
174	};
175};
176
177&omap3_pmx_wkup {
178	gpio1_pins: pinmux_gpio1_pins {
179		pinctrl-single,pins = <
180			OMAP3_WKUP_IOPAD(0x2a0e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */
181		>;
182	};
183
184	dss_dpi_pins2: pinmux_dss_dpi_pins1 {
185		pinctrl-single,pins = <
186			OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3)   /* sys_boot0.dss_data18 */
187			OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3)   /* sys_boot1.dss_data19 */
188			OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3)   /* sys_boot3.dss_data20 */
189			OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3)   /* sys_boot4.dss_data21 */
190			OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3)   /* sys_boot5.dss_data22 */
191			OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3)   /* sys_boot6.dss_data23 */
192		>;
193	};
194};
195
196&omap3_pmx_core {
197	pinctrl-names = "default";
198	pinctrl-0 = <
199			&hsusb2_pins
200	>;
201
202	uart3_pins: pinmux_uart3_pins {
203		pinctrl-single,pins = <
204			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)	/* uart3_rx_irrx.uart3_rx_irrx */
205			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)	/* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
206		>;
207	};
208
209	hsusb2_pins: pinmux_hsusb2_pins {
210		pinctrl-single,pins = <
211			OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi1_cs3.hsusb2_data2 */
212			OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_clk.hsusb2_data7 */
213			OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_simo.hsusb2_data4 */
214			OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_somi.hsusb2_data5 */
215			OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs0.hsusb2_data6 */
216			OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs1.hsusb2_data3 */
217		>;
218	};
219
220	dss_dpi_pins1: pinmux_dss_dpi_pins2 {
221		pinctrl-single,pins = <
222			OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
223			OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
224			OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */
225			OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */
226
227			OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */
228			OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */
229			OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */
230			OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */
231			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */
232			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */
233			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */
234			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */
235			OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */
236			OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */
237			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */
238			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */
239
240			OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3)   /* dss_data18.dss_data0 */
241			OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3)   /* dss_data19.dss_data1 */
242			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3)   /* dss_data20.dss_data2 */
243			OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3)   /* dss_data21.dss_data3 */
244			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3)   /* dss_data22.dss_data4 */
245			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3)   /* dss_data23.dss_data5 */
246		>;
247	};
248};
249
250&omap3_pmx_core2 {
251	pinctrl-names = "default";
252	pinctrl-0 = <
253			&hsusb2_2_pins
254	>;
255
256	hsusb2_2_pins: pinmux_hsusb2_2_pins {
257		pinctrl-single,pins = <
258			OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */
259			OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */
260			OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */
261			OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */
262			OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */
263			OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */
264		>;
265	};
266};
267
268&i2c1 {
269	clock-frequency = <2600000>;
270
271	twl: twl@48 {
272		reg = <0x48>;
273		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
274		interrupt-parent = <&intc>;
275
276		twl_audio: audio {
277			compatible = "ti,twl4030-audio";
278			codec {
279			};
280		};
281
282		twl_power: power {
283			compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
284			ti,use_poweroff;
285		};
286	};
287};
288
289#include "twl4030.dtsi"
290#include "twl4030_omap3.dtsi"
291
292&i2c2 {
293	clock-frequency = <400000>;
294};
295
296&i2c3 {
297	clock-frequency = <100000>;
298};
299
300&mmc1 {
301	vmmc-supply = <&vmmc1>;
302	vqmmc-supply = <&vsim>;
303	bus-width = <8>;
304};
305
306&mmc2 {
307	status = "disabled";
308};
309
310&mmc3 {
311	status = "disabled";
312};
313
314&twl_gpio {
315	ti,use-leds;
316	/* pullups: BIT(1) */
317	ti,pullups = <0x000002>;
318	/*
319	 * pulldowns:
320	 * BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
321	 * BIT(15), BIT(16), BIT(17)
322	 */
323	ti,pulldowns = <0x03a1c4>;
324};
325
326&usb_otg_hs {
327	interface-type = <0>;
328	usb-phy = <&usb2_phy>;
329	phys = <&usb2_phy>;
330	phy-names = "usb2-phy";
331	mode = <3>;
332	power = <50>;
333};
334
335&uart3 {
336	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
337	pinctrl-names = "default";
338	pinctrl-0 = <&uart3_pins>;
339};
340
341&gpio1 {
342	pinctrl-names = "default";
343	pinctrl-0 = <&gpio1_pins>;
344};
345
346&usbhshost {
347	port2-mode = "ehci-phy";
348};
349
350&usbhsehci {
351	phys = <0 &hsusb2_phy>;
352
353	#address-cells = <1>;
354	#size-cells = <0>;
355
356	hub@2 {
357		compatible = "usb424,9514";
358		reg = <2>;
359		#address-cells = <1>;
360		#size-cells = <0>;
361
362		ethernet: usbether@1 {
363			compatible = "usb424,ec00";
364			reg = <1>;
365		};
366	};
367};
368
369&vaux2 {
370	regulator-name = "usb_1v8";
371	regulator-min-microvolt = <1800000>;
372	regulator-max-microvolt = <1800000>;
373	regulator-always-on;
374};
375
376&mcbsp2 {
377	status = "okay";
378};
379
380&dss {
381	status = "ok";
382
383	pinctrl-names = "default";
384	pinctrl-0 = <
385		&dss_dpi_pins1
386		&dss_dpi_pins2
387	>;
388
389	port {
390		dpi_out: endpoint {
391			remote-endpoint = <&tfp410_in>;
392			data-lines = <24>;
393		};
394	};
395};
396
397&venc {
398	status = "ok";
399
400	vdda-supply = <&vdac>;
401
402	port {
403		venc_out: endpoint {
404			remote-endpoint = <&tv_connector_in>;
405			ti,channels = <2>;
406		};
407	};
408};
409