1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2017 B&R Industrial Automation GmbH
4 * http://www.br-automation.com
5 *
6 */
7/dts-v1/;
8
9#include "am33xx.dtsi"
10#include "dt-bindings/thermal/thermal.h"
11
12/ {
13	model = "BRSMARC1 SoM";
14	compatible = "ti,am33xx";
15
16	fset: factory-settings {
17		bl-version	= "                                ";
18		order-no	= "                                ";
19		cpu-order-no	= "                                ";
20		hw-revision	= "                                ";
21		serial-no	= <0>;
22		device-id	= <0x0>;
23		parent-id	= <0x0>;
24		hw-variant	= <0x0>;
25		hw-platform	= <0x7>;
26		fram-offset	= <0x100>;
27		fram-size	= <0x1F00>;
28		cache-disable	= <0x0>;
29		cpu-clock	= <0x0>;
30	};
31
32	chosen {
33		bootargs = "console=ttyO0,115200 earlyprintk";
34		stdout-path = &uart0;
35	};
36
37	aliases {
38		fset = &fset;
39		mmc = &mmc2;
40		spi0 = &spi0;
41		spi1 = &spi1;
42		touch0 = &burtouch0;
43		screen0 = &lcdscreen0;
44	};
45
46	memory {
47		device_type = "memory";
48		reg = <0x80000000 0x10000000>; /* 256 MB */
49	};
50
51	vmmcsd_fixed: fixedregulator@0 {
52		compatible = "regulator-fixed";
53		regulator-name = "vmmcsd_fixed";
54		regulator-min-microvolt = <3300000>;
55		regulator-max-microvolt = <3300000>;
56	};
57
58	lcdscreen0: lcdscreen@0 {
59		/*backlight = <&tps_bl>; */
60		compatible = "ti,tilcdc,panel";
61		status = "okay";
62
63		panel-info {
64			ac-bias		= <255>;
65			ac-bias-intrpt	= <0>;
66			dma-burst-sz	= <16>;
67			bpp		= <32>;
68			fdd		= <0x80>;
69			sync-edge	= <0>;
70			sync-ctrl	= <1>;
71			raster-order	= <0>;
72			fifo-th		= <0>;
73			rotation	= <0>;
74			pupdelay	= <0>;
75			pondelay	= <0>;
76			pwrpin		= <0x000000B1>;
77			brightdrv	= <0>;
78			brightfdim	= <100>;
79			brightdef	= <50>;
80		};
81
82		display-timings {
83			default {
84				clock-frequency	= <0>;
85				hactive		= <0>;
86				vactive		= <0>;
87				hfront-porch	= <0>;
88				hback-porch	= <0>;
89				hsync-len	= <0>;
90				vfront-porch	= <0>;
91				vback-porch	= <0>;
92				vsync-len	= <0>;
93				hsync-active	= <0>;
94				vsync-active	= <0>;
95				pupdelay	= <10>;
96				pondelay	= <10>;
97			};
98		};
99	};
100
101	board_thermal: board-thermal {
102		polling-delay-passive = <1000>; /* milliseconds */
103		polling-delay = <2500>; /* milliseconds */
104
105		thermal-sensors = <&cputemp>;
106
107		trips {
108			crit_trip: crit-trip {
109				temperature = <95000>; /* millicelsius */
110				hysteresis = <5000>; /* millicelsius */
111				type = "critical";
112			};
113		};
114		cooling-maps {
115			map0 {
116				trip = <&crit_trip>;
117				cooling-device =
118				<&resetc THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
119			};
120		};
121	};
122};
123
124&uart0 {		/* console uart */
125	u-boot,dm-spl;
126	status = "okay";
127};
128
129&uart2 {		/* X2X - P2P */
130	status = "okay";
131};
132
133&uart3 {		/* RS485 */
134	status = "okay";
135};
136
137&uart4 {		/* RS232 */
138	status = "okay";
139};
140
141&i2c0 {
142	u-boot,dm-spl;
143	status = "okay";
144	clock-frequency = <100000>;
145
146	tps: tps@24 {		/* PMIC controller */
147		u-boot,dm-spl;
148		reg = <0x24>;
149		compatible = "ti,tps65217";
150	};
151
152	cputemp: temperature-sensor@48 {	/* cpu temperature */
153		#thermal-sensor-cells = <0>;
154		compatible = "nxp,pct2075";
155		reg = <0x48>;
156	};
157
158	basetemp: temperature-sensor@49 {	/* baseboard temperature */
159		#thermal-sensor-cells = <0>;
160		compatible = "nxp,pct2075";
161		reg = <0x49>;
162	};
163	extrtc: rtc@51 {	/* realtime clock */
164		compatible = "epson,rx8571";
165		reg = <0x51>;
166	};
167
168	resetc: reset-controller@60 {
169		compatible = "bur,rststm";
170		reg = <0x60>;
171
172		cooling-min-state = <0>;
173		cooling-max-state = <1>;	/* reset gets fired */
174		#cooling-cells = <2>;		/* min followed by max */
175	};
176};
177
178&i2c1 {
179	u-boot,dm-spl;
180	status = "okay";
181};
182
183&spi0 {
184	u-boot,dm-spl;
185	status = "okay";
186
187	cs-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>,
188		   <&gpio0 6 GPIO_ACTIVE_HIGH>,
189		   <0>,
190		   <0>;
191
192	spi-max-frequency = <24000000>;
193
194	spi_flash: spiflash@0 {
195		u-boot,dm-spl;
196		u-boot,dm-pre-reloc;
197		compatible = "spidev", "spi-flash";
198		spi-max-frequency = <24000000>;
199		reg = <0>;
200	};
201};
202
203&spi1 {
204	u-boot,dm-spl;
205	status = "okay";
206	cs-gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>,
207		   <&gpio0 19 GPIO_ACTIVE_HIGH>,
208		   <0>,
209		   <0>;
210
211	spi-max-frequency = <24000000>;
212};
213
214&edma {
215	status = "okay";
216};
217
218&cppi41dma  {
219	status = "okay";
220};
221
222&usb {
223	status = "okay";
224};
225
226&usb_ctrl_mod {
227	status = "okay";
228};
229
230&usb0_phy {
231	status = "okay";
232};
233
234&usb1_phy {
235	status = "okay";
236};
237
238&usb0 {
239	status = "okay";
240	dr_mode = "host";
241};
242
243&usb1 {
244	status = "okay";
245	dr_mode = "host";
246};
247
248&davinci_mdio {
249	status = "okay";
250
251	ethphy0: ethernet-phy@1 {
252		reg = <1>;
253	};
254
255	ethphy1: ethernet-phy@3 {
256		reg = <3>;
257	};
258};
259
260&mac {
261	status = "okay";
262};
263
264&phy_sel {
265	rmii-clock-ext;
266};
267
268&cpsw_emac0 {
269	phy_id = <&davinci_mdio>, <1>;
270	phy-handle = <&ethphy0>;
271	phy-mode = "rmii";
272	ti,ledcr = <0x0480>;
273};
274
275&cpsw_emac1 {
276	phy_id = <&davinci_mdio>, <3>;
277	phy-handle = <&ethphy1>;
278	phy-mode = "rmii";
279	ti,ledcr = <0x0480>;
280};
281
282&mmc1 {
283	vmmc-supply = <&vmmcsd_fixed>;
284	bus-width = <0x4>;
285	ti,non-removable;
286	ti,needs-special-hs-handling;
287	ti,vcc-aux-disable-is-sleep;
288	status = "okay";
289};
290
291&mmc2 {
292	vmmc-supply = <&vmmcsd_fixed>;
293	bus-width = <0x8>;
294	ti,non-removable;
295	ti,needs-special-hs-handling;
296	ti,vcc-aux-disable-is-sleep;
297	status = "okay";
298};
299
300&l4_per {
301
302	segment@300000 {
303
304		target-module@e000 {
305			u-boot,dm-pre-reloc;
306
307			lcdc: lcdc@0 {
308				u-boot,dm-pre-reloc;
309				status = "okay";
310				ti,no-reset-on-init;
311				ti,no-idle-on-init;
312			};
313		};
314	};
315};
316
317&elm {
318	status = "okay";
319};
320
321&sham {
322	status = "okay";
323};
324
325&aes {
326	status = "okay";
327};
328
329&gpio0 {
330	u-boot,dm-spl;
331	ti,no-reset-on-init;
332};
333
334&gpio1 {
335	u-boot,dm-spl;
336	ti,no-reset-on-init;
337};
338
339&gpio2 {
340	u-boot,dm-spl;
341	ti,no-reset-on-init;
342};
343
344&gpio3 {
345	u-boot,dm-spl;
346	ti,no-reset-on-init;
347};
348
349&timer1 {		/* today unused */
350	status = "okay";
351	ti,no-reset-on-init;
352	ti,no-idle-on-init;
353};
354
355&timer2 {		/* used for vxworks primary timer device */
356	status = "okay";
357	ti,no-reset-on-init;
358	ti,no-idle-on-init;
359};
360
361&timer3 {		/* used sysdelay and hal tsc counter*/
362	status = "okay";
363	ti,no-reset-on-init;
364	ti,no-idle-on-init;
365};
366
367&timer4 {		/* used for PWM beeper */
368	status = "okay";
369	ti,no-reset-on-init;
370	ti,no-idle-on-init;
371};
372
373&timer5 {		/* used for PWM backlight */
374	status = "okay";
375	ti,no-reset-on-init;
376	ti,no-idle-on-init;
377};
378
379&timer6 {		/* used for cpsw end device */
380	status = "okay";
381	ti,no-reset-on-init;
382	ti,no-idle-on-init;
383};
384
385&timer7 {		/* used for cpsw end device */
386	status = "okay";
387	ti,no-reset-on-init;
388	ti,no-idle-on-init;
389};
390
391&wdt2 {
392	status = "okay";
393	ti,no-reset-on-init;
394	ti,no-idle-on-init;
395};
396
397&epwmss0 {
398	status = "okay";
399};
400
401&tscadc {
402	status = "okay";
403
404	tsc {
405		burtouch0: burtouch@0 {
406			status = "okay";
407			compatible = "bur,DdVxSfTouchXXX";
408			bur,hwtree = "IF7";
409			bur,KX0 = <0x0>;
410			bur,KX1 = <0x0>;
411			bur,KX2 = <0x0>;
412			bur,KY0 = <0x0>;
413			bur,KY1 = <0x0>;
414			bur,KY2 = <0x0>;
415		};
416	};
417};
418
419&dcan0 {
420	status = "okay";
421};
422
423&dcan1 {
424	status = "okay";
425};
426
427&sham {
428	status = "disabled";
429};
430
431&aes {
432	status = "disabled";
433};
434
435&rng {
436	status = "disabled";
437};
438