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