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