xref: /linux/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2022 Toradex
4 */
5
6/ {
7	sound_card: sound-card {
8		compatible = "simple-audio-card";
9		simple-audio-card,bitclock-master = <&dailink_master>;
10		simple-audio-card,format = "i2s";
11		simple-audio-card,frame-master = <&dailink_master>;
12		simple-audio-card,mclk-fs = <256>;
13		simple-audio-card,name = "verdin-nau8822";
14		simple-audio-card,routing =
15			"Headphones", "LHP",
16			"Headphones", "RHP",
17			"Speaker", "LSPK",
18			"Speaker", "RSPK",
19			"Line Out", "AUXOUT1",
20			"Line Out", "AUXOUT2",
21			"LAUX", "Line In",
22			"RAUX", "Line In",
23			"LMICP", "Mic In",
24			"RMICP", "Mic In";
25		simple-audio-card,widgets =
26			"Headphones", "Headphones",
27			"Line Out", "Line Out",
28			"Speaker", "Speaker",
29			"Microphone", "Mic In",
30			"Line", "Line In";
31
32		dailink_master: simple-audio-card,codec {
33			clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
34			sound-dai = <&nau8822_1a>;
35		};
36
37		simple-audio-card,cpu {
38			sound-dai = <&sai2>;
39		};
40	};
41};
42
43/* Verdin SPI_1 */
44&ecspi2 {
45	status = "okay";
46};
47
48/* EEPROM on display adapter boards */
49&eeprom_display_adapter {
50	status = "okay";
51};
52
53/* EEPROM on Verdin Development board */
54&eeprom_carrier_board {
55	status = "okay";
56};
57
58&fec1 {
59	status = "okay";
60};
61
62/* Verdin QSPI_1 */
63&flexspi {
64	status = "okay";
65};
66
67/* Current measurement into module VCC */
68&hwmon {
69	status = "okay";
70};
71
72&hwmon_temp {
73	vs-supply = <&reg_1p8v>;
74	status = "okay";
75};
76
77&i2c3 {
78	status = "okay";
79};
80
81&gpio5 {
82	pinctrl-names = "default";
83	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
84};
85
86&gpio_expander_21 {
87	status = "okay";
88};
89
90/* Verdin I2C_1 */
91&i2c4 {
92	status = "okay";
93
94	/* Audio Codec */
95	nau8822_1a: audio-codec@1a {
96		compatible = "nuvoton,nau8822";
97		reg = <0x1a>;
98		#sound-dai-cells = <0>;
99	};
100};
101
102/* Verdin PCIE_1 */
103&pcie0 {
104	status = "okay";
105};
106
107&pcie_phy {
108	status = "okay";
109};
110
111/* Verdin PWM_3_DSI */
112&pwm1 {
113	status = "okay";
114};
115
116/* Verdin PWM_1 */
117&pwm2 {
118	status = "okay";
119};
120
121/* Verdin PWM_2 */
122&pwm3 {
123	status = "okay";
124};
125
126/* Verdin I2S_1 */
127&sai2 {
128	status = "okay";
129};
130
131/* Verdin UART_3 */
132&uart1 {
133	status = "okay";
134};
135
136/* Verdin UART_1, connector X50 through RS485 transceiver */
137&uart2 {
138	linux,rs485-enabled-at-boot-time;
139	rs485-rts-active-low;
140	rs485-rx-during-tx;
141	status = "okay";
142};
143
144/* Verdin UART_2 */
145&uart3 {
146	status = "okay";
147};
148
149/* Verdin USB_1 */
150&usbotg1 {
151	disable-over-current;
152	status = "okay";
153};
154
155/* Verdin USB_2 */
156&usbotg2 {
157	disable-over-current;
158	status = "okay";
159};
160
161/* Limit frequency on dev board due to long traces and bad signal integrity */
162&usdhc2 {
163	max-frequency = <100000000>;
164	status = "okay";
165};
166