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