xref: /linux/scripts/dtc/include-prefixes/arm/ti/davinci/da850-lcdk.dts (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (c) 2016 BayLibre, Inc.
4724ba675SRob Herring */
5724ba675SRob Herring/dts-v1/;
6724ba675SRob Herring#include "da850.dtsi"
7724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
8724ba675SRob Herring#include <dt-bindings/input/input.h>
9724ba675SRob Herring
10724ba675SRob Herring/ {
11724ba675SRob Herring	model = "DA850/AM1808/OMAP-L138 LCDK";
12724ba675SRob Herring	compatible = "ti,da850-lcdk", "ti,da850";
13724ba675SRob Herring
14724ba675SRob Herring	aliases {
15724ba675SRob Herring		serial2 = &serial2;
16724ba675SRob Herring		ethernet0 = &eth0;
17724ba675SRob Herring	};
18724ba675SRob Herring
19724ba675SRob Herring	chosen {
20724ba675SRob Herring		stdout-path = "serial2:115200n8";
21724ba675SRob Herring	};
22724ba675SRob Herring
23724ba675SRob Herring	memory@c0000000 {
24724ba675SRob Herring		/* 128 MB DDR2 SDRAM @ 0xc0000000 */
25724ba675SRob Herring		reg = <0xc0000000 0x08000000>;
26724ba675SRob Herring	};
27724ba675SRob Herring
28724ba675SRob Herring	reserved-memory {
29724ba675SRob Herring		#address-cells = <1>;
30724ba675SRob Herring		#size-cells = <1>;
31724ba675SRob Herring		ranges;
32724ba675SRob Herring
33724ba675SRob Herring		dsp_memory_region: dsp-memory@c3000000 {
34724ba675SRob Herring			compatible = "shared-dma-pool";
35724ba675SRob Herring			reg = <0xc3000000 0x1000000>;
36724ba675SRob Herring			reusable;
37724ba675SRob Herring			status = "okay";
38724ba675SRob Herring		};
39724ba675SRob Herring	};
40724ba675SRob Herring
41724ba675SRob Herring	vcc_5vd: fixedregulator-vcc_5vd {
42724ba675SRob Herring		compatible = "regulator-fixed";
43724ba675SRob Herring		regulator-name = "vcc_5vd";
44724ba675SRob Herring		regulator-min-microvolt = <5000000>;
45724ba675SRob Herring		regulator-max-microvolt = <5000000>;
46724ba675SRob Herring		regulator-boot-on;
47724ba675SRob Herring	};
48724ba675SRob Herring
49724ba675SRob Herring	vcc_3v3d: fixedregulator-vcc_3v3d {
50724ba675SRob Herring		/* TPS650250 - VDCDC1 */
51724ba675SRob Herring		compatible = "regulator-fixed";
52724ba675SRob Herring		regulator-name = "vcc_3v3d";
53724ba675SRob Herring		regulator-min-microvolt = <3300000>;
54724ba675SRob Herring		regulator-max-microvolt = <3300000>;
55724ba675SRob Herring		vin-supply = <&vcc_5vd>;
56724ba675SRob Herring		regulator-always-on;
57724ba675SRob Herring		regulator-boot-on;
58724ba675SRob Herring	};
59724ba675SRob Herring
60724ba675SRob Herring	vcc_1v8d: fixedregulator-vcc_1v8d {
61724ba675SRob Herring		/* TPS650250 - VDCDC2 */
62724ba675SRob Herring		compatible = "regulator-fixed";
63724ba675SRob Herring		regulator-name = "vcc_1v8d";
64724ba675SRob Herring		regulator-min-microvolt = <1800000>;
65724ba675SRob Herring		regulator-max-microvolt = <1800000>;
66724ba675SRob Herring		vin-supply = <&vcc_5vd>;
67724ba675SRob Herring		regulator-always-on;
68724ba675SRob Herring		regulator-boot-on;
69724ba675SRob Herring	};
70724ba675SRob Herring
71724ba675SRob Herring	sound {
72724ba675SRob Herring		compatible = "simple-audio-card";
73724ba675SRob Herring		simple-audio-card,name = "DA850-OMAPL138 LCDK";
74724ba675SRob Herring		simple-audio-card,widgets =
75724ba675SRob Herring			"Line", "Line In",
76724ba675SRob Herring			"Line", "Line Out",
77724ba675SRob Herring			"Microphone", "Mic Jack";
78724ba675SRob Herring		simple-audio-card,routing =
79724ba675SRob Herring			"LINE1L", "Line In",
80724ba675SRob Herring			"LINE1R", "Line In",
81724ba675SRob Herring			"Line Out", "LLOUT",
82724ba675SRob Herring			"Line Out", "RLOUT",
83724ba675SRob Herring			"MIC3L", "Mic Jack",
84724ba675SRob Herring			"MIC3R", "Mic Jack",
85724ba675SRob Herring			"Mic Jack", "Mic Bias";
86724ba675SRob Herring		simple-audio-card,format = "dsp_b";
87724ba675SRob Herring		simple-audio-card,bitclock-master = <&link0_codec>;
88724ba675SRob Herring		simple-audio-card,frame-master = <&link0_codec>;
89724ba675SRob Herring		simple-audio-card,bitclock-inversion;
90724ba675SRob Herring
91724ba675SRob Herring		simple-audio-card,cpu {
92724ba675SRob Herring			sound-dai = <&mcasp0>;
93724ba675SRob Herring			system-clock-frequency = <24576000>;
94724ba675SRob Herring		};
95724ba675SRob Herring
96724ba675SRob Herring		link0_codec: simple-audio-card,codec {
97724ba675SRob Herring			sound-dai = <&tlv320aic3106>;
98724ba675SRob Herring			system-clock-frequency = <24576000>;
99724ba675SRob Herring		};
100724ba675SRob Herring	};
101724ba675SRob Herring
102724ba675SRob Herring	gpio-keys {
103724ba675SRob Herring		compatible = "gpio-keys";
104724ba675SRob Herring		autorepeat;
105724ba675SRob Herring
106724ba675SRob Herring		user1 {
107724ba675SRob Herring			label = "GPIO Key USER1";
108724ba675SRob Herring			linux,code = <BTN_0>;
109724ba675SRob Herring			gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
110724ba675SRob Herring		};
111724ba675SRob Herring
112724ba675SRob Herring		user2 {
113724ba675SRob Herring			label = "GPIO Key USER2";
114724ba675SRob Herring			linux,code = <BTN_1>;
115724ba675SRob Herring			gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
116724ba675SRob Herring		};
117724ba675SRob Herring	};
118724ba675SRob Herring
119724ba675SRob Herring	vga-bridge {
120724ba675SRob Herring		compatible = "ti,ths8135";
121724ba675SRob Herring		#address-cells = <1>;
122724ba675SRob Herring		#size-cells = <0>;
123724ba675SRob Herring
124724ba675SRob Herring		ports {
125724ba675SRob Herring			#address-cells = <1>;
126724ba675SRob Herring			#size-cells = <0>;
127724ba675SRob Herring
128724ba675SRob Herring			port@0 {
129724ba675SRob Herring				reg = <0>;
130724ba675SRob Herring
131724ba675SRob Herring				vga_bridge_in: endpoint {
132724ba675SRob Herring					remote-endpoint = <&lcdc_out_vga>;
133724ba675SRob Herring				};
134724ba675SRob Herring			};
135724ba675SRob Herring
136724ba675SRob Herring			port@1 {
137724ba675SRob Herring				reg = <1>;
138724ba675SRob Herring
139724ba675SRob Herring				vga_bridge_out: endpoint {
140724ba675SRob Herring					remote-endpoint = <&vga_con_in>;
141724ba675SRob Herring				};
142724ba675SRob Herring			};
143724ba675SRob Herring		};
144724ba675SRob Herring	};
145724ba675SRob Herring
146724ba675SRob Herring	vga {
147724ba675SRob Herring		compatible = "vga-connector";
148724ba675SRob Herring
149724ba675SRob Herring		ddc-i2c-bus = <&i2c0>;
150724ba675SRob Herring
151724ba675SRob Herring		port {
152724ba675SRob Herring			vga_con_in: endpoint {
153724ba675SRob Herring				remote-endpoint = <&vga_bridge_out>;
154724ba675SRob Herring			};
155724ba675SRob Herring		};
156724ba675SRob Herring	};
157724ba675SRob Herring
158724ba675SRob Herring	cvdd: regulator0 {
159724ba675SRob Herring		compatible = "regulator-fixed";
160724ba675SRob Herring		regulator-name = "cvdd";
161724ba675SRob Herring		regulator-min-microvolt = <1300000>;
162724ba675SRob Herring		regulator-max-microvolt = <1300000>;
163724ba675SRob Herring		regulator-always-on;
164724ba675SRob Herring		regulator-boot-on;
165724ba675SRob Herring	};
166724ba675SRob Herring};
167724ba675SRob Herring
168724ba675SRob Herring&ref_clk {
169724ba675SRob Herring	clock-frequency = <24000000>;
170724ba675SRob Herring};
171724ba675SRob Herring
172724ba675SRob Herring&cpu {
173724ba675SRob Herring	cpu-supply = <&cvdd>;
174724ba675SRob Herring};
175724ba675SRob Herring
176724ba675SRob Herring/*
177724ba675SRob Herring * LCDK has a fixed CVDD of 1.3V, so only operating points >= 300MHz are
178724ba675SRob Herring * valid. Unfortunately due to a problem with the DA8XX OHCI controller, we
179724ba675SRob Herring * can't enable more than one OPP by default, since the controller sometimes
180724ba675SRob Herring * becomes unresponsive after a transition. Fix the frequency at 456 MHz.
181724ba675SRob Herring */
182724ba675SRob Herring
183724ba675SRob Herring&opp_100 {
184724ba675SRob Herring	status = "disabled";
185724ba675SRob Herring};
186724ba675SRob Herring
187724ba675SRob Herring&opp_200 {
188724ba675SRob Herring	status = "disabled";
189724ba675SRob Herring};
190724ba675SRob Herring
191724ba675SRob Herring&opp_300 {
192724ba675SRob Herring	status = "disabled";
193724ba675SRob Herring};
194724ba675SRob Herring
195724ba675SRob Herring&opp_456 {
196724ba675SRob Herring	status = "okay";
197724ba675SRob Herring};
198724ba675SRob Herring
199724ba675SRob Herring&pmx_core {
200724ba675SRob Herring	status = "okay";
201724ba675SRob Herring
202*d49b1e4fSTony Lindgren	mcasp0_pins: mcasp0-pins {
203724ba675SRob Herring		pinctrl-single,bits = <
204724ba675SRob Herring			/* AHCLKX AFSX ACLKX */
205724ba675SRob Herring			0x00 0x00101010 0x00f0f0f0
206724ba675SRob Herring			/* ARX13 ARX14 */
207724ba675SRob Herring			0x04 0x00000110 0x00000ff0
208724ba675SRob Herring		>;
209724ba675SRob Herring	};
210724ba675SRob Herring
211*d49b1e4fSTony Lindgren	nand_pins: nand-pins {
212724ba675SRob Herring		pinctrl-single,bits = <
213724ba675SRob Herring			/* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[3] */
214724ba675SRob Herring			0x1c 0x10110010  0xf0ff00f0
215724ba675SRob Herring			/*
216724ba675SRob Herring			 * EMA_D[0], EMA_D[1], EMA_D[2],
217724ba675SRob Herring			 * EMA_D[3], EMA_D[4], EMA_D[5],
218724ba675SRob Herring			 * EMA_D[6], EMA_D[7]
219724ba675SRob Herring			 */
220724ba675SRob Herring			0x24 0x11111111  0xffffffff
221724ba675SRob Herring			/*
222724ba675SRob Herring			 * EMA_D[8],  EMA_D[9],  EMA_D[10],
223724ba675SRob Herring			 * EMA_D[11], EMA_D[12], EMA_D[13],
224724ba675SRob Herring			 * EMA_D[14], EMA_D[15]
225724ba675SRob Herring			 */
226724ba675SRob Herring			0x20 0x11111111  0xffffffff
227724ba675SRob Herring			/* EMA_A[1], EMA_A[2] */
228724ba675SRob Herring			0x30 0x01100000  0x0ff00000
229724ba675SRob Herring		>;
230724ba675SRob Herring	};
231724ba675SRob Herring};
232724ba675SRob Herring
233724ba675SRob Herring&serial2 {
234724ba675SRob Herring	pinctrl-names = "default";
235724ba675SRob Herring	pinctrl-0 = <&serial2_rxtx_pins>;
236724ba675SRob Herring	status = "okay";
237724ba675SRob Herring};
238724ba675SRob Herring
239724ba675SRob Herring&wdt {
240724ba675SRob Herring	status = "okay";
241724ba675SRob Herring};
242724ba675SRob Herring
243724ba675SRob Herring&rtc0 {
244724ba675SRob Herring	status = "okay";
245724ba675SRob Herring};
246724ba675SRob Herring
247724ba675SRob Herring&gpio {
248724ba675SRob Herring	status = "okay";
249724ba675SRob Herring};
250724ba675SRob Herring
251724ba675SRob Herring&sata_refclk {
252724ba675SRob Herring	status = "okay";
253724ba675SRob Herring	clock-frequency = <100000000>;
254724ba675SRob Herring};
255724ba675SRob Herring
256724ba675SRob Herring&sata {
257724ba675SRob Herring	status = "okay";
258724ba675SRob Herring};
259724ba675SRob Herring
260724ba675SRob Herring&mdio {
261724ba675SRob Herring	pinctrl-names = "default";
262724ba675SRob Herring	pinctrl-0 = <&mdio_pins>;
263724ba675SRob Herring	bus_freq = <2200000>;
264724ba675SRob Herring	status = "okay";
265724ba675SRob Herring};
266724ba675SRob Herring
267724ba675SRob Herring&eth0 {
268724ba675SRob Herring	pinctrl-names = "default";
269724ba675SRob Herring	pinctrl-0 = <&mii_pins>;
270724ba675SRob Herring	status = "okay";
271724ba675SRob Herring};
272724ba675SRob Herring
273724ba675SRob Herring&mmc0 {
274724ba675SRob Herring	max-frequency = <50000000>;
275724ba675SRob Herring	bus-width = <4>;
276724ba675SRob Herring	pinctrl-names = "default";
277724ba675SRob Herring	pinctrl-0 = <&mmc0_pins>;
278724ba675SRob Herring	cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>;
279724ba675SRob Herring	status = "okay";
280724ba675SRob Herring};
281724ba675SRob Herring
282724ba675SRob Herring&i2c0 {
283724ba675SRob Herring	pinctrl-names = "default";
284724ba675SRob Herring	pinctrl-0 = <&i2c0_pins>;
285724ba675SRob Herring	clock-frequency = <100000>;
286724ba675SRob Herring	status = "okay";
287724ba675SRob Herring
288724ba675SRob Herring	tlv320aic3106: tlv320aic3106@18 {
289724ba675SRob Herring		#sound-dai-cells = <0>;
290724ba675SRob Herring		compatible = "ti,tlv320aic3106";
291724ba675SRob Herring		reg = <0x18>;
292724ba675SRob Herring		adc-settle-ms = <40>;
293724ba675SRob Herring		ai3x-micbias-vg = <1>;		/* 2.0V */
294724ba675SRob Herring		status = "okay";
295724ba675SRob Herring
296724ba675SRob Herring		/* Regulators */
297724ba675SRob Herring		IOVDD-supply = <&vcc_3v3d>;
298724ba675SRob Herring		AVDD-supply = <&vcc_3v3d>;
299724ba675SRob Herring		DRVDD-supply = <&vcc_3v3d>;
300724ba675SRob Herring		DVDD-supply = <&vcc_1v8d>;
301724ba675SRob Herring	};
302724ba675SRob Herring};
303724ba675SRob Herring
304724ba675SRob Herring&mcasp0 {
305724ba675SRob Herring	#sound-dai-cells = <0>;
306724ba675SRob Herring	pinctrl-names = "default";
307724ba675SRob Herring	pinctrl-0 = <&mcasp0_pins>;
308724ba675SRob Herring	status = "okay";
309724ba675SRob Herring
310724ba675SRob Herring	op-mode = <0>;   /* DAVINCI_MCASP_IIS_MODE */
311724ba675SRob Herring	tdm-slots = <2>;
312724ba675SRob Herring	serial-dir = <   /* 0: INACTIVE, 1: TX, 2: RX */
313724ba675SRob Herring		0 0 0 0
314724ba675SRob Herring		0 0 0 0
315724ba675SRob Herring		0 0 0 0
316724ba675SRob Herring		0 1 2 0
317724ba675SRob Herring	>;
318724ba675SRob Herring	tx-num-evt = <32>;
319724ba675SRob Herring	rx-num-evt = <32>;
320724ba675SRob Herring};
321724ba675SRob Herring
322724ba675SRob Herring&usb_phy {
323724ba675SRob Herring	status = "okay";
324724ba675SRob Herring};
325724ba675SRob Herring
326724ba675SRob Herring&usb0 {
327724ba675SRob Herring	status = "okay";
328724ba675SRob Herring};
329724ba675SRob Herring
330724ba675SRob Herring&usb1 {
331724ba675SRob Herring	status = "okay";
332724ba675SRob Herring};
333724ba675SRob Herring
334724ba675SRob Herring&aemif {
335724ba675SRob Herring	pinctrl-names = "default";
336724ba675SRob Herring	pinctrl-0 = <&nand_pins>;
337724ba675SRob Herring	status = "okay";
338724ba675SRob Herring	cs3 {
339724ba675SRob Herring		#address-cells = <2>;
340724ba675SRob Herring		#size-cells = <1>;
341724ba675SRob Herring		clock-ranges;
342724ba675SRob Herring		ranges;
343724ba675SRob Herring
344724ba675SRob Herring		ti,cs-chipselect = <3>;
345724ba675SRob Herring
346724ba675SRob Herring		nand@2000000,0 {
347724ba675SRob Herring			compatible = "ti,davinci-nand";
348724ba675SRob Herring			#address-cells = <1>;
349724ba675SRob Herring			#size-cells = <1>;
350724ba675SRob Herring			reg = <0 0x02000000 0x02000000
351724ba675SRob Herring			       1 0x00000000 0x00008000>;
352724ba675SRob Herring
353724ba675SRob Herring			ti,davinci-chipselect = <1>;
354724ba675SRob Herring			ti,davinci-mask-ale = <0>;
355724ba675SRob Herring			ti,davinci-mask-cle = <0>;
356724ba675SRob Herring			ti,davinci-mask-chipsel = <0>;
357724ba675SRob Herring
358724ba675SRob Herring			ti,davinci-nand-buswidth = <16>;
359724ba675SRob Herring			ti,davinci-ecc-mode = "hw";
360724ba675SRob Herring			ti,davinci-ecc-bits = <4>;
361724ba675SRob Herring			ti,davinci-nand-use-bbt;
362724ba675SRob Herring
363724ba675SRob Herring			/*
364724ba675SRob Herring			 * The OMAP-L132/L138 Bootloader doc SPRAB41E reads:
365724ba675SRob Herring			 * "To boot from NAND Flash, the AIS should be written
366724ba675SRob Herring			 * to NAND block 1 (NAND block 0 is not used by default)".
367724ba675SRob Herring			 * The same doc mentions that for ROM "Silicon Revision 2.1",
368724ba675SRob Herring			 * "Updated NAND boot mode to offer boot from block 0 or block 1".
369724ba675SRob Herring			 * However the limitaion is left here by default for compatibility
370724ba675SRob Herring			 * with older silicon and because it needs new boot pin settings
371724ba675SRob Herring			 * not possible in stock LCDK.
372724ba675SRob Herring			 */
373724ba675SRob Herring			partitions {
374724ba675SRob Herring				compatible = "fixed-partitions";
375724ba675SRob Herring				#address-cells = <1>;
376724ba675SRob Herring				#size-cells = <1>;
377724ba675SRob Herring
378724ba675SRob Herring				partition@0 {
379724ba675SRob Herring					label = "u-boot env";
380724ba675SRob Herring					reg = <0 0x020000>;
381724ba675SRob Herring				};
382724ba675SRob Herring				partition@20000 {
383724ba675SRob Herring					/* The LCDK defaults to booting from this partition */
384724ba675SRob Herring					label = "u-boot";
385724ba675SRob Herring					reg = <0x020000 0x080000>;
386724ba675SRob Herring				};
387724ba675SRob Herring				partition@a0000 {
388724ba675SRob Herring					label = "free space";
389724ba675SRob Herring					reg = <0x0a0000 0>;
390724ba675SRob Herring				};
391724ba675SRob Herring			};
392724ba675SRob Herring		};
393724ba675SRob Herring	};
394724ba675SRob Herring};
395724ba675SRob Herring
396724ba675SRob Herring&prictrl {
397724ba675SRob Herring	status = "okay";
398724ba675SRob Herring};
399724ba675SRob Herring
400724ba675SRob Herring&memctrl {
401724ba675SRob Herring	status = "okay";
402724ba675SRob Herring};
403724ba675SRob Herring
404724ba675SRob Herring&lcdc {
405724ba675SRob Herring	status = "okay";
406724ba675SRob Herring	pinctrl-names = "default";
407724ba675SRob Herring	pinctrl-0 = <&lcd_pins>;
408724ba675SRob Herring
409724ba675SRob Herring	port {
410724ba675SRob Herring		lcdc_out_vga: endpoint {
411724ba675SRob Herring			remote-endpoint = <&vga_bridge_in>;
412724ba675SRob Herring		};
413724ba675SRob Herring	};
414724ba675SRob Herring};
415724ba675SRob Herring
416724ba675SRob Herring&vpif {
417724ba675SRob Herring	pinctrl-names = "default";
418724ba675SRob Herring	pinctrl-0 = <&vpif_capture_pins>;
419724ba675SRob Herring	status = "okay";
420724ba675SRob Herring};
421724ba675SRob Herring
422724ba675SRob Herring&dsp {
423724ba675SRob Herring	memory-region = <&dsp_memory_region>;
424724ba675SRob Herring	status = "okay";
425724ba675SRob Herring};
426