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