xref: /linux/arch/arm64/boot/dts/freescale/imx95-verdin-dev.dtsi (revision e65f4718a577fcc84d40431f022985898b6dbf2e)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) Toradex
4 *
5 * Common dtsi for Verdin iMX95 SoM on development carrier board
6 *
7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95
8 * https://www.toradex.com/products/carrier-board/verdin-development-board-kit
9 */
10
11/ {
12	aliases {
13		eeprom1 = &carrier_eeprom;
14	};
15
16	sound {
17		compatible = "simple-audio-card";
18		simple-audio-card,bitclock-master = <&codec_dai>;
19		simple-audio-card,format = "i2s";
20		simple-audio-card,frame-master = <&codec_dai>;
21		simple-audio-card,mclk-fs = <256>;
22		simple-audio-card,name = "verdin-nau8822";
23		simple-audio-card,routing =
24			"Headphones", "LHP",
25			"Headphones", "RHP",
26			"Speaker", "LSPK",
27			"Speaker", "RSPK",
28			"Line Out", "AUXOUT1",
29			"Line Out", "AUXOUT2",
30			"LAUX", "Line In",
31			"RAUX", "Line In",
32			"LMICP", "Mic In",
33			"RMICP", "Mic In";
34		simple-audio-card,widgets =
35			"Headphones", "Headphones",
36			"Line Out", "Line Out",
37			"Speaker", "Speaker",
38			"Microphone", "Mic In",
39			"Line", "Line In";
40
41		codec_dai: simple-audio-card,codec {
42			clocks = <&scmi_clk IMX95_CLK_SAI3>;
43			sound-dai = <&nau8822_1a>;
44		};
45
46		simple-audio-card,cpu {
47			sound-dai = <&sai3>;
48		};
49	};
50};
51
52/* Verdin ADC_1, ADC_2, ADC_3 and ADC_4 */
53&adc1 {
54	status = "okay";
55};
56
57/* Verdin ETH_1 (On-module PHY) */
58&enetc_port0 {
59	status = "okay";
60};
61
62/* Verdin ETH_2_RGMII */
63&enetc_port1 {
64	phy-handle = <&ethphy2>;
65	phy-mode = "rgmii-id";
66
67	status = "okay";
68};
69
70/* Verdin CAN_1 */
71&flexcan1 {
72	status = "okay";
73};
74
75/* Verdin CAN_2 */
76&flexcan2 {
77	status = "okay";
78};
79
80/* Verdin QSPI_1 */
81&flexspi1 {
82	status = "okay";
83};
84
85&gpio1 {
86	pinctrl-names = "default";
87	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
88};
89
90&gpio2 {
91	pinctrl-names = "default";
92	pinctrl-0 = <&pinctrl_gpio1>,
93		    <&pinctrl_gpio2>,
94		    <&pinctrl_gpio3>;
95};
96
97&gpio3 {
98	pinctrl-names = "default";
99	pinctrl-0 = <&pinctrl_gpio6>;
100};
101
102&gpio4 {
103	pinctrl-names = "default";
104	pinctrl-0 = <&pinctrl_gpio5>;
105};
106
107&gpio5 {
108	pinctrl-names = "default";
109	pinctrl-0 = <&pinctrl_gpio4>;
110};
111
112/* Verdin I2C_3_HDMI */
113&i3c2 {
114	status = "okay";
115};
116
117/* Verdin I2C_2_DSI */
118&lpi2c3 {
119	status = "okay";
120};
121
122/* Verdin I2C_1 */
123&lpi2c4 {
124	status = "okay";
125
126	nau8822_1a: audio-codec@1a {
127		compatible = "nuvoton,nau8822";
128		reg = <0x1a>;
129		pinctrl-names = "default";
130		pinctrl-0 = <&pinctrl_sai3_mclk>;
131		#sound-dai-cells = <0>;
132	};
133
134	carrier_gpio_expander: gpio@21 {
135		compatible = "nxp,pcal6416";
136		reg = <0x21>;
137		#gpio-cells = <2>;
138		gpio-controller;
139	};
140
141	/* Current measurement into module VCC */
142	hwmon@40 {
143		compatible = "ti,ina219";
144		reg = <0x40>;
145		shunt-resistor = <10000>;
146	};
147
148	temperature-sensor@4f {
149		compatible = "ti,tmp75c";
150		reg = <0x4f>;
151	};
152
153	carrier_eeprom: eeprom@57 {
154		compatible = "st,24c02", "atmel,24c02";
155		reg = <0x57>;
156		pagesize = <16>;
157	};
158};
159
160/* Verdin I2C_4_CSI */
161&lpi2c5 {
162	status = "okay";
163};
164
165/* Verdin UART_3, used as the Linux console */
166&lpuart1 {
167	status = "okay";
168};
169
170/* Verdin UART_4 */
171&lpuart2 {
172	status = "okay";
173};
174
175/* Verdin UART_1, connector X50 through RS485 transceiver */
176&lpuart7 {
177	rs485-rts-active-low;
178	rs485-rx-during-tx;
179	linux,rs485-enabled-at-boot-time;
180
181	status = "okay";
182};
183
184/* Verdin UART_2 */
185&lpuart8 {
186	status = "okay";
187};
188
189&netc_emdio {
190	ethphy2: ethernet-phy@7 {
191		compatible = "ethernet-phy-ieee802.3-c22";
192		reg = <7>;
193		pinctrl-names = "default";
194		pinctrl-0 = <&pinctrl_eth2_rgmii_int>;
195		interrupt-parent = <&gpio1>;
196		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
197		micrel,led-mode = <0>;
198	};
199};
200
201/* Verdin PCIE_1 */
202&pcie0 {
203	status = "okay";
204};
205
206/* Verdin I2S_1 */
207&sai3 {
208	status = "okay";
209};
210
211/* Verdin PWM_1 */
212&tpm4 {
213	status = "okay";
214};
215
216/* Verdin PWM_2 */
217&tpm5 {
218	status = "okay";
219};
220
221/* Verdin PWM_3_DSI */
222&tpm6 {
223	status = "okay";
224};
225
226/* Verdin USB_1 */
227&usb2 {
228	status = "okay";
229};
230
231/* Verdin USB_2 */
232&usb3 {
233	fsl,permanently-attached;
234
235	status = "okay";
236};
237
238&usb3_phy {
239	status = "okay";
240};
241
242/* Verdin SD_1 */
243&usdhc2 {
244	status = "okay";
245};
246
247/* Verdin CTRL_WAKE1_MICO# */
248&verdin_gpio_keys {
249	status = "okay";
250};
251