1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * at91-tse850-3.dts - Device Tree file for the Axentia TSE-850 3.0 board
4 *
5 * Copyright (C) 2017 Axentia Technologies AB
6 *
7 * Author: Peter Rosin <peda@axentia.se>
8 */
9/dts-v1/;
10#include <dt-bindings/pwm/pwm.h>
11#include "at91-linea.dtsi"
12
13/ {
14	model = "Axentia TSE-850 3.0";
15	compatible = "axentia,tse850v3", "axentia,linea",
16		     "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
17
18	sck: oscillator {
19		compatible = "fixed-clock";
20
21		#clock-cells = <0>;
22		clock-frequency = <16000000>;
23		clock-output-names = "sck";
24	};
25
26	reg_3v3: regulator {
27		compatible = "regulator-fixed";
28
29		regulator-name = "3v3-supply";
30		regulator-min-microvolt = <3300000>;
31		regulator-max-microvolt = <3300000>;
32	};
33
34	ana: reg-ana {
35		compatible = "pwm-regulator";
36
37		regulator-name = "ANA";
38
39		pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
40		pwm-dutycycle-unit = <1000>;
41		pwm-dutycycle-range = <100 1000>;
42
43		regulator-min-microvolt = <2000000>;
44		regulator-max-microvolt = <20000000>;
45		regulator-ramp-delay = <1000>;
46	};
47
48	sound {
49		compatible = "axentia,tse850-pcm5142";
50
51		axentia,cpu-dai = <&ssc0>;
52		axentia,audio-codec = <&pcm5142>;
53
54		axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
55		axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
56		axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
57
58		axentia,ana-supply = <&ana>;
59	};
60
61	dac: dpot-dac {
62		compatible = "dpot-dac";
63		vref-supply = <&reg_3v3>;
64		io-channels = <&dpot 0>;
65		io-channel-names = "dpot";
66		#io-channel-cells = <1>;
67	};
68
69	env_det: envelope-detector {
70		compatible = "axentia,tse850-envelope-detector";
71		io-channels = <&dac 0>;
72		io-channel-names = "dac";
73		#io-channel-cells = <1>;
74
75		interrupt-parent = <&pioA>;
76		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
77		interrupt-names = "comp";
78	};
79
80	mux: mux-controller {
81		compatible = "gpio-mux";
82		#mux-control-cells = <0>;
83
84		mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
85			    <&pioA 1 GPIO_ACTIVE_HIGH>,
86			    <&pioA 2 GPIO_ACTIVE_HIGH>;
87		idle-state = <0>;
88	};
89
90	envelope-detector-mux {
91		compatible = "io-channel-mux";
92		io-channels = <&env_det 0>;
93		io-channel-names = "parent";
94
95		mux-controls = <&mux>;
96
97		channels = "", "",
98			 "sync-1",
99			 "in",
100			 "out",
101			 "sync-2",
102			 "sys-reg",
103			 "ana-reg";
104	};
105
106	leds {
107		compatible = "gpio-leds";
108
109		led-ch1-red {
110			label = "ch-1:red";
111			gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
112		};
113		led-ch1-green {
114			label = "ch-1:green";
115			gpios = <&pioA 22 GPIO_ACTIVE_LOW>;
116		};
117		led-ch2-red {
118			label = "ch-2:red";
119			gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
120		};
121		led-ch2-green {
122			label = "ch-2:green";
123			gpios = <&pioA 20 GPIO_ACTIVE_LOW>;
124		};
125		led-data-red {
126			label = "data:red";
127			gpios = <&pioA 19 GPIO_ACTIVE_LOW>;
128		};
129		led-data-green {
130			label = "data:green";
131			gpios = <&pioA 18 GPIO_ACTIVE_LOW>;
132		};
133		led-alarm-red {
134			label = "alarm:red";
135			gpios = <&pioA 17 GPIO_ACTIVE_LOW>;
136		};
137		led-alarm-green {
138			label = "alarm:green";
139			gpios = <&pioA 16 GPIO_ACTIVE_LOW>;
140		};
141	};
142};
143
144&nand {
145	partitions {
146		compatible = "fixed-partitions";
147		#address-cells = <1>;
148		#size-cells = <1>;
149
150		at91bootstrap@0 {
151			label = "at91bootstrap";
152			reg = <0x0 0x40000>;
153		};
154
155		barebox@40000 {
156			label = "bootloader";
157			reg = <0x40000 0x60000>;
158		};
159
160		bareboxenv@c0000 {
161			label = "bareboxenv";
162			reg = <0xc0000 0x40000>;
163		};
164
165		bareboxenv2@100000 {
166			label = "bareboxenv2";
167			reg = <0x100000 0x40000>;
168		};
169
170		oftree@180000 {
171			label = "oftree";
172			reg = <0x180000 0x20000>;
173		};
174
175		kernel@200000 {
176			label = "kernel";
177			reg = <0x200000 0x500000>;
178		};
179
180		rootfs@800000 {
181			label = "rootfs";
182			reg = <0x800000 0x0f800000>;
183		};
184
185		ovlfs@10000000 {
186			label = "ovlfs";
187			reg = <0x10000000 0x10000000>;
188		};
189	};
190};
191
192&ssc0 {
193	#sound-dai-cells = <0>;
194
195	status = "okay";
196};
197
198&i2c0 {
199	status = "okay";
200
201	jc42@18 {
202		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
203		reg = <0x18>;
204		smbus-timeout-disable;
205	};
206
207	dpot: mcp4651-104@28 {
208		compatible = "microchip,mcp4651-104";
209		reg = <0x28>;
210		#io-channel-cells = <1>;
211	};
212
213	pcm5142: pcm5142@4c {
214		compatible = "ti,pcm5142";
215
216		reg = <0x4c>;
217		#sound-dai-cells = <0>;
218
219		AVDD-supply = <&reg_3v3>;
220		DVDD-supply = <&reg_3v3>;
221		CPVDD-supply = <&reg_3v3>;
222
223		clocks = <&sck>;
224
225		pll-in = <3>;
226		pll-out = <6>;
227	};
228
229	eeprom@50 {
230		compatible = "nxp,se97b", "atmel,24c02";
231		reg = <0x50>;
232		pagesize = <16>;
233	};
234};
235
236&pinctrl {
237	tse850 {
238		pinctrl_usba_vbus: usba-vbus {
239			atmel,pins = <AT91_PIOC 31 AT91_PERIPH_GPIO
240				      AT91_PINCTRL_DEGLITCH>;
241		};
242	};
243};
244
245&watchdog {
246	status = "okay";
247};
248
249&usart0 {
250	status = "okay";
251
252	atmel,use-dma-rx;
253};
254
255&pwm0 {
256	status = "okay";
257
258	pinctrl-0 = <&pinctrl_pwm0_pwml2_1>;
259	pinctrl-names = "default";
260};
261
262&macb1 {
263	status = "okay";
264
265	phy-mode = "rmii";
266
267	#address-cells = <1>;
268	#size-cells = <0>;
269
270	phy0: ethernet-phy@3 {
271		reg = <3>;
272
273		interrupt-parent = <&pioE>;
274		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
275	};
276};
277
278&usb0 {
279	status = "okay";
280
281	pinctrl-names = "default";
282	pinctrl-0 = <&pinctrl_usba_vbus>;
283	atmel,vbus-gpio = <&pioC 31 GPIO_ACTIVE_HIGH>;
284};
285
286&usb1 {
287	status = "okay";
288
289	num-ports = <1>;
290	atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
291	atmel,oc-gpio = <&pioC 15 GPIO_ACTIVE_LOW>;
292};
293
294&usb2 {
295	status = "okay";
296};
297
298&dbgu {
299	status = "okay";
300
301	dmas = <0>, <0>;	/*  Do not use DMA for dbgu */
302};
303
304&pioA {
305	gpio-line-names =
306	/*  0 */	"SUP-A", "SUP-B", "SUP-C", "SIG<LEV",
307	/*  4 */	"", "/RFRST", "", "",
308	/*  8 */	"/ADD", "", "/LOOP1", "/LOOP2",
309	/* 12 */	"", "", "", "",
310	/* 16 */	"LED1GREEN", "LED1RED", "LED2GREEN", "LED2RED",
311	/* 20 */	"LED3GREEN", "LED3RED", "LED4GREEN", "LED4RED",
312	/* 24 */	"", "", "", "",
313	/* 28 */	"", "", "SDA", "SCL";
314};
315
316&pioB {
317	gpio-line-names =
318	/*  0 */	"", "", "", "",
319	/*  4 */	"", "", "", "",
320	/*  8 */	"", "", "", "",
321	/* 12 */	"", "", "", "",
322	/* 16 */	"", "", "", "",
323	/* 20 */	"", "", "", "",
324	/* 24 */	"", "", "SIG<LIN", "SIG>LIN",
325	/* 28 */	"RXD", "TXD", "BRX", "BTX";
326};
327
328&pioC {
329	gpio-line-names =
330	/*  0 */	"ETX0", "ETX1", "ERX0", "ERX1",
331	/*  4 */	"ETXEN", "ECRSDV", "ERXER", "EREFCK",
332	/*  8 */	"EMDC", "EMDIO", "", "",
333	/* 12 */	"", "", "", "/ILIM",
334	/* 16 */	"BCK", "LRCK", "DIN", "",
335	/* 20 */	"", "", "", "",
336	/* 24 */	"", "", "", "",
337	/* 28 */	"", "", "", "VBUS";
338};
339
340&pioD {
341	gpio-line-names =
342	/*  0 */	"I1", "I2", "O1", "EXTVEN",
343	/*  4 */	"", "456KHZ", "VCTRL", "SYNCSEL",
344	/*  8 */	"STEREO", "", "", "",
345	/* 12 */	"", "", "", "",
346	/* 16 */	"", ">LIN", "LIN>", "",
347	/* 20 */	"VREFEN", "", "", "",
348	/* 24 */	"", "", "VINOK", "",
349	/* 28 */	"POEOK", "USBON", "POELOAD", "";
350};
351
352&pioE {
353	gpio-line-names =
354	/*  0 */	"", "", "", "",
355	/*  4 */	"", "", "", "",
356	/*  8 */	"", "", "", "",
357	/* 12 */	"", "", "", "",
358	/* 16 */	"", "", "", "",
359	/* 20 */	"", "ALE", "CLE", "",
360	/* 24 */	"", "", "", "",
361	/* 28 */	"", "", "", "/ETHINT";
362};
363