1/*
2 * Device Tree for DA850 EVM board
3 *
4 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
5 *
6 * This program is free software; you can redistribute  it and/or modify it
7 * under  the terms of  the GNU General  Public License as published by the
8 * Free Software Foundation, version 2.
9 */
10/dts-v1/;
11#include "da850.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13
14/ {
15	compatible = "ti,da850-evm", "ti,da850";
16	model = "DA850/AM1808/OMAP-L138 EVM";
17
18	chosen {
19		stdout-path = &serial2;
20	};
21
22	aliases {
23		serial0 = &serial0;
24		serial1 = &serial1;
25		serial2 = &serial2;
26		ethernet0 = &eth0;
27		spi0 = &spi1;
28	};
29
30	backlight: backlight-pwm {
31		pinctrl-names = "default";
32		pinctrl-0 = <&ecap2_pins>;
33		power-supply = <&backlight_lcd>;
34		compatible = "pwm-backlight";
35		/*
36		 * The PWM here corresponds to production hardware. The
37		 * schematic needs to be 1015171 (15 March 2010), Rev A
38		 * or newer.
39		 */
40		pwms = <&ecap2 0 50000 0>;
41		brightness-levels = <0 10 20 30 40 50 60 70 80 90 99>;
42		default-brightness-level = <7>;
43	};
44
45	panel {
46		compatible = "ti,tilcdc,panel";
47		pinctrl-names = "default";
48		pinctrl-0 = <&lcd_pins>;
49		/*
50		 * The vpif and the LCD are mutually exclusive.
51		 * To enable VPIF, change the status below to 'disabled' then
52		 * then change the status of the vpif below to 'okay'
53		 */
54		status = "okay";
55		enable-gpios = <&gpio 40 GPIO_ACTIVE_HIGH>; /* lcd_panel_pwr */
56
57		panel-info {
58			ac-bias		= <255>;
59			ac-bias-intrpt	= <0>;
60			dma-burst-sz	= <16>;
61			bpp		= <16>;
62			fdd		= <0x80>;
63			sync-edge	= <0>;
64			sync-ctrl	= <1>;
65			raster-order	= <0>;
66			fifo-th		= <0>;
67		};
68
69		display-timings {
70			native-mode = <&timing0>;
71			timing0: 480x272 {
72				clock-frequency = <9000000>;
73				hactive = <480>;
74				vactive = <272>;
75				hfront-porch = <3>;
76				hback-porch = <2>;
77				hsync-len = <42>;
78				vback-porch = <3>;
79				vfront-porch = <4>;
80				vsync-len = <11>;
81				hsync-active = <0>;
82				vsync-active = <0>;
83				de-active = <1>;
84				pixelclk-active = <1>;
85			};
86		};
87	};
88
89	vbat: fixedregulator0 {
90		compatible = "regulator-fixed";
91		regulator-name = "vbat";
92		regulator-min-microvolt = <5000000>;
93		regulator-max-microvolt = <5000000>;
94		regulator-boot-on;
95	};
96
97	baseboard_3v3: fixedregulator-3v3 {
98		/* TPS73701DCQ */
99		compatible = "regulator-fixed";
100		regulator-name = "baseboard_3v3";
101		regulator-min-microvolt = <3300000>;
102		regulator-max-microvolt = <3300000>;
103		vin-supply = <&vbat>;
104		regulator-always-on;
105		regulator-boot-on;
106	};
107
108	baseboard_1v8: fixedregulator-1v8 {
109		/* TPS73701DCQ */
110		compatible = "regulator-fixed";
111		regulator-name = "baseboard_1v8";
112		regulator-min-microvolt = <1800000>;
113		regulator-max-microvolt = <1800000>;
114		vin-supply = <&vbat>;
115		regulator-always-on;
116		regulator-boot-on;
117	};
118
119	backlight_lcd: backlight-regulator {
120		compatible = "regulator-fixed";
121		regulator-name = "lcd_backlight_pwr";
122		regulator-min-microvolt = <3300000>;
123		regulator-max-microvolt = <3300000>;
124		gpio = <&gpio 47 GPIO_ACTIVE_HIGH>; /* lcd_backlight_pwr */
125		enable-active-high;
126	};
127
128	sound {
129		compatible = "simple-audio-card";
130		simple-audio-card,name = "DA850-OMAPL138 EVM";
131		simple-audio-card,widgets =
132			"Line", "Line In",
133			"Line", "Line Out";
134		simple-audio-card,routing =
135			"LINE1L", "Line In",
136			"LINE1R", "Line In",
137			"Line Out", "LLOUT",
138			"Line Out", "RLOUT";
139		simple-audio-card,format = "dsp_b";
140		simple-audio-card,bitclock-master = <&link0_codec>;
141		simple-audio-card,frame-master = <&link0_codec>;
142		simple-audio-card,bitclock-inversion;
143
144		simple-audio-card,cpu {
145			sound-dai = <&mcasp0>;
146			system-clock-frequency = <24576000>;
147		};
148
149		link0_codec: simple-audio-card,codec {
150			sound-dai = <&tlv320aic3106>;
151			system-clock-frequency = <24576000>;
152		};
153	};
154};
155
156&ecap2 {
157	status = "okay";
158};
159
160&ref_clk {
161	clock-frequency = <24000000>;
162};
163
164&pmx_core {
165	status = "okay";
166
167	mcasp0_pins: pinmux_mcasp0_pins {
168		pinctrl-single,bits = <
169			/*
170			 * AHCLKX, ACLKX, AFSX, AHCLKR, ACLKR,
171			 * AFSR, AMUTE
172			 */
173			0x00 0x11111111 0xffffffff
174			/* AXR11, AXR12 */
175			0x04 0x00011000 0x000ff000
176		>;
177	};
178	nand_pins: nand_pins {
179		pinctrl-single,bits = <
180			/* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[4], EMA_CS[3] */
181			0x1c 0x10110110  0xf0ff0ff0
182			/*
183			 * EMA_D[0], EMA_D[1], EMA_D[2],
184			 * EMA_D[3], EMA_D[4], EMA_D[5],
185			 * EMA_D[6], EMA_D[7]
186			 */
187			0x24 0x11111111  0xffffffff
188			/* EMA_A[1], EMA_A[2] */
189			0x30 0x01100000  0x0ff00000
190		>;
191	};
192};
193
194&sata {
195	status = "okay";
196};
197
198&serial0 {
199	status = "okay";
200};
201
202&serial1 {
203	status = "okay";
204};
205
206&serial2 {
207	status = "okay";
208};
209
210&rtc0 {
211	status = "okay";
212};
213
214&lcdc {
215	status = "okay";
216};
217
218&i2c0 {
219	status = "okay";
220	clock-frequency = <100000>;
221	pinctrl-names = "default";
222	pinctrl-0 = <&i2c0_pins>;
223
224	tps: tps@48 {
225		reg = <0x48>;
226	};
227	tlv320aic3106: tlv320aic3106@18 {
228		#sound-dai-cells = <0>;
229		compatible = "ti,tlv320aic3106";
230		reg = <0x18>;
231		status = "okay";
232
233		/* Regulators */
234		IOVDD-supply = <&vdcdc2_reg>;
235		AVDD-supply = <&baseboard_3v3>;
236		DRVDD-supply = <&baseboard_3v3>;
237		DVDD-supply = <&baseboard_1v8>;
238	};
239	tca6416: gpio@20 {
240		compatible = "ti,tca6416";
241		reg = <0x20>;
242		gpio-controller;
243		#gpio-cells = <2>;
244	};
245	tca6416_bb: gpio@21 {
246		compatible = "ti,tca6416";
247		reg = <0x21>;
248		gpio-controller;
249		#gpio-cells = <2>;
250	};
251};
252
253&wdt {
254	status = "okay";
255};
256
257&mmc0 {
258	max-frequency = <50000000>;
259	bus-width = <4>;
260	status = "okay";
261	pinctrl-names = "default";
262	pinctrl-0 = <&mmc0_pins>;
263	cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>;
264	wp-gpios = <&gpio 65 GPIO_ACTIVE_HIGH>;
265};
266
267&spi1 {
268	status = "okay";
269	pinctrl-names = "default";
270	pinctrl-0 = <&spi1_pins &spi1_cs0_pin>;
271	flash: m25p80@0 {
272		#address-cells = <1>;
273		#size-cells = <1>;
274		compatible = "m25p64";
275		spi-max-frequency = <30000000>;
276		m25p,fast-read;
277		reg = <0>;
278		partition@0 {
279			label = "U-Boot-SPL";
280			reg = <0x00000000 0x00010000>;
281			read-only;
282		};
283		partition@1 {
284			label = "U-Boot";
285			reg = <0x00010000 0x00080000>;
286			read-only;
287		};
288		partition@2 {
289			label = "U-Boot-Env";
290			reg = <0x00090000 0x00010000>;
291			read-only;
292		};
293		partition@3 {
294			label = "Kernel";
295			reg = <0x000a0000 0x00280000>;
296		};
297		partition@4 {
298			label = "Filesystem";
299			reg = <0x00320000 0x00400000>;
300		};
301		partition@5 {
302			label = "MAC-Address";
303			reg = <0x007f0000 0x00010000>;
304			read-only;
305		};
306	};
307};
308
309&mdio {
310	status = "okay";
311	pinctrl-names = "default";
312	pinctrl-0 = <&mdio_pins>;
313	bus_freq = <2200000>;
314};
315
316&eth0 {
317	status = "okay";
318	pinctrl-names = "default";
319	pinctrl-0 = <&mii_pins>;
320};
321
322&gpio {
323	status = "okay";
324};
325
326/include/ "tps6507x.dtsi"
327
328&tps {
329	vdcdc1_2-supply = <&vbat>;
330	vdcdc3-supply = <&vbat>;
331	vldo1_2-supply = <&vbat>;
332
333	regulators {
334		vdcdc1_reg: regulator@0 {
335			regulator-name = "VDCDC1_3.3V";
336			regulator-min-microvolt = <3150000>;
337			regulator-max-microvolt = <3450000>;
338			regulator-always-on;
339			regulator-boot-on;
340		};
341
342		vdcdc2_reg: regulator@1 {
343			regulator-name = "VDCDC2_3.3V";
344			regulator-min-microvolt = <1710000>;
345			regulator-max-microvolt = <3450000>;
346			regulator-always-on;
347			regulator-boot-on;
348			ti,defdcdc_default = <1>;
349		};
350
351		vdcdc3_reg: regulator@2 {
352			regulator-name = "VDCDC3_1.2V";
353			regulator-min-microvolt = <950000>;
354			regulator-max-microvolt = <1350000>;
355			regulator-always-on;
356			regulator-boot-on;
357			ti,defdcdc_default = <1>;
358		};
359
360		ldo1_reg: regulator@3 {
361			regulator-name = "LDO1_1.8V";
362			regulator-min-microvolt = <1710000>;
363			regulator-max-microvolt = <1890000>;
364			regulator-always-on;
365			regulator-boot-on;
366		};
367
368		ldo2_reg: regulator@4 {
369			regulator-name = "LDO2_1.2V";
370			regulator-min-microvolt = <1140000>;
371			regulator-max-microvolt = <1320000>;
372			regulator-always-on;
373			regulator-boot-on;
374		};
375	};
376};
377
378&mcasp0 {
379	#sound-dai-cells = <0>;
380	status = "okay";
381	pinctrl-names = "default";
382	pinctrl-0 = <&mcasp0_pins>;
383
384	op-mode = <0>;          /* MCASP_IIS_MODE */
385	tdm-slots = <2>;
386	/* 4 serializer */
387	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
388		0 0 0 0
389		0 0 0 0
390		0 0 0 1
391		2 0 0 0
392	>;
393	tx-num-evt = <32>;
394	rx-num-evt = <32>;
395};
396
397&edma0 {
398	ti,edma-reserved-slot-ranges = <32 50>;
399};
400
401&edma1 {
402	ti,edma-reserved-slot-ranges = <32 90>;
403};
404
405&aemif {
406	pinctrl-names = "default";
407	pinctrl-0 = <&nand_pins>;
408	status = "ok";
409	cs3 {
410		#address-cells = <2>;
411		#size-cells = <1>;
412		clock-ranges;
413		ranges;
414
415		ti,cs-chipselect = <3>;
416
417		nand@2000000,0 {
418			compatible = "ti,davinci-nand";
419			#address-cells = <1>;
420			#size-cells = <1>;
421			reg = <0 0x02000000 0x02000000
422			       1 0x00000000 0x00008000>;
423
424			ti,davinci-chipselect = <1>;
425			ti,davinci-mask-ale = <0>;
426			ti,davinci-mask-cle = <0>;
427			ti,davinci-mask-chipsel = <0>;
428			ti,davinci-ecc-mode = "hw";
429			ti,davinci-ecc-bits = <4>;
430			ti,davinci-nand-use-bbt;
431		};
432	};
433};
434
435&usb_phy {
436	status = "okay";
437};
438
439&usb0 {
440	status = "okay";
441};
442
443&usb1 {
444	status = "okay";
445};
446
447&vpif {
448	pinctrl-names = "default";
449	pinctrl-0 = <&vpif_capture_pins>, <&vpif_display_pins>;
450	/*
451	 * The vpif and the LCD are mutually exclusive.
452	 * To enable VPIF, disable the ti,tilcdc,panel then
453	 * change the status below to 'okay'
454	 */
455	status = "disabled";
456};
457