xref: /linux/arch/arm64/boot/dts/freescale/imx95-aquila-clover.dts (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) Toradex
4 *
5 * https://www.toradex.com/computer-on-modules/aquila-arm-family/nxp-imx95
6 * https://www.toradex.com/products/carrier-board/clover
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/pwm/pwm.h>
12#include <dt-bindings/usb/pd.h>
13#include "imx95-aquila.dtsi"
14
15/ {
16	model = "Aquila iMX95 on Aquila Clover Board";
17	compatible = "toradex,aquila-imx95-clover",
18		     "toradex,aquila-imx95",
19		     "fsl,imx95";
20
21	aliases {
22		eeprom1 = &carrier_eeprom;
23	};
24
25	dp_1_connector: dp0-connector {
26		compatible = "dp-connector";
27		dp-pwr-supply = <&reg_dp_3p3v>;
28		type = "full-size";
29
30		port {
31			dp_1_connector_in: endpoint {
32				remote-endpoint = <&dsi2dp_out>;
33			};
34		};
35	};
36
37	reg_dp_3p3v: regulator-dp-3p3v {
38		compatible = "regulator-fixed";
39		pinctrl-names = "default";
40		pinctrl-0 = <&pinctrl_gpio_21_dp>;
41		/* Aquila GPIO_21_DP */
42		gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
43		enable-active-high;
44		regulator-max-microvolt = <3300000>;
45		regulator-min-microvolt = <3300000>;
46		regulator-name = "DP_3V3";
47		startup-delay-us = <10000>;
48	};
49};
50
51/* Aquila ADC_[1-4] */
52&adc1 {
53	status = "okay";
54};
55
56/* Aquila CTRL_WAKE1_MICO# */
57&aquila_key_wake {
58	status = "okay";
59};
60
61&dsi2dp_out {
62	remote-endpoint = <&dp_1_connector_in>;
63};
64
65/* Aquila ETH_1 */
66&enetc_port0 {
67	status = "okay";
68};
69
70/* Aquila CAN_1 */
71&flexcan1 {
72	status = "okay";
73};
74
75/* Aquila CAN_2 */
76&flexcan2 {
77	status = "okay";
78};
79
80/* Aquila CAN_3 */
81&flexcan3 {
82	status = "okay";
83};
84
85/* Aquila CAN_4 */
86&flexcan4 {
87	status = "okay";
88};
89
90/* Aquila QSPI_1 */
91&flexspi1 {
92	pinctrl-0 = <&pinctrl_flexspi1_4bit>,
93		    <&pinctrl_qspi_cs1>;
94
95	status = "okay";
96
97	flash@0 {
98		compatible = "jedec,spi-nor";
99		reg = <0x0>;
100		spi-max-frequency = <66000000>;
101		spi-rx-bus-width = <4>;
102		spi-tx-bus-width = <4>;
103	};
104};
105
106&gpio4 {
107	pinctrl-names = "default";
108	pinctrl-0 = <&pinctrl_gpio_1>,
109		    <&pinctrl_gpio_2>,
110		    <&pinctrl_gpio_3>,
111		    <&pinctrl_gpio_4>;
112};
113
114/* Aquila I2C_2 */
115&i3c2 {
116	status = "okay";
117};
118
119/* Aquila I2C_1 */
120&lpi2c2 {
121	status = "okay";
122
123	fan_controller: fan@18 {
124		compatible = "ti,amc6821";
125		reg = <0x18>;
126		#pwm-cells = <2>;
127
128		fan {
129			cooling-levels = <255>;
130			pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>;
131		};
132	};
133
134	temperature-sensor@4f {
135		compatible = "ti,tmp1075";
136		reg = <0x4f>;
137	};
138
139	/* USB-C OTG (TCPC USB PD PHY) */
140	tcpc@52 {
141		compatible = "nxp,ptn5110", "tcpci";
142		reg = <0x52>;
143		interrupt-parent = <&som_gpio_expander_1>;
144		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
145
146		connector {
147			compatible = "usb-c-connector";
148			data-role = "dual";
149			op-sink-microwatt = <0>;
150			power-role = "dual";
151			self-powered;
152			sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
153			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
154			try-power-role = "sink";
155
156			ports {
157				#address-cells = <1>;
158				#size-cells = <0>;
159
160				port@0 {
161					reg = <0>;
162
163					typec_con_hs: endpoint {
164						remote-endpoint = <&usb1_con_hs>;
165					};
166				};
167
168				port@1 {
169					reg = <1>;
170
171					typec_con_ss: endpoint {
172						remote-endpoint = <&usb1_con_ss>;
173					};
174				};
175			};
176		};
177	};
178
179	carrier_eeprom: eeprom@57 {
180		compatible = "st,24c02", "atmel,24c02";
181		reg = <0x57>;
182		pagesize = <16>;
183	};
184};
185
186/* Aquila I2C_6 */
187&lpi2c5 {
188	status = "okay";
189};
190
191/* Aquila SPI_1 */
192&lpspi6 {
193	pinctrl-names = "default";
194	pinctrl-0 = <&pinctrl_lpspi6 &pinctrl_gpio_5>;
195	cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>, <&gpio4 18 GPIO_ACTIVE_LOW>;
196
197	status = "okay";
198
199	tpm@1 {
200		compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
201		reg = <1>;
202		pinctrl-names = "default";
203		pinctrl-0 = <&pinctrl_gpio_6>;
204		interrupt-parent = <&gpio4>;
205		interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
206		spi-max-frequency = <12000000>;
207	};
208};
209
210/* Aquila UART_3, used as the Linux Console */
211&lpuart1 {
212	status = "okay";
213};
214
215/* Aquila UART_4 */
216&lpuart2 {
217	status = "okay";
218};
219
220/* Aquila UART_1 */
221&lpuart3 {
222	status = "okay";
223};
224
225/* Aquila UART_2 */
226&lpuart7 {
227	status = "okay";
228};
229
230/* Aquila PCIE_1 */
231&pcie0 {
232	status = "okay";
233};
234
235/* Aquila PWM_1 */
236&tpm3 {
237	status = "okay";
238};
239
240/* Aquila PWM_3_DSI and PWM_4_DP */
241&tpm5 {
242	status = "okay";
243};
244
245/* Aquila PWM_2 */
246&tpm6 {
247	status = "okay";
248};
249
250/* Aquila USB_2, optional Bluetooth USB */
251&usb2 {
252	status = "okay";
253};
254
255/* Aquila USB_1 */
256&usb3 {
257	status = "okay";
258};
259
260&usb3_dwc3 {
261	status = "okay";
262
263	port {
264		usb1_con_hs: endpoint {
265			remote-endpoint = <&typec_con_hs>;
266		};
267	};
268};
269
270&usb3_phy {
271	orientation-switch;
272
273	status = "okay";
274
275	port {
276		usb1_con_ss: endpoint {
277			remote-endpoint = <&typec_con_ss>;
278		};
279	};
280};
281
282/* Aquila SD_1 */
283&usdhc2 {
284	status = "okay";
285};
286