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