1a39ed23bSMarcel Ziswiler// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2a39ed23bSMarcel Ziswiler/*
3a39ed23bSMarcel Ziswiler * Copyright 2022 Toradex
4a39ed23bSMarcel Ziswiler */
5a39ed23bSMarcel Ziswiler
6*87495891SFrancesco Dolcini/ {
7*87495891SFrancesco Dolcini	sound {
8*87495891SFrancesco Dolcini		compatible = "simple-audio-card";
9*87495891SFrancesco Dolcini		simple-audio-card,bitclock-master = <&codec_dai>;
10*87495891SFrancesco Dolcini		simple-audio-card,format = "i2s";
11*87495891SFrancesco Dolcini		simple-audio-card,frame-master = <&codec_dai>;
12*87495891SFrancesco Dolcini		simple-audio-card,mclk-fs = <256>;
13*87495891SFrancesco Dolcini		simple-audio-card,name = "imx8mp-wm8904";
14*87495891SFrancesco Dolcini		simple-audio-card,routing =
15*87495891SFrancesco Dolcini			"Headphone Jack", "HPOUTL",
16*87495891SFrancesco Dolcini			"Headphone Jack", "HPOUTR",
17*87495891SFrancesco Dolcini			"IN2L", "Line In Jack",
18*87495891SFrancesco Dolcini			"IN2R", "Line In Jack",
19*87495891SFrancesco Dolcini			"Headphone Jack", "MICBIAS",
20*87495891SFrancesco Dolcini			"IN1L", "Headphone Jack";
21*87495891SFrancesco Dolcini		simple-audio-card,widgets =
22*87495891SFrancesco Dolcini			"Microphone", "Headphone Jack",
23*87495891SFrancesco Dolcini			"Headphone", "Headphone Jack",
24*87495891SFrancesco Dolcini			"Line", "Line In Jack";
25*87495891SFrancesco Dolcini
26*87495891SFrancesco Dolcini		codec_dai: simple-audio-card,codec {
27*87495891SFrancesco Dolcini			clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
28*87495891SFrancesco Dolcini			sound-dai = <&wm8904_1a>;
29*87495891SFrancesco Dolcini		};
30*87495891SFrancesco Dolcini
31*87495891SFrancesco Dolcini		simple-audio-card,cpu {
32*87495891SFrancesco Dolcini			sound-dai = <&sai1>;
33*87495891SFrancesco Dolcini		};
34*87495891SFrancesco Dolcini	};
35*87495891SFrancesco Dolcini};
36a39ed23bSMarcel Ziswiler
37a39ed23bSMarcel Ziswiler&backlight {
38a39ed23bSMarcel Ziswiler	power-supply = <&reg_3p3v>;
39a39ed23bSMarcel Ziswiler};
40a39ed23bSMarcel Ziswiler
41a39ed23bSMarcel Ziswiler/* Verdin SPI_1 */
42a39ed23bSMarcel Ziswiler&ecspi1 {
43a39ed23bSMarcel Ziswiler	status = "okay";
44a39ed23bSMarcel Ziswiler};
45a39ed23bSMarcel Ziswiler
46a39ed23bSMarcel Ziswiler/* EEPROM on display adapter boards */
47a39ed23bSMarcel Ziswiler&eeprom_display_adapter {
48a39ed23bSMarcel Ziswiler	status = "okay";
49a39ed23bSMarcel Ziswiler};
50a39ed23bSMarcel Ziswiler
51a39ed23bSMarcel Ziswiler/* EEPROM on Verdin Development board */
52a39ed23bSMarcel Ziswiler&eeprom_carrier_board {
53a39ed23bSMarcel Ziswiler	status = "okay";
54a39ed23bSMarcel Ziswiler};
55a39ed23bSMarcel Ziswiler
56a39ed23bSMarcel Ziswiler&eqos {
57a39ed23bSMarcel Ziswiler	status = "okay";
58a39ed23bSMarcel Ziswiler};
59a39ed23bSMarcel Ziswiler
60a39ed23bSMarcel Ziswiler&flexcan1 {
61a39ed23bSMarcel Ziswiler	status = "okay";
62a39ed23bSMarcel Ziswiler};
63a39ed23bSMarcel Ziswiler
64a39ed23bSMarcel Ziswiler&flexcan2 {
65a39ed23bSMarcel Ziswiler	status = "okay";
66a39ed23bSMarcel Ziswiler};
67a39ed23bSMarcel Ziswiler
68a39ed23bSMarcel Ziswiler/* Verdin QSPI_1 */
69a39ed23bSMarcel Ziswiler&flexspi {
70a39ed23bSMarcel Ziswiler	status = "okay";
71a39ed23bSMarcel Ziswiler};
72a39ed23bSMarcel Ziswiler
73a39ed23bSMarcel Ziswiler/* Current measurement into module VCC */
74a39ed23bSMarcel Ziswiler&hwmon {
75a39ed23bSMarcel Ziswiler	status = "okay";
76a39ed23bSMarcel Ziswiler};
77a39ed23bSMarcel Ziswiler
78a39ed23bSMarcel Ziswiler&hwmon_temp {
79a39ed23bSMarcel Ziswiler	vs-supply = <&reg_1p8v>;
80a39ed23bSMarcel Ziswiler	status = "okay";
81a39ed23bSMarcel Ziswiler};
82a39ed23bSMarcel Ziswiler
83a39ed23bSMarcel Ziswiler/* Verdin I2C_2_DSI */
84a39ed23bSMarcel Ziswiler&i2c2 {
85a39ed23bSMarcel Ziswiler	status = "okay";
86a39ed23bSMarcel Ziswiler};
87a39ed23bSMarcel Ziswiler
88a39ed23bSMarcel Ziswiler&i2c3 {
89a39ed23bSMarcel Ziswiler	status = "okay";
90a39ed23bSMarcel Ziswiler};
91a39ed23bSMarcel Ziswiler
92a39ed23bSMarcel Ziswiler/* Verdin I2C_1 */
93a39ed23bSMarcel Ziswiler&i2c4 {
94a39ed23bSMarcel Ziswiler	status = "okay";
95a39ed23bSMarcel Ziswiler
96*87495891SFrancesco Dolcini	/* Audio Codec */
97*87495891SFrancesco Dolcini	wm8904_1a: audio-codec@1a {
98*87495891SFrancesco Dolcini		compatible = "wlf,wm8904";
99*87495891SFrancesco Dolcini		reg = <0x1a>;
100*87495891SFrancesco Dolcini		pinctrl-names = "default";
101*87495891SFrancesco Dolcini		pinctrl-0 = <&pinctrl_sai1>;
102*87495891SFrancesco Dolcini		#sound-dai-cells = <0>;
103*87495891SFrancesco Dolcini		clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
104*87495891SFrancesco Dolcini		clock-names = "mclk";
105*87495891SFrancesco Dolcini		AVDD-supply = <&reg_1p8v>;
106*87495891SFrancesco Dolcini		CPVDD-supply = <&reg_1p8v>;
107*87495891SFrancesco Dolcini		DBVDD-supply = <&reg_1p8v>;
108*87495891SFrancesco Dolcini		DCVDD-supply = <&reg_1p8v>;
109*87495891SFrancesco Dolcini		MICVDD-supply = <&reg_1p8v>;
110*87495891SFrancesco Dolcini	};
111a39ed23bSMarcel Ziswiler};
112a39ed23bSMarcel Ziswiler
11393ba667dSMarcel Ziswiler/* Verdin PCIE_1 */
11493ba667dSMarcel Ziswiler&pcie {
11593ba667dSMarcel Ziswiler	status = "okay";
11693ba667dSMarcel Ziswiler};
11793ba667dSMarcel Ziswiler
11893ba667dSMarcel Ziswiler&pcie_phy {
11993ba667dSMarcel Ziswiler	status = "okay";
12093ba667dSMarcel Ziswiler};
121a39ed23bSMarcel Ziswiler
122a39ed23bSMarcel Ziswiler/* Verdin PWM_1 */
123a39ed23bSMarcel Ziswiler&pwm1 {
124a39ed23bSMarcel Ziswiler	status = "okay";
125a39ed23bSMarcel Ziswiler};
126a39ed23bSMarcel Ziswiler
127a39ed23bSMarcel Ziswiler/* Verdin PWM_2 */
128a39ed23bSMarcel Ziswiler&pwm2 {
129a39ed23bSMarcel Ziswiler	status = "okay";
130a39ed23bSMarcel Ziswiler};
131a39ed23bSMarcel Ziswiler
132a39ed23bSMarcel Ziswiler/* Verdin PWM_3_DSI */
133a39ed23bSMarcel Ziswiler&pwm3 {
134a39ed23bSMarcel Ziswiler	status = "okay";
135a39ed23bSMarcel Ziswiler};
136a39ed23bSMarcel Ziswiler
137a39ed23bSMarcel Ziswiler&reg_usdhc2_vmmc {
138a39ed23bSMarcel Ziswiler	vin-supply = <&reg_3p3v>;
139a39ed23bSMarcel Ziswiler};
140a39ed23bSMarcel Ziswiler
141*87495891SFrancesco Dolcini/* Verdin I2S_1 */
142*87495891SFrancesco Dolcini&sai1 {
143*87495891SFrancesco Dolcini	assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
144*87495891SFrancesco Dolcini	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
145*87495891SFrancesco Dolcini	assigned-clock-rates = <24576000>;
146*87495891SFrancesco Dolcini	fsl,sai-mclk-direction-output;
147*87495891SFrancesco Dolcini	status = "okay";
148*87495891SFrancesco Dolcini};
149a39ed23bSMarcel Ziswiler
150a39ed23bSMarcel Ziswiler/* Verdin UART_1 */
151a39ed23bSMarcel Ziswiler&uart1 {
152a39ed23bSMarcel Ziswiler	status = "okay";
153a39ed23bSMarcel Ziswiler};
154a39ed23bSMarcel Ziswiler
155a39ed23bSMarcel Ziswiler/* Verdin UART_2 */
156a39ed23bSMarcel Ziswiler&uart2 {
157a39ed23bSMarcel Ziswiler	status = "okay";
158a39ed23bSMarcel Ziswiler};
159a39ed23bSMarcel Ziswiler
160a39ed23bSMarcel Ziswiler/* Verdin UART_3, used as the Linux Console */
161a39ed23bSMarcel Ziswiler&uart3 {
162a39ed23bSMarcel Ziswiler	status = "okay";
163a39ed23bSMarcel Ziswiler};
164a39ed23bSMarcel Ziswiler
165a39ed23bSMarcel Ziswiler/* Verdin USB_1 */
166a39ed23bSMarcel Ziswiler&usb3_0 {
167a39ed23bSMarcel Ziswiler	status = "okay";
168a39ed23bSMarcel Ziswiler};
169a39ed23bSMarcel Ziswiler
170a39ed23bSMarcel Ziswiler&usb3_phy0 {
171a39ed23bSMarcel Ziswiler	status = "okay";
172a39ed23bSMarcel Ziswiler};
173a39ed23bSMarcel Ziswiler
174a39ed23bSMarcel Ziswiler/* Verdin USB_2 */
175a39ed23bSMarcel Ziswiler&usb3_1 {
176237f7d58SMarcel Ziswiler	fsl,permanently-attached;
177a39ed23bSMarcel Ziswiler	status = "okay";
178a39ed23bSMarcel Ziswiler};
179a39ed23bSMarcel Ziswiler
180a39ed23bSMarcel Ziswiler&usb3_phy1 {
181a39ed23bSMarcel Ziswiler	status = "okay";
182a39ed23bSMarcel Ziswiler};
183a39ed23bSMarcel Ziswiler
184a39ed23bSMarcel Ziswiler/* Verdin SD_1 */
185a39ed23bSMarcel Ziswiler&usdhc2 {
186a39ed23bSMarcel Ziswiler	status = "okay";
187a39ed23bSMarcel Ziswiler};
188