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 = "imx8mm-wm8904";
14		simple-audio-card,routing =
15			"Headphone Jack", "HPOUTL",
16			"Headphone Jack", "HPOUTR",
17			"IN2L", "Line In Jack",
18			"IN2R", "Line In Jack",
19			"Headphone Jack", "MICBIAS",
20			"IN1L", "Headphone Jack";
21		simple-audio-card,widgets =
22			"Microphone", "Headphone Jack",
23			"Headphone", "Headphone Jack",
24			"Line", "Line In Jack";
25
26		dailink_master: simple-audio-card,codec {
27			clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
28			sound-dai = <&wm8904_1a>;
29		};
30
31		simple-audio-card,cpu {
32			sound-dai = <&sai2>;
33		};
34	};
35};
36
37/* Verdin SPI_1 */
38&ecspi2 {
39	status = "okay";
40};
41
42/* EEPROM on display adapter boards */
43&eeprom_display_adapter {
44	status = "okay";
45};
46
47/* EEPROM on Verdin Development board */
48&eeprom_carrier_board {
49	status = "okay";
50};
51
52&fec1 {
53	status = "okay";
54};
55
56/* Verdin QSPI_1 */
57&flexspi {
58	status = "okay";
59};
60
61/* Current measurement into module VCC */
62&hwmon {
63	status = "okay";
64};
65
66&hwmon_temp {
67	vs-supply = <&reg_1p8v>;
68	status = "okay";
69};
70
71&i2c3 {
72	status = "okay";
73};
74
75/* Verdin I2C_1 */
76&i2c4 {
77	status = "okay";
78
79	/* Audio Codec */
80	wm8904_1a: audio-codec@1a {
81		compatible = "wlf,wm8904";
82		AVDD-supply = <&reg_3p3v>;
83		clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
84		clock-names = "mclk";
85		CPVDD-supply = <&reg_3p3v>;
86		DBVDD-supply = <&reg_3p3v>;
87		DCVDD-supply = <&reg_3p3v>;
88		MICVDD-supply = <&reg_3p3v>;
89		reg = <0x1a>;
90		#sound-dai-cells = <0>;
91	};
92};
93
94/* Verdin PCIE_1 */
95&pcie0 {
96	status = "okay";
97};
98
99&pcie_phy {
100	status = "okay";
101};
102
103/* Verdin PWM_3_DSI */
104&pwm1 {
105	status = "okay";
106};
107
108/* Verdin PWM_1 */
109&pwm2 {
110	status = "okay";
111};
112
113/* Verdin PWM_2 */
114&pwm3 {
115	status = "okay";
116};
117
118/* Verdin I2S_1 */
119&sai2 {
120	status = "okay";
121};
122
123/* Verdin UART_3 */
124&uart1 {
125	status = "okay";
126};
127
128/* Verdin UART_1 */
129&uart2 {
130	status = "okay";
131};
132
133/* Verdin UART_2 */
134&uart3 {
135	status = "okay";
136};
137
138/* Verdin USB_1 */
139&usbotg1 {
140	disable-over-current;
141	status = "okay";
142};
143
144/* Verdin USB_2 */
145&usbotg2 {
146	disable-over-current;
147	status = "okay";
148};
149
150/* Verdin SD_1 */
151&usdhc2 {
152	status = "okay";
153};
154