xref: /freebsd-src/sys/contrib/device-tree/src/arm64/freescale/imx8mp-verdin-dahlia.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2d5b0e70fSEmmanuel Vadot/*
3d5b0e70fSEmmanuel Vadot * Copyright 2022 Toradex
4d5b0e70fSEmmanuel Vadot */
5d5b0e70fSEmmanuel Vadot
6aa1a8ff2SEmmanuel Vadot/ {
70e8011faSEmmanuel Vadot	native-hdmi-connector {
80e8011faSEmmanuel Vadot		compatible = "hdmi-connector";
90e8011faSEmmanuel Vadot		label = "X21";
100e8011faSEmmanuel Vadot		type = "a";
110e8011faSEmmanuel Vadot
120e8011faSEmmanuel Vadot		port {
130e8011faSEmmanuel Vadot			native_hdmi_connector_in: endpoint {
140e8011faSEmmanuel Vadot				remote-endpoint = <&hdmi_tx_out>;
150e8011faSEmmanuel Vadot			};
160e8011faSEmmanuel Vadot		};
170e8011faSEmmanuel Vadot	};
180e8011faSEmmanuel Vadot
19aa1a8ff2SEmmanuel Vadot	sound {
20aa1a8ff2SEmmanuel Vadot		compatible = "simple-audio-card";
21aa1a8ff2SEmmanuel Vadot		simple-audio-card,bitclock-master = <&codec_dai>;
22aa1a8ff2SEmmanuel Vadot		simple-audio-card,format = "i2s";
23aa1a8ff2SEmmanuel Vadot		simple-audio-card,frame-master = <&codec_dai>;
24aa1a8ff2SEmmanuel Vadot		simple-audio-card,mclk-fs = <256>;
257d0873ebSEmmanuel Vadot		simple-audio-card,name = "verdin-wm8904";
26aa1a8ff2SEmmanuel Vadot		simple-audio-card,routing =
27aa1a8ff2SEmmanuel Vadot			"Headphone Jack", "HPOUTL",
28aa1a8ff2SEmmanuel Vadot			"Headphone Jack", "HPOUTR",
29aa1a8ff2SEmmanuel Vadot			"IN2L", "Line In Jack",
30aa1a8ff2SEmmanuel Vadot			"IN2R", "Line In Jack",
31aa1a8ff2SEmmanuel Vadot			"Headphone Jack", "MICBIAS",
32aa1a8ff2SEmmanuel Vadot			"IN1L", "Headphone Jack";
33aa1a8ff2SEmmanuel Vadot		simple-audio-card,widgets =
34aa1a8ff2SEmmanuel Vadot			"Microphone", "Headphone Jack",
35aa1a8ff2SEmmanuel Vadot			"Headphone", "Headphone Jack",
36aa1a8ff2SEmmanuel Vadot			"Line", "Line In Jack";
37aa1a8ff2SEmmanuel Vadot
38aa1a8ff2SEmmanuel Vadot		codec_dai: simple-audio-card,codec {
39aa1a8ff2SEmmanuel Vadot			clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
40aa1a8ff2SEmmanuel Vadot			sound-dai = <&wm8904_1a>;
41aa1a8ff2SEmmanuel Vadot		};
42aa1a8ff2SEmmanuel Vadot
43aa1a8ff2SEmmanuel Vadot		simple-audio-card,cpu {
44aa1a8ff2SEmmanuel Vadot			sound-dai = <&sai1>;
45aa1a8ff2SEmmanuel Vadot		};
46aa1a8ff2SEmmanuel Vadot	};
477d0873ebSEmmanuel Vadot
487d0873ebSEmmanuel Vadot	reg_usb_hub: regulator-usb-hub {
497d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
507d0873ebSEmmanuel Vadot		enable-active-high;
517d0873ebSEmmanuel Vadot		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
527d0873ebSEmmanuel Vadot		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
537d0873ebSEmmanuel Vadot		regulator-boot-on;
547d0873ebSEmmanuel Vadot		regulator-name = "HUB_PWR_EN";
557d0873ebSEmmanuel Vadot	};
567d0873ebSEmmanuel Vadot
577d0873ebSEmmanuel Vadot	reg_pcie: regulator-pcie {
587d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
597d0873ebSEmmanuel Vadot		enable-active-high;
607d0873ebSEmmanuel Vadot		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
617d0873ebSEmmanuel Vadot		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
627d0873ebSEmmanuel Vadot		regulator-boot-on;
637d0873ebSEmmanuel Vadot		regulator-name = "PCIE_1_PWR_EN";
647d0873ebSEmmanuel Vadot		startup-delay-us = <100000>;
657d0873ebSEmmanuel Vadot	};
66aa1a8ff2SEmmanuel Vadot};
67d5b0e70fSEmmanuel Vadot
68*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */
69*b2d2a78aSEmmanuel Vadot&aud2htx {
70*b2d2a78aSEmmanuel Vadot	status = "okay";
71*b2d2a78aSEmmanuel Vadot};
72*b2d2a78aSEmmanuel Vadot
73d5b0e70fSEmmanuel Vadot&backlight {
74d5b0e70fSEmmanuel Vadot	power-supply = <&reg_3p3v>;
75d5b0e70fSEmmanuel Vadot};
76d5b0e70fSEmmanuel Vadot
77d5b0e70fSEmmanuel Vadot/* Verdin SPI_1 */
78d5b0e70fSEmmanuel Vadot&ecspi1 {
79d5b0e70fSEmmanuel Vadot	status = "okay";
80d5b0e70fSEmmanuel Vadot};
81d5b0e70fSEmmanuel Vadot
82d5b0e70fSEmmanuel Vadot/* EEPROM on display adapter boards */
83d5b0e70fSEmmanuel Vadot&eeprom_display_adapter {
84d5b0e70fSEmmanuel Vadot	status = "okay";
85d5b0e70fSEmmanuel Vadot};
86d5b0e70fSEmmanuel Vadot
87d5b0e70fSEmmanuel Vadot/* EEPROM on Verdin Development board */
88d5b0e70fSEmmanuel Vadot&eeprom_carrier_board {
89d5b0e70fSEmmanuel Vadot	status = "okay";
90d5b0e70fSEmmanuel Vadot};
91d5b0e70fSEmmanuel Vadot
92d5b0e70fSEmmanuel Vadot&eqos {
93d5b0e70fSEmmanuel Vadot	status = "okay";
94d5b0e70fSEmmanuel Vadot};
95d5b0e70fSEmmanuel Vadot
96d5b0e70fSEmmanuel Vadot&flexcan1 {
97d5b0e70fSEmmanuel Vadot	status = "okay";
98d5b0e70fSEmmanuel Vadot};
99d5b0e70fSEmmanuel Vadot
100d5b0e70fSEmmanuel Vadot&flexcan2 {
101d5b0e70fSEmmanuel Vadot	status = "okay";
102d5b0e70fSEmmanuel Vadot};
103d5b0e70fSEmmanuel Vadot
104d5b0e70fSEmmanuel Vadot/* Verdin QSPI_1 */
105d5b0e70fSEmmanuel Vadot&flexspi {
106d5b0e70fSEmmanuel Vadot	status = "okay";
107d5b0e70fSEmmanuel Vadot};
108d5b0e70fSEmmanuel Vadot
1097d0873ebSEmmanuel Vadot&gpio4 {
1107d0873ebSEmmanuel Vadot	pinctrl-names = "default";
1117d0873ebSEmmanuel Vadot	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
1127d0873ebSEmmanuel Vadot};
1137d0873ebSEmmanuel Vadot
1140e8011faSEmmanuel Vadot/* Verdin HDMI_1 */
1150e8011faSEmmanuel Vadot&hdmi_pvi {
1160e8011faSEmmanuel Vadot	status = "okay";
1170e8011faSEmmanuel Vadot};
1180e8011faSEmmanuel Vadot
1190e8011faSEmmanuel Vadot&hdmi_tx {
1200e8011faSEmmanuel Vadot	status = "okay";
1210e8011faSEmmanuel Vadot
1220e8011faSEmmanuel Vadot	ports {
1230e8011faSEmmanuel Vadot		port@1 {
1240e8011faSEmmanuel Vadot			hdmi_tx_out: endpoint {
1250e8011faSEmmanuel Vadot				remote-endpoint = <&native_hdmi_connector_in>;
1260e8011faSEmmanuel Vadot			};
1270e8011faSEmmanuel Vadot		};
1280e8011faSEmmanuel Vadot	};
1290e8011faSEmmanuel Vadot};
1300e8011faSEmmanuel Vadot
1310e8011faSEmmanuel Vadot&hdmi_tx_phy {
1320e8011faSEmmanuel Vadot	status = "okay";
1330e8011faSEmmanuel Vadot};
1340e8011faSEmmanuel Vadot
135d5b0e70fSEmmanuel Vadot/* Current measurement into module VCC */
136d5b0e70fSEmmanuel Vadot&hwmon {
137d5b0e70fSEmmanuel Vadot	status = "okay";
138d5b0e70fSEmmanuel Vadot};
139d5b0e70fSEmmanuel Vadot
140d5b0e70fSEmmanuel Vadot&hwmon_temp {
141d5b0e70fSEmmanuel Vadot	vs-supply = <&reg_1p8v>;
142d5b0e70fSEmmanuel Vadot	status = "okay";
143d5b0e70fSEmmanuel Vadot};
144d5b0e70fSEmmanuel Vadot
145d5b0e70fSEmmanuel Vadot/* Verdin I2C_2_DSI */
146d5b0e70fSEmmanuel Vadot&i2c2 {
147d5b0e70fSEmmanuel Vadot	status = "okay";
148d5b0e70fSEmmanuel Vadot};
149d5b0e70fSEmmanuel Vadot
150d5b0e70fSEmmanuel Vadot&i2c3 {
151d5b0e70fSEmmanuel Vadot	status = "okay";
152d5b0e70fSEmmanuel Vadot};
153d5b0e70fSEmmanuel Vadot
154d5b0e70fSEmmanuel Vadot/* Verdin I2C_1 */
155d5b0e70fSEmmanuel Vadot&i2c4 {
156d5b0e70fSEmmanuel Vadot	status = "okay";
157d5b0e70fSEmmanuel Vadot
158aa1a8ff2SEmmanuel Vadot	/* Audio Codec */
159aa1a8ff2SEmmanuel Vadot	wm8904_1a: audio-codec@1a {
160aa1a8ff2SEmmanuel Vadot		compatible = "wlf,wm8904";
161aa1a8ff2SEmmanuel Vadot		reg = <0x1a>;
162aa1a8ff2SEmmanuel Vadot		pinctrl-names = "default";
163aa1a8ff2SEmmanuel Vadot		pinctrl-0 = <&pinctrl_sai1>;
164aa1a8ff2SEmmanuel Vadot		#sound-dai-cells = <0>;
165aa1a8ff2SEmmanuel Vadot		clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
166aa1a8ff2SEmmanuel Vadot		clock-names = "mclk";
167aa1a8ff2SEmmanuel Vadot		AVDD-supply = <&reg_1p8v>;
168aa1a8ff2SEmmanuel Vadot		CPVDD-supply = <&reg_1p8v>;
169aa1a8ff2SEmmanuel Vadot		DBVDD-supply = <&reg_1p8v>;
170aa1a8ff2SEmmanuel Vadot		DCVDD-supply = <&reg_1p8v>;
171aa1a8ff2SEmmanuel Vadot		MICVDD-supply = <&reg_1p8v>;
172aa1a8ff2SEmmanuel Vadot	};
173d5b0e70fSEmmanuel Vadot};
174d5b0e70fSEmmanuel Vadot
1757d0873ebSEmmanuel Vadot/* Verdin I2C_3_HDMI */
1767d0873ebSEmmanuel Vadot&i2c5 {
1777d0873ebSEmmanuel Vadot	status = "okay";
1787d0873ebSEmmanuel Vadot};
1797d0873ebSEmmanuel Vadot
1800e8011faSEmmanuel Vadot&lcdif3 {
1810e8011faSEmmanuel Vadot	status = "okay";
1820e8011faSEmmanuel Vadot};
1830e8011faSEmmanuel Vadot
184fac71e4eSEmmanuel Vadot/* Verdin PCIE_1 */
185fac71e4eSEmmanuel Vadot&pcie {
1867d0873ebSEmmanuel Vadot	vpcie-supply = <&reg_pcie>;
187fac71e4eSEmmanuel Vadot	status = "okay";
188fac71e4eSEmmanuel Vadot};
189fac71e4eSEmmanuel Vadot
190fac71e4eSEmmanuel Vadot&pcie_phy {
191fac71e4eSEmmanuel Vadot	status = "okay";
192fac71e4eSEmmanuel Vadot};
193d5b0e70fSEmmanuel Vadot
194d5b0e70fSEmmanuel Vadot/* Verdin PWM_1 */
195d5b0e70fSEmmanuel Vadot&pwm1 {
196d5b0e70fSEmmanuel Vadot	status = "okay";
197d5b0e70fSEmmanuel Vadot};
198d5b0e70fSEmmanuel Vadot
199d5b0e70fSEmmanuel Vadot/* Verdin PWM_2 */
200d5b0e70fSEmmanuel Vadot&pwm2 {
201d5b0e70fSEmmanuel Vadot	status = "okay";
202d5b0e70fSEmmanuel Vadot};
203d5b0e70fSEmmanuel Vadot
204d5b0e70fSEmmanuel Vadot/* Verdin PWM_3_DSI */
205d5b0e70fSEmmanuel Vadot&pwm3 {
206d5b0e70fSEmmanuel Vadot	status = "okay";
207d5b0e70fSEmmanuel Vadot};
208d5b0e70fSEmmanuel Vadot
209d5b0e70fSEmmanuel Vadot&reg_usdhc2_vmmc {
210d5b0e70fSEmmanuel Vadot	vin-supply = <&reg_3p3v>;
211d5b0e70fSEmmanuel Vadot};
212d5b0e70fSEmmanuel Vadot
2137d0873ebSEmmanuel Vadot/* We support turning off sleep moci on Dahlia */
2147d0873ebSEmmanuel Vadot&reg_force_sleep_moci {
2157d0873ebSEmmanuel Vadot	status = "disabled";
2167d0873ebSEmmanuel Vadot};
2177d0873ebSEmmanuel Vadot
218aa1a8ff2SEmmanuel Vadot/* Verdin I2S_1 */
219aa1a8ff2SEmmanuel Vadot&sai1 {
220aa1a8ff2SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
221aa1a8ff2SEmmanuel Vadot	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
222aa1a8ff2SEmmanuel Vadot	assigned-clock-rates = <24576000>;
223aa1a8ff2SEmmanuel Vadot	fsl,sai-mclk-direction-output;
224aa1a8ff2SEmmanuel Vadot	status = "okay";
225aa1a8ff2SEmmanuel Vadot};
226d5b0e70fSEmmanuel Vadot
227*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */
228*b2d2a78aSEmmanuel Vadot&sound_hdmi {
229*b2d2a78aSEmmanuel Vadot	status = "okay";
230*b2d2a78aSEmmanuel Vadot};
231*b2d2a78aSEmmanuel Vadot
232d5b0e70fSEmmanuel Vadot/* Verdin UART_1 */
233d5b0e70fSEmmanuel Vadot&uart1 {
234d5b0e70fSEmmanuel Vadot	status = "okay";
235d5b0e70fSEmmanuel Vadot};
236d5b0e70fSEmmanuel Vadot
237d5b0e70fSEmmanuel Vadot/* Verdin UART_2 */
238d5b0e70fSEmmanuel Vadot&uart2 {
239d5b0e70fSEmmanuel Vadot	status = "okay";
240d5b0e70fSEmmanuel Vadot};
241d5b0e70fSEmmanuel Vadot
242d5b0e70fSEmmanuel Vadot/* Verdin UART_3, used as the Linux Console */
243d5b0e70fSEmmanuel Vadot&uart3 {
244d5b0e70fSEmmanuel Vadot	status = "okay";
245d5b0e70fSEmmanuel Vadot};
246d5b0e70fSEmmanuel Vadot
247d5b0e70fSEmmanuel Vadot/* Verdin USB_1 */
248d5b0e70fSEmmanuel Vadot&usb3_0 {
249d5b0e70fSEmmanuel Vadot	status = "okay";
250d5b0e70fSEmmanuel Vadot};
251d5b0e70fSEmmanuel Vadot
252d5b0e70fSEmmanuel Vadot&usb3_phy0 {
253d5b0e70fSEmmanuel Vadot	status = "okay";
254d5b0e70fSEmmanuel Vadot};
255d5b0e70fSEmmanuel Vadot
256d5b0e70fSEmmanuel Vadot/* Verdin USB_2 */
257d5b0e70fSEmmanuel Vadot&usb3_1 {
2588bab661aSEmmanuel Vadot	fsl,permanently-attached;
259d5b0e70fSEmmanuel Vadot	status = "okay";
260d5b0e70fSEmmanuel Vadot};
261d5b0e70fSEmmanuel Vadot
262d5b0e70fSEmmanuel Vadot&usb3_phy1 {
263d5b0e70fSEmmanuel Vadot	status = "okay";
264d5b0e70fSEmmanuel Vadot};
265d5b0e70fSEmmanuel Vadot
2667d0873ebSEmmanuel Vadot&usb_dwc3_1 {
2677d0873ebSEmmanuel Vadot	#address-cells = <1>;
2687d0873ebSEmmanuel Vadot	#size-cells = <0>;
2697d0873ebSEmmanuel Vadot
2707d0873ebSEmmanuel Vadot	usb_hub_3_0: usb-hub@1 {
2717d0873ebSEmmanuel Vadot		compatible = "usb424,5744";
2727d0873ebSEmmanuel Vadot		reg = <1>;
2737d0873ebSEmmanuel Vadot		peer-hub = <&usb_hub_2_0>;
2747d0873ebSEmmanuel Vadot		vdd-supply = <&reg_usb_hub>;
2757d0873ebSEmmanuel Vadot	};
2767d0873ebSEmmanuel Vadot
2777d0873ebSEmmanuel Vadot	usb_hub_2_0: usb-hub@2 {
2787d0873ebSEmmanuel Vadot		compatible = "usb424,2744";
2797d0873ebSEmmanuel Vadot		reg = <2>;
2807d0873ebSEmmanuel Vadot		peer-hub = <&usb_hub_3_0>;
2817d0873ebSEmmanuel Vadot		vdd-supply = <&reg_usb_hub>;
2827d0873ebSEmmanuel Vadot	};
2837d0873ebSEmmanuel Vadot};
2847d0873ebSEmmanuel Vadot
285d5b0e70fSEmmanuel Vadot/* Verdin SD_1 */
286d5b0e70fSEmmanuel Vadot&usdhc2 {
287d5b0e70fSEmmanuel Vadot	status = "okay";
288d5b0e70fSEmmanuel Vadot};
289