summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/imx93-11x11-evk-aud-hat.dts
blob: fccab2bfc86227a2d09a75b216e88381e19d85d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright 2022 NXP
 */

#include "imx93-11x11-evk.dts"

/ {
	mic_leds {
		compatible = "gpio-leds";
		mic0 {
			label = "mic0";
			gpios = <&pca9555 5 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic1 {
			label = "mic1";
			gpios = <&pca9555 7 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic2 {
			label = "mic2";
			gpios = <&pca9555 6 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic3 {
			label = "mic3";
			gpios = <&pca9555 2 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic4 {
			label = "mic4";
			gpios = <&pca9555 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic5 {
			label = "mic5";
			gpios = <&pca9555 0 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic6 {
			label = "mic6";
			gpios = <&pca9555 4 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
		mic7 {
			label = "mic7";
			gpios = <&pca9555 3 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
	};

	sw_keys {
		compatible = "gpio-keys";

		sw4: volume_down {
			label = "Volume Down";
			gpios = <&pca9555 15 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEDOWN>;
			interrupt-parent = <&pca9555>;
			interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
		};

		sw3: volume_up {
			label = "Volume Up";
			gpios = <&pca9555 14 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			interrupt-parent = <&pca9555>;
			interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
		};

		sw2: volume_mute {
			label = "Volume Mute";
			gpios = <&pca9555 13 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_MUTE>;
			interrupt-parent = <&pca9555>;
			interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
		};

		sw1: key_act {
			label = "Key Act";
			gpios = <&pca9555 12 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_F9>;
			interrupt-parent = <&pca9555>;
			interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
		};
	};

	reg_vddext_3v3: regulator-vddext {
		compatible = "regulator-fixed";
		regulator-name = "VDDEXT_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	reg_audio_switch1: regulator-audio-switch1 {
		compatible = "regulator-fixed";
		regulator-name = "audio-switch1";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&adp5585gpio 4 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

	reg_audio_pwr: regulator-audio-pwr {
		compatible = "regulator-fixed";
		regulator-name = "cs42448-supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	sound-wm8962 {
		status = "disabled";
	};

	sound-cs42448 {
		compatible = "fsl,imx-audio-card";
		model = "imx-cs42448";
		status = "okay";
		pri-dai-link {
			link-name = "cs42448";
			format = "dsp_a";
			dai-tdm-slot-num = <8>;
			dai-tdm-slot-width = <32>;
			fsl,mclk-equal-bclk;
			cpu {
				sound-dai = <&sai3>;
			};
			codec {
				sound-dai = <&cs42448>;
			};
		};
	};

};

&sai3 {
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai3audhat>;
	clocks = <&clk IMX93_CLK_SAI3_IPG>, <&clk IMX93_CLK_DUMMY>,
		<&clk IMX93_CLK_SAI3_GATE>,
		<&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_DUMMY>,
		<&clk IMX93_CLK_AUDIO_PLL>;
	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
	assigned-clocks = <&clk IMX93_CLK_SAI3>;
	assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
	assigned-clock-rates = <12288000>;
	fsl,sai-asynchronous;
	status = "okay";
};

&flexcan2 {
	status = "disabled";
};

&micfil {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pdm2>;
	status = "okay";
};

&lpi2c4 {
	#address-cells = <1>;
	#size-cells = <0>;
	clock-frequency = <400000>;
	dmas = <&edma2 10 0 0>, <&edma2 11 0 1>;
	dma-names = "tx","rx";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_lpi2c4>;
	pinctrl-1 = <&pinctrl_lpi2c4>;
	status = "okay";

	pca9555: gpio@21 {
		compatible = "nxp,pca9555";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pushbutton_irq>;
		reg = <0x21>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupt-parent = <&gpio2>;
		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
		vcc-supply = <&reg_vddext_3v3>;
		status = "okay";
	};

	cs42448: cs42448@48 {
		#sound-dai-cells = <0>;
		compatible = "cirrus,cs42448";
		reg = <0x48>;
		clocks = <&clk IMX93_CLK_SAI3_GATE>;
		clock-names = "mclk";
		VA-supply = <&reg_audio_pwr>;
		VD-supply = <&reg_audio_pwr>;
		VLS-supply = <&reg_audio_pwr>;
		VLC-supply = <&reg_audio_pwr>;
		reset-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
		status = "okay";
	};
};

&iomuxc {
	pinctrl_swpdm_mute_irq: swpdm_mute_grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO00__GPIO2_IO00	0x31e
		>;
	};

	pinctrl_pushbutton_irq: pushbutton_grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO27__GPIO2_IO27	0x31e
		>;
	};

	pinctrl_pdm2: pdm2grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO04__PDM_CLK 0x31e
			MX93_PAD_GPIO_IO05__PDM_BIT_STREAM00 0x31e
			MX93_PAD_GPIO_IO06__PDM_BIT_STREAM01 0x31e
			MX93_PAD_GPIO_IO12__PDM_BIT_STREAM02 0x31e
			MX93_PAD_GPIO_IO13__PDM_BIT_STREAM03 0x31e
		>;
	};

	pinctrl_lpi2c4: lpi2c4grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO03__LPI2C4_SCL			0x40000b9e
			MX93_PAD_GPIO_IO02__LPI2C4_SDA			0x40000b9e
		>;
	};

	pinctrl_sai3audhat: sai3audhat {
		fsl,pins = <
			MX93_PAD_GPIO_IO17__SAI3_MCLK		0x31e
			MX93_PAD_GPIO_IO26__SAI3_TX_SYNC	0x31e
			MX93_PAD_GPIO_IO16__SAI3_TX_BCLK	0x31e
			MX93_PAD_GPIO_IO19__SAI3_RX_SYNC	0x31e
			MX93_PAD_GPIO_IO18__SAI3_RX_BCLK	0x31e
			MX93_PAD_GPIO_IO21__SAI3_TX_DATA00	0x31e
			MX93_PAD_GPIO_IO20__SAI3_RX_DATA00	0x31e
		>;
	};
};