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