xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mm-verdin-zinnia.dtsi (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) Toradex
4 *
5 * Common dtsi for Verdin IMX8MM SoM on Zinnia carrier board
6 *
7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-mini-nano
8 * https://www.toradex.com/products/carrier-board/zinnia-carrier-board
9 */
10
11#include <dt-bindings/leds/common.h>
12
13/ {
14	leds {
15		compatible = "gpio-leds";
16		pinctrl-names = "default";
17		pinctrl-0 = <&pinctrl_zinnia_leds>;
18
19		/* LED1 Red - SODIMM 48 - LED1_R */
20		led-0 {
21			color = <LED_COLOR_ID_RED>;
22			default-state = "off";
23			function = LED_FUNCTION_STATUS;
24			function-enumerator = <1>;
25			gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
26		};
27
28		/* LED1 Blue - SODIMM 46 - LED1_B */
29		led-1 {
30			color = <LED_COLOR_ID_BLUE>;
31			default-state = "off";
32			function = LED_FUNCTION_STATUS;
33			function-enumerator = <1>;
34			gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
35		};
36
37		/* LED3 Red - SODIMM 44 - LED3_R */
38		led-2 {
39			color = <LED_COLOR_ID_RED>;
40			default-state = "off";
41			function = LED_FUNCTION_STATUS;
42			function-enumerator = <3>;
43			gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
44		};
45
46		/* LED3 Green - SODIMM 54 - LED3_G */
47		led-3 {
48			color = <LED_COLOR_ID_GREEN>;
49			default-state = "off";
50			function = LED_FUNCTION_STATUS;
51			function-enumerator = <3>;
52			gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
53		};
54
55		/* LED3 Blue - SODIMM 36 - LED3_B */
56		led-4 {
57			color = <LED_COLOR_ID_BLUE>;
58			default-state = "off";
59			function = LED_FUNCTION_STATUS;
60			function-enumerator = <3>;
61			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
62		};
63
64		/* LED4 Red - SODIMM 34 - LED4_R */
65		led-5 {
66			color = <LED_COLOR_ID_RED>;
67			default-state = "off";
68			function = LED_FUNCTION_STATUS;
69			function-enumerator = <4>;
70			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
71		};
72
73		/* LED4 Green - SODIMM 32 - LED4_G */
74		led-6 {
75			color = <LED_COLOR_ID_GREEN>;
76			default-state = "off";
77			function = LED_FUNCTION_STATUS;
78			function-enumerator = <4>;
79			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
80		};
81
82		/* LED4 Blue - SODIMM 30 - LED4_B */
83		led-7 {
84			color = <LED_COLOR_ID_BLUE>;
85			default-state = "off";
86			function = LED_FUNCTION_STATUS;
87			function-enumerator = <4>;
88			gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
89		};
90	};
91
92	zinnia-1v8-voltage {
93		compatible = "voltage-divider";
94		full-ohms = <39000>; /* 12k + 27k */
95		/* Verdin ADC_4 */
96		io-channels = <&verdin_som_adc 4>;
97		output-ohms = <27000>;
98	};
99
100	zinnia-3v3-voltage {
101		compatible = "voltage-divider";
102		full-ohms = <54000>; /* 27k + 27k */
103		/* Verdin ADC_3 */
104		io-channels = <&verdin_som_adc 5>;
105		output-ohms = <27000>;
106	};
107
108	zinnia-5v-voltage {
109		compatible = "voltage-divider";
110		full-ohms = <39000>; /* 27k + 12k */
111		/* Verdin ADC_2 */
112		io-channels = <&verdin_som_adc 6>;
113		output-ohms = <12000>;
114	};
115
116	/* Zinnia Power Supply Input Voltage */
117	zinnia-input-voltage {
118		compatible = "voltage-divider";
119		full-ohms = <204700>; /* 200k + 4.7k */
120		/* Verdin ADC_1 */
121		io-channels = <&verdin_som_adc 7>;
122		output-ohms = <4700>;
123	};
124};
125
126/* Verdin SPI_1 */
127&ecspi2 {
128	pinctrl-0 = <&pinctrl_ecspi2>, <&pinctrl_uart3_cts_gpio>;
129	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, <&gpio5 13 GPIO_ACTIVE_LOW>;
130
131	status = "okay";
132
133	tpm@1 {
134		compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
135		reg = <1>;
136		spi-max-frequency = <18500000>;
137	};
138};
139
140/* EEPROM on Zinnia */
141&eeprom_carrier_board {
142	status = "okay";
143};
144
145/* Verdin ETH_1 */
146&fec1 {
147	status = "okay";
148};
149
150&gpio1 {
151	gpio-line-names =
152		"DI2_RB", /* SODIMM 216 */ /* 0 */
153		"",
154		"",
155		"",
156		"",
157		"",
158		"",
159		"",
160		"DO3_EN", /* SODIMM 220 */
161		"DI3_EN", /* SODIMM 222 */
162		"", /* 10 */
163		"DI2_EN", /* SODIMM 218 */
164		"",
165		"",
166		"",
167		"",
168		"",
169		"",
170		"",
171		"",
172		"", /* 20 */
173		"",
174		"",
175		"",
176		"",
177		"";
178};
179
180&gpio2 {
181	gpio-line-names =
182		"", /* 0 */
183		"",
184		"",
185		"",
186		"",
187		"",
188		"",
189		"",
190		"",
191		"",
192		"", /* 10 */
193		"",
194		"",
195		"",
196		"",
197		"",
198		"",
199		"",
200		"",
201		"",
202		""; /* 20 */
203};
204
205&gpio3 {
206	gpio-line-names =
207		"", /* 0 */
208		"",
209		"",
210		"",
211		"DO1_EN", /* SODIMM 206 */
212		"",
213		"DI3_RB", /* SODIMM 56 */
214		"",
215		"",
216		"",
217		"", /* 10 */
218		"",
219		"",
220		"",
221		"",
222		"",
223		"",
224		"",
225		"",
226		"",
227		"", /* 20 */
228		"",
229		"",
230		"",
231		"",
232		"";
233};
234
235&gpio4 {
236	gpio-line-names =
237		"", /* 0 */
238		"",
239		"",
240		"",
241		"",
242		"",
243		"",
244		"",
245		"",
246		"",
247		"", /* 10 */
248		"",
249		"",
250		"",
251		"",
252		"",
253		"",
254		"",
255		"",
256		"",
257		"", /* 20 */
258		"",
259		"",
260		"",
261		"",
262		"",
263		"",
264		"",
265		"",
266		"",
267		"",
268		"";
269};
270
271&gpio5 {
272	gpio-line-names =
273		"", /* 0 */
274		"",
275		"",
276		"",
277		"",
278		"DI1_EN", /* SODIMM 208 */
279		"",
280		"",
281		"",
282		"",
283		"", /* 10 */
284		"",
285		"",
286		"",
287		"",
288		"",
289		"",
290		"",
291		"",
292		"",
293		"", /* 20 */
294		"",
295		"",
296		"",
297		"",
298		"",
299		"DI1_RB", /* SODIMM 210 */
300		"DO2_EN", /* SODIMM 212 */
301		"",
302		"";
303};
304
305/* Temperature sensor on Zinnia */
306&hwmon_temp {
307	compatible = "ti,tmp1075";
308
309	status = "okay";
310};
311
312/* Verdin I2C_1 */
313&i2c4 {
314	status = "okay";
315};
316
317/* Verdin UART_3 */
318&uart1 {
319	status = "okay";
320};
321
322/* Verdin UART_1 */
323&uart2 {
324	status = "okay";
325};
326
327/* Verdin UART_2 */
328&uart3 {
329	pinctrl-names = "default";
330	pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_rts>;
331	rs485-rx-during-tx;
332	linux,rs485-enabled-at-boot-time;
333
334	status = "okay";
335};
336
337/* Verdin USB_1 */
338&usbotg1 {
339	status = "okay";
340};
341
342/* Verdin USB_2 */
343&usbotg2 {
344	status = "okay";
345};
346
347/* Verdin SD_1 */
348&usdhc2 {
349	status = "okay";
350};
351
352&iomuxc {
353	pinctrl-names = "default";
354	pinctrl-0 = <&pinctrl_gpio1>,
355		    <&pinctrl_gpio2>,
356		    <&pinctrl_gpio3>,
357		    <&pinctrl_gpio4>,
358		    <&pinctrl_gpio5>,
359		    <&pinctrl_gpio6>,
360		    <&pinctrl_gpio7>,
361		    <&pinctrl_gpio8>,
362		    <&pinctrl_qspi1_io0_gpio>;
363
364	pinctrl_qspi1_io0_gpio: gpio3io6grp {
365		fsl,pins = <MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6	0x184>;	/* SODIMM 56 */
366	};
367
368	pinctrl_uart3_cts_gpio: gpio5io9grp {
369		fsl,pins = <MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9	0x184>;	/* SODIMM 143 */
370	};
371
372	pinctrl_zinnia_leds: zinnialedsgrp {
373		fsl,pins =
374			<MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25	0x16>, /* SODIMM 30 */
375			<MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24	0x16>, /* SODIMM 32 */
376			<MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26	0x16>, /* SODIMM 34 */
377			<MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23	0x16>, /* SODIMM 36 */
378			<MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22	0x16>, /* SODIMM 44 */
379			<MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24	0x16>, /* SODIMM 46 */
380			<MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21	0x16>, /* SODIMM 48 */
381			<MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1	0x16>; /* SODIMM 54 */
382	};
383};
384