xref: /linux/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi (revision 40ccd6aa3e2e05be93394e3cd560c718dedfcc77)
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-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	reg_usb_hub: regulator-usb-hub {
37		compatible = "regulator-fixed";
38		enable-active-high;
39		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
40		gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
41		regulator-boot-on;
42		regulator-name = "HUB_PWR_EN";
43	};
44
45	reg_pcie: regulator-pcie {
46		compatible = "regulator-fixed";
47		enable-active-high;
48		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
49		gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
50		regulator-boot-on;
51		regulator-name = "PCIE_1_PWR_EN";
52		startup-delay-us = <100000>;
53	};
54};
55
56/* Verdin SPI_1 */
57&ecspi2 {
58	status = "okay";
59};
60
61/* EEPROM on display adapter boards */
62&eeprom_display_adapter {
63	status = "okay";
64};
65
66/* EEPROM on Verdin Development board */
67&eeprom_carrier_board {
68	status = "okay";
69};
70
71&fec1 {
72	status = "okay";
73};
74
75/* Verdin QSPI_1 */
76&flexspi {
77	status = "okay";
78};
79
80&gpio5 {
81	pinctrl-names = "default";
82	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
83};
84
85/* Current measurement into module VCC */
86&hwmon {
87	status = "okay";
88};
89
90&hwmon_temp {
91	vs-supply = <&reg_1p8v>;
92	status = "okay";
93};
94
95&i2c3 {
96	status = "okay";
97};
98
99/* Verdin I2C_1 */
100&i2c4 {
101	status = "okay";
102
103	/* Audio Codec */
104	wm8904_1a: audio-codec@1a {
105		compatible = "wlf,wm8904";
106		AVDD-supply = <&reg_3p3v>;
107		clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
108		clock-names = "mclk";
109		CPVDD-supply = <&reg_3p3v>;
110		DBVDD-supply = <&reg_3p3v>;
111		DCVDD-supply = <&reg_3p3v>;
112		MICVDD-supply = <&reg_3p3v>;
113		reg = <0x1a>;
114		#sound-dai-cells = <0>;
115	};
116};
117
118/* Verdin PCIE_1 */
119&pcie0 {
120	vpcie-supply = <&reg_pcie>;
121	status = "okay";
122};
123
124&pcie_phy {
125	status = "okay";
126};
127
128/* Verdin PWM_3_DSI */
129&pwm1 {
130	status = "okay";
131};
132
133/* Verdin PWM_1 */
134&pwm2 {
135	status = "okay";
136};
137
138/* Verdin PWM_2 */
139&pwm3 {
140	status = "okay";
141};
142
143/* We support turning off sleep moci on Dahlia */
144&reg_force_sleep_moci {
145	status = "disabled";
146};
147
148/* Verdin I2S_1 */
149&sai2 {
150	status = "okay";
151};
152
153/* Verdin UART_3 */
154&uart1 {
155	status = "okay";
156};
157
158/* Verdin UART_1 */
159&uart2 {
160	status = "okay";
161};
162
163/* Verdin UART_2 */
164&uart3 {
165	status = "okay";
166};
167
168/* Verdin USB_1 */
169&usbotg1 {
170	disable-over-current;
171	status = "okay";
172};
173
174/* Verdin USB_2 */
175&usbotg2 {
176	#address-cells = <1>;
177	#size-cells = <0>;
178	disable-over-current;
179	status = "okay";
180
181	usb-hub@1 {
182		compatible = "usb424,2744";
183		reg = <1>;
184		vdd-supply = <&reg_usb_hub>;
185	};
186};
187
188/* Verdin SD_1 */
189&usdhc2 {
190	status = "okay";
191};
192