xref: /linux/arch/arm64/boot/dts/freescale/imx8mm-verdin-ivy.dtsi (revision c34e9ab9a612ee8b18273398ef75c207b01f516d)
1*adca4617SJoão Paulo Gonçalves// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*adca4617SJoão Paulo Gonçalves/*
3*adca4617SJoão Paulo Gonçalves * Copyright 2024 Toradex
4*adca4617SJoão Paulo Gonçalves *
5*adca4617SJoão Paulo Gonçalves * Common dtsi for Verdin IMX8MM SoM on Ivy carrier board
6*adca4617SJoão Paulo Gonçalves *
7*adca4617SJoão Paulo Gonçalves * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-mini-nano
8*adca4617SJoão Paulo Gonçalves * https://www.toradex.com/products/carrier-board/ivy-carrier-board
9*adca4617SJoão Paulo Gonçalves */
10*adca4617SJoão Paulo Gonçalves
11*adca4617SJoão Paulo Gonçalves#include <dt-bindings/mux/mux.h>
12*adca4617SJoão Paulo Gonçalves#include <dt-bindings/leds/common.h>
13*adca4617SJoão Paulo Gonçalves
14*adca4617SJoão Paulo Gonçalves/ {
15*adca4617SJoão Paulo Gonçalves	/* AIN1 Voltage w/o AIN1_MODE gpio control */
16*adca4617SJoão Paulo Gonçalves	ain1_voltage_unmanaged: voltage-divider-ain1 {
17*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
18*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <1>;
19*adca4617SJoão Paulo Gonçalves		io-channels = <&ivy_adc1 0>;
20*adca4617SJoão Paulo Gonçalves		full-ohms = <19>;
21*adca4617SJoão Paulo Gonçalves		output-ohms = <1>;
22*adca4617SJoão Paulo Gonçalves	};
23*adca4617SJoão Paulo Gonçalves
24*adca4617SJoão Paulo Gonçalves	/* AIN1 Current w/o AIN1_MODE gpio control */
25*adca4617SJoão Paulo Gonçalves	ain1_current_unmanaged: current-sense-shunt-ain1 {
26*adca4617SJoão Paulo Gonçalves		compatible = "current-sense-shunt";
27*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <0>;
28*adca4617SJoão Paulo Gonçalves		io-channels = <&ivy_adc1 1>;
29*adca4617SJoão Paulo Gonçalves		shunt-resistor-micro-ohms = <100000000>;
30*adca4617SJoão Paulo Gonçalves	};
31*adca4617SJoão Paulo Gonçalves
32*adca4617SJoão Paulo Gonçalves	/* AIN1_MODE - SODIMM 216 */
33*adca4617SJoão Paulo Gonçalves	ain1_mode_mux_ctrl: mux-controller-0 {
34*adca4617SJoão Paulo Gonçalves		compatible = "gpio-mux";
35*adca4617SJoão Paulo Gonçalves		pinctrl-names = "default";
36*adca4617SJoão Paulo Gonçalves		pinctrl-0 = <&pinctrl_gpio5>;
37*adca4617SJoão Paulo Gonçalves		#mux-control-cells = <0>;
38*adca4617SJoão Paulo Gonçalves		mux-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
39*adca4617SJoão Paulo Gonçalves	};
40*adca4617SJoão Paulo Gonçalves
41*adca4617SJoão Paulo Gonçalves	ain1-voltage {
42*adca4617SJoão Paulo Gonçalves		compatible = "io-channel-mux";
43*adca4617SJoão Paulo Gonçalves		channels = "ain1_voltage", "";
44*adca4617SJoão Paulo Gonçalves		io-channels = <&ain1_voltage_unmanaged 0>;
45*adca4617SJoão Paulo Gonçalves		io-channel-names = "parent";
46*adca4617SJoão Paulo Gonçalves		mux-controls = <&ain1_mode_mux_ctrl>;
47*adca4617SJoão Paulo Gonçalves		settle-time-us = <1000>;
48*adca4617SJoão Paulo Gonçalves	};
49*adca4617SJoão Paulo Gonçalves
50*adca4617SJoão Paulo Gonçalves	ain1-current {
51*adca4617SJoão Paulo Gonçalves		compatible = "io-channel-mux";
52*adca4617SJoão Paulo Gonçalves		channels = "", "ain1_current";
53*adca4617SJoão Paulo Gonçalves		io-channels = <&ain1_current_unmanaged>;
54*adca4617SJoão Paulo Gonçalves		io-channel-names = "parent";
55*adca4617SJoão Paulo Gonçalves		mux-controls = <&ain1_mode_mux_ctrl>;
56*adca4617SJoão Paulo Gonçalves		settle-time-us = <1000>;
57*adca4617SJoão Paulo Gonçalves	};
58*adca4617SJoão Paulo Gonçalves
59*adca4617SJoão Paulo Gonçalves	/* AIN2 Voltage w/o AIN2_MODE gpio control */
60*adca4617SJoão Paulo Gonçalves	ain2_voltage_unmanaged: voltage-divider-ain2 {
61*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
62*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <1>;
63*adca4617SJoão Paulo Gonçalves		io-channels = <&ivy_adc2 0>;
64*adca4617SJoão Paulo Gonçalves		full-ohms = <19>;
65*adca4617SJoão Paulo Gonçalves		output-ohms = <1>;
66*adca4617SJoão Paulo Gonçalves	};
67*adca4617SJoão Paulo Gonçalves
68*adca4617SJoão Paulo Gonçalves	/* AIN2 Current w/o AIN2_MODE gpio control */
69*adca4617SJoão Paulo Gonçalves	ain2_current_unmanaged: current-sense-shunt-ain2 {
70*adca4617SJoão Paulo Gonçalves		compatible = "current-sense-shunt";
71*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <0>;
72*adca4617SJoão Paulo Gonçalves		io-channels = <&ivy_adc2 1>;
73*adca4617SJoão Paulo Gonçalves		shunt-resistor-micro-ohms = <100000000>;
74*adca4617SJoão Paulo Gonçalves	};
75*adca4617SJoão Paulo Gonçalves
76*adca4617SJoão Paulo Gonçalves	/* AIN2_MODE - SODIMM 218 */
77*adca4617SJoão Paulo Gonçalves	ain2_mode_mux_ctrl: mux-controller-1 {
78*adca4617SJoão Paulo Gonçalves		compatible = "gpio-mux";
79*adca4617SJoão Paulo Gonçalves		pinctrl-names = "default";
80*adca4617SJoão Paulo Gonçalves		pinctrl-0 = <&pinctrl_gpio6>;
81*adca4617SJoão Paulo Gonçalves		#mux-control-cells = <0>;
82*adca4617SJoão Paulo Gonçalves		mux-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
83*adca4617SJoão Paulo Gonçalves	};
84*adca4617SJoão Paulo Gonçalves
85*adca4617SJoão Paulo Gonçalves	ain2-voltage {
86*adca4617SJoão Paulo Gonçalves		compatible = "io-channel-mux";
87*adca4617SJoão Paulo Gonçalves		channels = "ain2_voltage", "";
88*adca4617SJoão Paulo Gonçalves		io-channels = <&ain2_voltage_unmanaged 0>;
89*adca4617SJoão Paulo Gonçalves		io-channel-names = "parent";
90*adca4617SJoão Paulo Gonçalves		mux-controls = <&ain2_mode_mux_ctrl>;
91*adca4617SJoão Paulo Gonçalves		settle-time-us = <1000>;
92*adca4617SJoão Paulo Gonçalves	};
93*adca4617SJoão Paulo Gonçalves
94*adca4617SJoão Paulo Gonçalves	ain2-current {
95*adca4617SJoão Paulo Gonçalves		compatible = "io-channel-mux";
96*adca4617SJoão Paulo Gonçalves		channels = "", "ain2_current";
97*adca4617SJoão Paulo Gonçalves		io-channels = <&ain2_current_unmanaged>;
98*adca4617SJoão Paulo Gonçalves		io-channel-names = "parent";
99*adca4617SJoão Paulo Gonçalves		mux-controls = <&ain2_mode_mux_ctrl>;
100*adca4617SJoão Paulo Gonçalves		settle-time-us = <1000>;
101*adca4617SJoão Paulo Gonçalves	};
102*adca4617SJoão Paulo Gonçalves
103*adca4617SJoão Paulo Gonçalves	leds {
104*adca4617SJoão Paulo Gonçalves		compatible = "gpio-leds";
105*adca4617SJoão Paulo Gonçalves		pinctrl-names = "default";
106*adca4617SJoão Paulo Gonçalves		pinctrl-0 = <&pinctrl_ivy_leds>;
107*adca4617SJoão Paulo Gonçalves
108*adca4617SJoão Paulo Gonçalves		/* D7 Blue - SODIMM 30 - LEDs.GPIO1 */
109*adca4617SJoão Paulo Gonçalves		led-0 {
110*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_BLUE>;
111*adca4617SJoão Paulo Gonçalves			default-state = "off";
112*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
113*adca4617SJoão Paulo Gonçalves			function-enumerator = <1>;
114*adca4617SJoão Paulo Gonçalves			gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
115*adca4617SJoão Paulo Gonçalves		};
116*adca4617SJoão Paulo Gonçalves
117*adca4617SJoão Paulo Gonçalves		/* D7 Green - SODIMM 32 - LEDs.GPIO2 */
118*adca4617SJoão Paulo Gonçalves		led-1 {
119*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_GREEN>;
120*adca4617SJoão Paulo Gonçalves			default-state = "off";
121*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
122*adca4617SJoão Paulo Gonçalves			function-enumerator = <1>;
123*adca4617SJoão Paulo Gonçalves			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
124*adca4617SJoão Paulo Gonçalves		};
125*adca4617SJoão Paulo Gonçalves
126*adca4617SJoão Paulo Gonçalves		/* D7 Red - SODIMM 34 - LEDs.GPIO3 */
127*adca4617SJoão Paulo Gonçalves		led-2 {
128*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_RED>;
129*adca4617SJoão Paulo Gonçalves			default-state = "off";
130*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
131*adca4617SJoão Paulo Gonçalves			function-enumerator = <1>;
132*adca4617SJoão Paulo Gonçalves			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
133*adca4617SJoão Paulo Gonçalves		};
134*adca4617SJoão Paulo Gonçalves
135*adca4617SJoão Paulo Gonçalves		/* D8 Blue - SODIMM 36 - LEDs.GPIO4 */
136*adca4617SJoão Paulo Gonçalves		led-3 {
137*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_BLUE>;
138*adca4617SJoão Paulo Gonçalves			default-state = "off";
139*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
140*adca4617SJoão Paulo Gonçalves			function-enumerator = <2>;
141*adca4617SJoão Paulo Gonçalves			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
142*adca4617SJoão Paulo Gonçalves		};
143*adca4617SJoão Paulo Gonçalves
144*adca4617SJoão Paulo Gonçalves		/* D8 Green - SODIMM 54 - LEDs.GPIO5 */
145*adca4617SJoão Paulo Gonçalves		led-4 {
146*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_GREEN>;
147*adca4617SJoão Paulo Gonçalves			default-state = "off";
148*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
149*adca4617SJoão Paulo Gonçalves			function-enumerator = <2>;
150*adca4617SJoão Paulo Gonçalves			gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
151*adca4617SJoão Paulo Gonçalves		};
152*adca4617SJoão Paulo Gonçalves
153*adca4617SJoão Paulo Gonçalves		/* D8 Red - SODIMM 44 - LEDs.GPIO6 */
154*adca4617SJoão Paulo Gonçalves		led-5 {
155*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_RED>;
156*adca4617SJoão Paulo Gonçalves			default-state = "off";
157*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
158*adca4617SJoão Paulo Gonçalves			function-enumerator = <2>;
159*adca4617SJoão Paulo Gonçalves			gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
160*adca4617SJoão Paulo Gonçalves		};
161*adca4617SJoão Paulo Gonçalves
162*adca4617SJoão Paulo Gonçalves		/* D9 Blue - SODIMM 46 - LEDs.GPIO7 */
163*adca4617SJoão Paulo Gonçalves		led-6 {
164*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_BLUE>;
165*adca4617SJoão Paulo Gonçalves			default-state = "off";
166*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
167*adca4617SJoão Paulo Gonçalves			function-enumerator = <3>;
168*adca4617SJoão Paulo Gonçalves			gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
169*adca4617SJoão Paulo Gonçalves		};
170*adca4617SJoão Paulo Gonçalves
171*adca4617SJoão Paulo Gonçalves		/* D9 Red - SODIMM 48 - LEDs.GPIO8 */
172*adca4617SJoão Paulo Gonçalves		led-7 {
173*adca4617SJoão Paulo Gonçalves			color = <LED_COLOR_ID_RED>;
174*adca4617SJoão Paulo Gonçalves			default-state = "off";
175*adca4617SJoão Paulo Gonçalves			function = LED_FUNCTION_STATUS;
176*adca4617SJoão Paulo Gonçalves			function-enumerator = <3>;
177*adca4617SJoão Paulo Gonçalves			gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
178*adca4617SJoão Paulo Gonçalves		};
179*adca4617SJoão Paulo Gonçalves	};
180*adca4617SJoão Paulo Gonçalves
181*adca4617SJoão Paulo Gonçalves	reg_3v2_ain1: regulator-3v2-ain1 {
182*adca4617SJoão Paulo Gonçalves		compatible = "regulator-fixed";
183*adca4617SJoão Paulo Gonçalves		regulator-max-microvolt = <3200000>;
184*adca4617SJoão Paulo Gonçalves		regulator-min-microvolt = <3200000>;
185*adca4617SJoão Paulo Gonçalves		regulator-name = "+3V2_AIN1";
186*adca4617SJoão Paulo Gonçalves	};
187*adca4617SJoão Paulo Gonçalves
188*adca4617SJoão Paulo Gonçalves	reg_3v2_ain2: regulator-3v2-ain2 {
189*adca4617SJoão Paulo Gonçalves		compatible = "regulator-fixed";
190*adca4617SJoão Paulo Gonçalves		regulator-max-microvolt = <3200000>;
191*adca4617SJoão Paulo Gonçalves		regulator-min-microvolt = <3200000>;
192*adca4617SJoão Paulo Gonçalves		regulator-name = "+3V2_AIN2";
193*adca4617SJoão Paulo Gonçalves	};
194*adca4617SJoão Paulo Gonçalves
195*adca4617SJoão Paulo Gonçalves	/* Ivy Power Supply Input Voltage */
196*adca4617SJoão Paulo Gonçalves	ivy-input-voltage {
197*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
198*adca4617SJoão Paulo Gonçalves		/* Verdin ADC_1 */
199*adca4617SJoão Paulo Gonçalves		io-channels = <&verdin_som_adc 7>;
200*adca4617SJoão Paulo Gonçalves		full-ohms = <204700>; /* 200k + 4.7k */
201*adca4617SJoão Paulo Gonçalves		output-ohms = <4700>;
202*adca4617SJoão Paulo Gonçalves	};
203*adca4617SJoão Paulo Gonçalves
204*adca4617SJoão Paulo Gonçalves	ivy-5v-voltage {
205*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
206*adca4617SJoão Paulo Gonçalves		/* Verdin ADC_2 */
207*adca4617SJoão Paulo Gonçalves		io-channels = <&verdin_som_adc 6>;
208*adca4617SJoão Paulo Gonçalves		full-ohms = <39000>; /* 27k + 12k */
209*adca4617SJoão Paulo Gonçalves		output-ohms = <12000>;
210*adca4617SJoão Paulo Gonçalves	};
211*adca4617SJoão Paulo Gonçalves
212*adca4617SJoão Paulo Gonçalves	ivy-3v3-voltage {
213*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
214*adca4617SJoão Paulo Gonçalves		/* Verdin ADC_3 */
215*adca4617SJoão Paulo Gonçalves		io-channels = <&verdin_som_adc 5>;
216*adca4617SJoão Paulo Gonçalves		full-ohms = <54000>; /* 27k + 27k */
217*adca4617SJoão Paulo Gonçalves		output-ohms = <27000>;
218*adca4617SJoão Paulo Gonçalves	};
219*adca4617SJoão Paulo Gonçalves
220*adca4617SJoão Paulo Gonçalves	ivy-1v8-voltage {
221*adca4617SJoão Paulo Gonçalves		compatible = "voltage-divider";
222*adca4617SJoão Paulo Gonçalves		/* Verdin ADC_4 */
223*adca4617SJoão Paulo Gonçalves		io-channels = <&verdin_som_adc 4>;
224*adca4617SJoão Paulo Gonçalves		full-ohms = <39000>; /* 12k + 27k */
225*adca4617SJoão Paulo Gonçalves		output-ohms = <27000>;
226*adca4617SJoão Paulo Gonçalves	};
227*adca4617SJoão Paulo Gonçalves};
228*adca4617SJoão Paulo Gonçalves
229*adca4617SJoão Paulo Gonçalves/* Verdin SPI_1 */
230*adca4617SJoão Paulo Gonçalves&ecspi2 {
231*adca4617SJoão Paulo Gonçalves	pinctrl-0 = <&pinctrl_ecspi2>,
232*adca4617SJoão Paulo Gonçalves		    <&pinctrl_gpio1>,
233*adca4617SJoão Paulo Gonçalves		    <&pinctrl_gpio4>;
234*adca4617SJoão Paulo Gonçalves	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>,
235*adca4617SJoão Paulo Gonçalves		   <&gpio3 4 GPIO_ACTIVE_LOW>,
236*adca4617SJoão Paulo Gonçalves		   <&gpio5 27 GPIO_ACTIVE_LOW>;
237*adca4617SJoão Paulo Gonçalves	status = "okay";
238*adca4617SJoão Paulo Gonçalves
239*adca4617SJoão Paulo Gonçalves	tpm@1 {
240*adca4617SJoão Paulo Gonçalves		compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
241*adca4617SJoão Paulo Gonçalves		reg = <1>;
242*adca4617SJoão Paulo Gonçalves		spi-max-frequency = <18500000>;
243*adca4617SJoão Paulo Gonçalves	};
244*adca4617SJoão Paulo Gonçalves
245*adca4617SJoão Paulo Gonçalves	fram@2 {
246*adca4617SJoão Paulo Gonçalves		compatible = "fujitsu,mb85rs256", "atmel,at25";
247*adca4617SJoão Paulo Gonçalves		reg = <2>;
248*adca4617SJoão Paulo Gonçalves		address-width = <16>;
249*adca4617SJoão Paulo Gonçalves		size = <32768>;
250*adca4617SJoão Paulo Gonçalves		spi-max-frequency = <33000000>;
251*adca4617SJoão Paulo Gonçalves		pagesize = <1>;
252*adca4617SJoão Paulo Gonçalves	};
253*adca4617SJoão Paulo Gonçalves};
254*adca4617SJoão Paulo Gonçalves
255*adca4617SJoão Paulo Gonçalves/* EEPROM on Ivy */
256*adca4617SJoão Paulo Gonçalves&eeprom_carrier_board {
257*adca4617SJoão Paulo Gonçalves	status = "okay";
258*adca4617SJoão Paulo Gonçalves};
259*adca4617SJoão Paulo Gonçalves
260*adca4617SJoão Paulo Gonçalves/* Verdin ETH_1 */
261*adca4617SJoão Paulo Gonçalves&fec1 {
262*adca4617SJoão Paulo Gonçalves	status = "okay";
263*adca4617SJoão Paulo Gonçalves};
264*adca4617SJoão Paulo Gonçalves
265*adca4617SJoão Paulo Gonçalves&gpio3 {
266*adca4617SJoão Paulo Gonçalves	gpio-line-names =
267*adca4617SJoão Paulo Gonçalves		"", /* 0 */
268*adca4617SJoão Paulo Gonçalves		"",
269*adca4617SJoão Paulo Gonçalves		"REL3", /* SODIMM 64 */
270*adca4617SJoão Paulo Gonçalves		"",
271*adca4617SJoão Paulo Gonçalves		"",
272*adca4617SJoão Paulo Gonçalves		"",
273*adca4617SJoão Paulo Gonçalves		"DIG_1", /* SODIMM 56 */
274*adca4617SJoão Paulo Gonçalves		"DIG_2", /* SODIMM 58 */
275*adca4617SJoão Paulo Gonçalves		"REL1",  /* SODIMM 60 */
276*adca4617SJoão Paulo Gonçalves		"REL2",  /* SODIMM 62 */
277*adca4617SJoão Paulo Gonçalves		"", /* 10 */
278*adca4617SJoão Paulo Gonçalves		"",
279*adca4617SJoão Paulo Gonçalves		"",
280*adca4617SJoão Paulo Gonçalves		"",
281*adca4617SJoão Paulo Gonçalves		"REL4",  /* SODIMM 66 */
282*adca4617SJoão Paulo Gonçalves		"",
283*adca4617SJoão Paulo Gonçalves		"",
284*adca4617SJoão Paulo Gonçalves		"",
285*adca4617SJoão Paulo Gonçalves		"",
286*adca4617SJoão Paulo Gonçalves		"",
287*adca4617SJoão Paulo Gonçalves		"", /* 20 */
288*adca4617SJoão Paulo Gonçalves		"",
289*adca4617SJoão Paulo Gonçalves		"",
290*adca4617SJoão Paulo Gonçalves		"",
291*adca4617SJoão Paulo Gonçalves		"",
292*adca4617SJoão Paulo Gonçalves		"";
293*adca4617SJoão Paulo Gonçalves};
294*adca4617SJoão Paulo Gonçalves
295*adca4617SJoão Paulo Gonçalves&gpio5 {
296*adca4617SJoão Paulo Gonçalves	gpio-line-names =
297*adca4617SJoão Paulo Gonçalves		"", /* 0 */
298*adca4617SJoão Paulo Gonçalves		"",
299*adca4617SJoão Paulo Gonçalves		"",
300*adca4617SJoão Paulo Gonçalves		"",
301*adca4617SJoão Paulo Gonçalves		"",
302*adca4617SJoão Paulo Gonçalves		"GPIO2", /* Verdin GPIO_2 - SODIMM 208 */
303*adca4617SJoão Paulo Gonçalves		"",
304*adca4617SJoão Paulo Gonçalves		"",
305*adca4617SJoão Paulo Gonçalves		"",
306*adca4617SJoão Paulo Gonçalves		"",
307*adca4617SJoão Paulo Gonçalves		"", /* 10 */
308*adca4617SJoão Paulo Gonçalves		"",
309*adca4617SJoão Paulo Gonçalves		"",
310*adca4617SJoão Paulo Gonçalves		"",
311*adca4617SJoão Paulo Gonçalves		"",
312*adca4617SJoão Paulo Gonçalves		"",
313*adca4617SJoão Paulo Gonçalves		"",
314*adca4617SJoão Paulo Gonçalves		"",
315*adca4617SJoão Paulo Gonçalves		"",
316*adca4617SJoão Paulo Gonçalves		"",
317*adca4617SJoão Paulo Gonçalves		"", /* 20 */
318*adca4617SJoão Paulo Gonçalves		"",
319*adca4617SJoão Paulo Gonçalves		"",
320*adca4617SJoão Paulo Gonçalves		"",
321*adca4617SJoão Paulo Gonçalves		"",
322*adca4617SJoão Paulo Gonçalves		"",
323*adca4617SJoão Paulo Gonçalves		"GPIO3", /* Verdin GPIO_3 - SODIMM 210 */
324*adca4617SJoão Paulo Gonçalves		"",
325*adca4617SJoão Paulo Gonçalves		"",
326*adca4617SJoão Paulo Gonçalves		"";
327*adca4617SJoão Paulo Gonçalves};
328*adca4617SJoão Paulo Gonçalves
329*adca4617SJoão Paulo Gonçalves/* Temperature sensor on Ivy */
330*adca4617SJoão Paulo Gonçalves&hwmon_temp {
331*adca4617SJoão Paulo Gonçalves	compatible = "ti,tmp1075";
332*adca4617SJoão Paulo Gonçalves	status = "okay";
333*adca4617SJoão Paulo Gonçalves};
334*adca4617SJoão Paulo Gonçalves
335*adca4617SJoão Paulo Gonçalves/* Verdin I2C_4 CSI */
336*adca4617SJoão Paulo Gonçalves&i2c3 {
337*adca4617SJoão Paulo Gonçalves	status = "okay";
338*adca4617SJoão Paulo Gonçalves
339*adca4617SJoão Paulo Gonçalves	ivy_adc1: adc@40 {
340*adca4617SJoão Paulo Gonçalves		compatible = "ti,ads1119";
341*adca4617SJoão Paulo Gonçalves		reg = <0x40>;
342*adca4617SJoão Paulo Gonçalves		pinctrl-names = "default";
343*adca4617SJoão Paulo Gonçalves		pinctrl-0 = <&pinctrl_gpio7>;
344*adca4617SJoão Paulo Gonçalves		interrupt-parent = <&gpio1>;
345*adca4617SJoão Paulo Gonçalves		interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
346*adca4617SJoão Paulo Gonçalves		avdd-supply = <&reg_3v2_ain1>;
347*adca4617SJoão Paulo Gonçalves		dvdd-supply = <&reg_3v2_ain1>;
348*adca4617SJoão Paulo Gonçalves		vref-supply = <&reg_3v2_ain1>;
349*adca4617SJoão Paulo Gonçalves		#address-cells = <1>;
350*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <1>;
351*adca4617SJoão Paulo Gonçalves		#size-cells = <0>;
352*adca4617SJoão Paulo Gonçalves
353*adca4617SJoão Paulo Gonçalves		/* AIN1 0-33V Voltage Input */
354*adca4617SJoão Paulo Gonçalves		channel@0 {
355*adca4617SJoão Paulo Gonçalves			reg = <0>;
356*adca4617SJoão Paulo Gonçalves			diff-channels = <0 1>;
357*adca4617SJoão Paulo Gonçalves		};
358*adca4617SJoão Paulo Gonçalves
359*adca4617SJoão Paulo Gonçalves		/* AIN1 0-20mA Current Input */
360*adca4617SJoão Paulo Gonçalves		channel@1 {
361*adca4617SJoão Paulo Gonçalves			reg = <1>;
362*adca4617SJoão Paulo Gonçalves			diff-channels = <2 3>;
363*adca4617SJoão Paulo Gonçalves		};
364*adca4617SJoão Paulo Gonçalves	};
365*adca4617SJoão Paulo Gonçalves
366*adca4617SJoão Paulo Gonçalves	ivy_adc2: adc@41 {
367*adca4617SJoão Paulo Gonçalves		compatible = "ti,ads1119";
368*adca4617SJoão Paulo Gonçalves		reg = <0x41>;
369*adca4617SJoão Paulo Gonçalves		pinctrl-names = "default";
370*adca4617SJoão Paulo Gonçalves		pinctrl-0 = <&pinctrl_gpio8>;
371*adca4617SJoão Paulo Gonçalves		interrupt-parent = <&gpio1>;
372*adca4617SJoão Paulo Gonçalves		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
373*adca4617SJoão Paulo Gonçalves		avdd-supply = <&reg_3v2_ain2>;
374*adca4617SJoão Paulo Gonçalves		dvdd-supply = <&reg_3v2_ain2>;
375*adca4617SJoão Paulo Gonçalves		vref-supply = <&reg_3v2_ain2>;
376*adca4617SJoão Paulo Gonçalves		#address-cells = <1>;
377*adca4617SJoão Paulo Gonçalves		#io-channel-cells = <1>;
378*adca4617SJoão Paulo Gonçalves		#size-cells = <0>;
379*adca4617SJoão Paulo Gonçalves
380*adca4617SJoão Paulo Gonçalves		/* AIN2 0-33V Voltage Input */
381*adca4617SJoão Paulo Gonçalves		channel@0 {
382*adca4617SJoão Paulo Gonçalves			reg = <0>;
383*adca4617SJoão Paulo Gonçalves			diff-channels = <0 1>;
384*adca4617SJoão Paulo Gonçalves		};
385*adca4617SJoão Paulo Gonçalves
386*adca4617SJoão Paulo Gonçalves		/* AIN2 0-20mA Current Input */
387*adca4617SJoão Paulo Gonçalves		channel@1 {
388*adca4617SJoão Paulo Gonçalves			reg = <1>;
389*adca4617SJoão Paulo Gonçalves			diff-channels = <2 3>;
390*adca4617SJoão Paulo Gonçalves		};
391*adca4617SJoão Paulo Gonçalves	};
392*adca4617SJoão Paulo Gonçalves};
393*adca4617SJoão Paulo Gonçalves
394*adca4617SJoão Paulo Gonçalves/* Verdin I2C_1 */
395*adca4617SJoão Paulo Gonçalves&i2c4 {
396*adca4617SJoão Paulo Gonçalves	status = "okay";
397*adca4617SJoão Paulo Gonçalves};
398*adca4617SJoão Paulo Gonçalves
399*adca4617SJoão Paulo Gonçalves/* Verdin PCIE_1 */
400*adca4617SJoão Paulo Gonçalves&pcie0 {
401*adca4617SJoão Paulo Gonçalves	status = "okay";
402*adca4617SJoão Paulo Gonçalves};
403*adca4617SJoão Paulo Gonçalves
404*adca4617SJoão Paulo Gonçalves&pcie_phy {
405*adca4617SJoão Paulo Gonçalves	status = "okay";
406*adca4617SJoão Paulo Gonçalves};
407*adca4617SJoão Paulo Gonçalves
408*adca4617SJoão Paulo Gonçalves/* Verdin UART_3 */
409*adca4617SJoão Paulo Gonçalves&uart1 {
410*adca4617SJoão Paulo Gonçalves	status = "okay";
411*adca4617SJoão Paulo Gonçalves};
412*adca4617SJoão Paulo Gonçalves
413*adca4617SJoão Paulo Gonçalves/* Verdin UART_1 */
414*adca4617SJoão Paulo Gonçalves&uart2 {
415*adca4617SJoão Paulo Gonçalves	status = "okay";
416*adca4617SJoão Paulo Gonçalves};
417*adca4617SJoão Paulo Gonçalves
418*adca4617SJoão Paulo Gonçalves/* Verdin UART_2 */
419*adca4617SJoão Paulo Gonçalves&uart3 {
420*adca4617SJoão Paulo Gonçalves	linux,rs485-enabled-at-boot-time;
421*adca4617SJoão Paulo Gonçalves	rs485-rx-during-tx;
422*adca4617SJoão Paulo Gonçalves	status = "okay";
423*adca4617SJoão Paulo Gonçalves};
424*adca4617SJoão Paulo Gonçalves
425*adca4617SJoão Paulo Gonçalves/* Verdin USB_1*/
426*adca4617SJoão Paulo Gonçalves&usbotg1 {
427*adca4617SJoão Paulo Gonçalves	status = "okay";
428*adca4617SJoão Paulo Gonçalves};
429*adca4617SJoão Paulo Gonçalves
430*adca4617SJoão Paulo Gonçalves/* Verdin USB_2 */
431*adca4617SJoão Paulo Gonçalves&usbotg2 {
432*adca4617SJoão Paulo Gonçalves	status = "okay";
433*adca4617SJoão Paulo Gonçalves};
434*adca4617SJoão Paulo Gonçalves
435*adca4617SJoão Paulo Gonçalves/* Verdin SD_1 */
436*adca4617SJoão Paulo Gonçalves&usdhc2 {
437*adca4617SJoão Paulo Gonçalves	status = "okay";
438*adca4617SJoão Paulo Gonçalves};
439*adca4617SJoão Paulo Gonçalves
440*adca4617SJoão Paulo Gonçalves&iomuxc {
441*adca4617SJoão Paulo Gonçalves
442*adca4617SJoão Paulo Gonçalves	pinctrl-names = "default";
443*adca4617SJoão Paulo Gonçalves	pinctrl-0 = <&pinctrl_gpio2>, <&pinctrl_gpio3>,
444*adca4617SJoão Paulo Gonçalves		    <&pinctrl_ivy_dig_inputs>, <&pinctrl_ivy_relays>;
445*adca4617SJoão Paulo Gonçalves
446*adca4617SJoão Paulo Gonçalves	pinctrl_ivy_dig_inputs: ivydiginputsgrp {
447*adca4617SJoão Paulo Gonçalves		fsl,pins =
448*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6	0x96>, /* SODIMM 56 */
449*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7	0x96>; /* SODIMM 58 */
450*adca4617SJoão Paulo Gonçalves	};
451*adca4617SJoão Paulo Gonçalves
452*adca4617SJoão Paulo Gonçalves	pinctrl_ivy_leds: ivyledsgrp {
453*adca4617SJoão Paulo Gonçalves		fsl,pins =
454*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25	0x16>, /* SODIMM 30 */
455*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24	0x16>, /* SODIMM 32 */
456*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26	0x16>, /* SODIMM 34 */
457*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23	0x16>, /* SODIMM 36 */
458*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22	0x16>, /* SODIMM 44 */
459*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24	0x16>, /* SODIMM 46 */
460*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21	0x16>, /* SODIMM 48 */
461*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1	0x16>; /* SODIMM 54 */
462*adca4617SJoão Paulo Gonçalves	};
463*adca4617SJoão Paulo Gonçalves
464*adca4617SJoão Paulo Gonçalves	pinctrl_ivy_relays: ivyrelaysgrp {
465*adca4617SJoão Paulo Gonçalves		fsl,pins =
466*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8	0x16>, /* SODIMM 60 */
467*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9	0x16>, /* SODIMM 62 */
468*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2	0x16>, /* SODIMM 64 */
469*adca4617SJoão Paulo Gonçalves			<MX8MM_IOMUXC_NAND_DQS_GPIO3_IO14	0x16>; /* SODIMM 66 */
470*adca4617SJoão Paulo Gonçalves	};
471*adca4617SJoão Paulo Gonçalves};
472