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