xref: /linux/include/sound/cs48l32_registers.h (revision a9e6060bb2a6cae6d43a98ec0794844ad01273d3)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Register definitions for Cirrus Logic CS48L32
4  *
5  * Copyright (C) 2017-2018, 2020, 2022, 2025 Cirrus Logic, Inc. and
6  *               Cirrus Logic International Semiconductor Ltd.
7  */
8 
9 #ifndef CS48L32_REGISTERS_H
10 #define CS48L32_REGISTERS_H
11 
12 /* Register Addresses. */
13 #define CS48L32_DEVID				0x0
14 #define CS48L32_REVID				0x4
15 #define CS48L32_OTPID				0x10
16 #define CS48L32_SFT_RESET			0x20
17 #define CS48L32_CTRL_IF_DEBUG3			0xA8
18 #define CS48L32_MCU_CTRL1			0x804
19 #define CS48L32_GPIO1_CTRL1			0xc08
20 #define CS48L32_GPIO3_CTRL1			0xc10
21 #define CS48L32_GPIO7_CTRL1			0xc20
22 #define CS48L32_GPIO16_CTRL1			0xc44
23 #define CS48L32_OUTPUT_SYS_CLK			0x1020
24 #define CS48L32_AUXPDM_CTRL			0x1044
25 #define CS48L32_AUXPDM_CTRL2			0x105c
26 #define CS48L32_CLOCK32K			0x1400
27 #define CS48L32_SYSTEM_CLOCK1			0x1404
28 #define CS48L32_SYSTEM_CLOCK2			0x1408
29 #define CS48L32_SAMPLE_RATE1			0x1420
30 #define CS48L32_SAMPLE_RATE2			0x1424
31 #define CS48L32_SAMPLE_RATE3			0x1428
32 #define CS48L32_SAMPLE_RATE4			0x142c
33 #define CS48L32_DSP_CLOCK1			0x1510
34 #define CS48L32_FLL1_CONTROL1			0x1c00
35 #define CS48L32_FLL1_CONTROL5			0x1c10
36 #define CS48L32_FLL1_CONTROL6			0x1c14
37 #define CS48L32_FLL1_GPIO_CLOCK			0x1ca0
38 #define CS48L32_CHARGE_PUMP1			0x2000
39 #define CS48L32_LDO2_CTRL1			0x2408
40 #define CS48L32_MICBIAS_CTRL1			0x2410
41 #define CS48L32_MICBIAS_CTRL5			0x2418
42 #define CS48L32_IRQ1_CTRL_AOD			0x2710
43 #define CS48L32_AOD_PAD_CTRL			0x2718
44 #define CS48L32_INPUT_CONTROL			0x4000
45 #define CS48L32_INPUT_STATUS			0x4004
46 #define CS48L32_INPUT_RATE_CONTROL		0x4008
47 #define CS48L32_INPUT_CONTROL2			0x400c
48 #define CS48L32_INPUT_CONTROL3			0x4014
49 #define CS48L32_INPUT1_CONTROL1			0x4020
50 #define CS48L32_IN1L_CONTROL1			0x4024
51 #define CS48L32_IN1L_CONTROL2			0x4028
52 #define CS48L32_IN1R_CONTROL1			0x4044
53 #define CS48L32_IN1R_CONTROL2			0x4048
54 #define CS48L32_INPUT2_CONTROL1			0x4060
55 #define CS48L32_IN2L_CONTROL1			0x4064
56 #define CS48L32_IN2L_CONTROL2			0x4068
57 #define CS48L32_IN2R_CONTROL1			0x4084
58 #define CS48L32_IN2R_CONTROL2			0x4088
59 #define CS48L32_INPUT_HPF_CONTROL		0x4244
60 #define CS48L32_INPUT_VOL_CONTROL		0x4248
61 #define CS48L32_AUXPDM_CONTROL1			0x4300
62 #define CS48L32_AUXPDM_CONTROL2			0x4304
63 #define CS48L32_AUXPDM1_CONTROL1		0x4308
64 #define CS48L32_AUXPDM2_CONTROL1		0x4310
65 #define CS48L32_ADC1L_ANA_CONTROL1		0x4688
66 #define CS48L32_ADC1R_ANA_CONTROL1		0x468c
67 #define CS48L32_ASP1_ENABLES1			0x6000
68 #define CS48L32_ASP1_CONTROL3			0x600C
69 #define CS48L32_ASP1_DATA_CONTROL5		0x6040
70 #define CS48L32_ASP2_ENABLES1			0x6080
71 #define CS48L32_ASP2_CONTROL3			0x608C
72 #define CS48L32_ASP2_DATA_CONTROL5		0x60c0
73 #define CS48L32_ASP1TX1_INPUT1			0x8200
74 #define CS48L32_ASP1TX2_INPUT1			0x8210
75 #define CS48L32_ASP1TX3_INPUT1			0x8220
76 #define CS48L32_ASP1TX4_INPUT1			0x8230
77 #define CS48L32_ASP1TX5_INPUT1			0x8240
78 #define CS48L32_ASP1TX6_INPUT1			0x8250
79 #define CS48L32_ASP1TX7_INPUT1			0x8260
80 #define CS48L32_ASP1TX8_INPUT1			0x8270
81 #define CS48L32_ASP1TX8_INPUT4			0x827c
82 #define CS48L32_ASP2TX1_INPUT1			0x8300
83 #define CS48L32_ASP2TX2_INPUT1			0x8310
84 #define CS48L32_ASP2TX3_INPUT1			0x8320
85 #define CS48L32_ASP2TX4_INPUT1			0x8330
86 #define CS48L32_ASP2TX4_INPUT4			0x833c
87 #define CS48L32_ISRC1INT1_INPUT1		0x8980
88 #define CS48L32_ISRC1INT2_INPUT1		0x8990
89 #define CS48L32_ISRC1INT3_INPUT1		0x89a0
90 #define CS48L32_ISRC1INT4_INPUT1		0x89b0
91 #define CS48L32_ISRC1DEC1_INPUT1		0x89c0
92 #define CS48L32_ISRC1DEC2_INPUT1		0x89d0
93 #define CS48L32_ISRC1DEC3_INPUT1		0x89e0
94 #define CS48L32_ISRC1DEC4_INPUT1		0x89f0
95 #define CS48L32_ISRC2INT1_INPUT1		0x8a00
96 #define CS48L32_ISRC2INT2_INPUT1		0x8a10
97 #define CS48L32_ISRC2DEC1_INPUT1		0x8a40
98 #define CS48L32_ISRC2DEC2_INPUT1		0x8a50
99 #define CS48L32_ISRC3INT1_INPUT1		0x8a80
100 #define CS48L32_ISRC3INT2_INPUT1		0x8a90
101 #define CS48L32_ISRC3DEC1_INPUT1		0x8ac0
102 #define CS48L32_ISRC3DEC2_INPUT1		0x8ad0
103 #define CS48L32_EQ1_INPUT1			0x8b80
104 #define CS48L32_EQ2_INPUT1			0x8b90
105 #define CS48L32_EQ3_INPUT1			0x8ba0
106 #define CS48L32_EQ4_INPUT1			0x8bb0
107 #define CS48L32_EQ4_INPUT4			0x8bbc
108 #define CS48L32_DRC1L_INPUT1			0x8c00
109 #define CS48L32_DRC1R_INPUT1			0x8c10
110 #define CS48L32_DRC1R_INPUT4			0x8c1c
111 #define CS48L32_DRC2L_INPUT1			0x8c20
112 #define CS48L32_DRC2R_INPUT1			0x8c30
113 #define CS48L32_DRC2R_INPUT4			0x8c3c
114 #define CS48L32_LHPF1_INPUT1			0x8c80
115 #define CS48L32_LHPF1_INPUT4			0x8c8c
116 #define CS48L32_LHPF2_INPUT1			0x8c90
117 #define CS48L32_LHPF2_INPUT4			0x8c9c
118 #define CS48L32_LHPF3_INPUT1			0x8ca0
119 #define CS48L32_LHPF3_INPUT4			0x8cac
120 #define CS48L32_LHPF4_INPUT1			0x8cb0
121 #define CS48L32_LHPF4_INPUT4			0x8cbc
122 #define CS48L32_DSP1RX1_INPUT1			0x9000
123 #define CS48L32_DSP1RX2_INPUT1			0x9010
124 #define CS48L32_DSP1RX3_INPUT1			0x9020
125 #define CS48L32_DSP1RX4_INPUT1			0x9030
126 #define CS48L32_DSP1RX5_INPUT1			0x9040
127 #define CS48L32_DSP1RX6_INPUT1			0x9050
128 #define CS48L32_DSP1RX7_INPUT1			0x9060
129 #define CS48L32_DSP1RX8_INPUT1			0x9070
130 #define CS48L32_DSP1RX8_INPUT4			0x907c
131 #define CS48L32_ISRC1_CONTROL1			0xa400
132 #define CS48L32_ISRC1_CONTROL2			0xa404
133 #define CS48L32_ISRC2_CONTROL1			0xa510
134 #define CS48L32_ISRC2_CONTROL2			0xa514
135 #define CS48L32_ISRC3_CONTROL1			0xa620
136 #define CS48L32_ISRC3_CONTROL2			0xa624
137 #define CS48L32_FX_SAMPLE_RATE			0xa800
138 #define CS48L32_EQ_CONTROL1			0xa808
139 #define CS48L32_EQ_CONTROL2			0xa80c
140 #define CS48L32_EQ1_GAIN1			0xa810
141 #define CS48L32_EQ1_GAIN2			0xa814
142 #define CS48L32_EQ1_BAND1_COEFF1		0xa818
143 #define CS48L32_EQ1_BAND1_COEFF2		0xa81c
144 #define CS48L32_EQ1_BAND1_PG			0xa820
145 #define CS48L32_EQ1_BAND2_COEFF1		0xa824
146 #define CS48L32_EQ1_BAND2_COEFF2		0xa828
147 #define CS48L32_EQ1_BAND2_PG			0xa82c
148 #define CS48L32_EQ1_BAND3_COEFF1		0xa830
149 #define CS48L32_EQ1_BAND3_COEFF2		0xa834
150 #define CS48L32_EQ1_BAND3_PG			0xa838
151 #define CS48L32_EQ1_BAND4_COEFF1		0xa83c
152 #define CS48L32_EQ1_BAND4_COEFF2		0xa840
153 #define CS48L32_EQ1_BAND4_PG			0xa844
154 #define CS48L32_EQ1_BAND5_COEFF1		0xa848
155 #define CS48L32_EQ1_BAND5_PG			0xa850
156 #define CS48L32_EQ2_GAIN1			0xa854
157 #define CS48L32_EQ2_GAIN2			0xa858
158 #define CS48L32_EQ2_BAND1_COEFF1		0xa85c
159 #define CS48L32_EQ2_BAND1_COEFF2		0xa860
160 #define CS48L32_EQ2_BAND1_PG			0xa864
161 #define CS48L32_EQ2_BAND2_COEFF1		0xa868
162 #define CS48L32_EQ2_BAND2_COEFF2		0xa86c
163 #define CS48L32_EQ2_BAND2_PG			0xa870
164 #define CS48L32_EQ2_BAND3_COEFF1		0xa874
165 #define CS48L32_EQ2_BAND3_COEFF2		0xa878
166 #define CS48L32_EQ2_BAND3_PG			0xa87c
167 #define CS48L32_EQ2_BAND4_COEFF1		0xa880
168 #define CS48L32_EQ2_BAND4_COEFF2		0xa884
169 #define CS48L32_EQ2_BAND4_PG			0xa888
170 #define CS48L32_EQ2_BAND5_COEFF1		0xa88c
171 #define CS48L32_EQ2_BAND5_PG			0xa894
172 #define CS48L32_EQ3_GAIN1			0xa898
173 #define CS48L32_EQ3_GAIN2			0xa89c
174 #define CS48L32_EQ3_BAND1_COEFF1		0xa8a0
175 #define CS48L32_EQ3_BAND1_COEFF2		0xa8a4
176 #define CS48L32_EQ3_BAND1_PG			0xa8a8
177 #define CS48L32_EQ3_BAND2_COEFF1		0xa8ac
178 #define CS48L32_EQ3_BAND2_COEFF2		0xa8b0
179 #define CS48L32_EQ3_BAND2_PG			0xa8b4
180 #define CS48L32_EQ3_BAND3_COEFF1		0xa8b8
181 #define CS48L32_EQ3_BAND3_COEFF2		0xa8bc
182 #define CS48L32_EQ3_BAND3_PG			0xa8c0
183 #define CS48L32_EQ3_BAND4_COEFF1		0xa8c4
184 #define CS48L32_EQ3_BAND4_COEFF2		0xa8c8
185 #define CS48L32_EQ3_BAND4_PG			0xa8cc
186 #define CS48L32_EQ3_BAND5_COEFF1		0xa8d0
187 #define CS48L32_EQ3_BAND5_PG			0xa8d8
188 #define CS48L32_EQ4_GAIN1			0xa8dc
189 #define CS48L32_EQ4_GAIN2			0xa8e0
190 #define CS48L32_EQ4_BAND1_COEFF1		0xa8e4
191 #define CS48L32_EQ4_BAND1_COEFF2		0xa8e8
192 #define CS48L32_EQ4_BAND1_PG			0xa8ec
193 #define CS48L32_EQ4_BAND2_COEFF1		0xa8f0
194 #define CS48L32_EQ4_BAND2_COEFF2		0xa8f4
195 #define CS48L32_EQ4_BAND2_PG			0xa8f8
196 #define CS48L32_EQ4_BAND3_COEFF1		0xa8fc
197 #define CS48L32_EQ4_BAND3_COEFF2		0xa900
198 #define CS48L32_EQ4_BAND3_PG			0xa904
199 #define CS48L32_EQ4_BAND4_COEFF1		0xa908
200 #define CS48L32_EQ4_BAND4_COEFF2		0xa90c
201 #define CS48L32_EQ4_BAND4_PG			0xa910
202 #define CS48L32_EQ4_BAND5_COEFF1		0xa914
203 #define CS48L32_EQ4_BAND5_PG			0xa91c
204 #define CS48L32_LHPF_CONTROL1			0xaa30
205 #define CS48L32_LHPF_CONTROL2			0xaa34
206 #define CS48L32_LHPF1_COEFF			0xaa38
207 #define CS48L32_LHPF2_COEFF			0xaa3c
208 #define CS48L32_LHPF3_COEFF			0xaa40
209 #define CS48L32_LHPF4_COEFF			0xaa44
210 #define CS48L32_DRC1_CONTROL1			0xab00
211 #define CS48L32_DRC1_CONTROL4			0xab0c
212 #define CS48L32_DRC2_CONTROL1			0xab14
213 #define CS48L32_DRC2_CONTROL4			0xab20
214 #define CS48L32_TONE_GENERATOR1			0xb000
215 #define CS48L32_TONE_GENERATOR2			0xb004
216 #define CS48L32_COMFORT_NOISE_GENERATOR		0xb400
217 #define CS48L32_US_CONTROL			0xb800
218 #define CS48L32_US1_CONTROL			0xb804
219 #define CS48L32_US1_DET_CONTROL			0xb808
220 #define CS48L32_US2_CONTROL			0xb814
221 #define CS48L32_US2_DET_CONTROL			0xb818
222 #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_0	0x1700c
223 #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_1	0x17010
224 #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_24	0x1706c
225 #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_0	0x17070
226 #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_1	0x17074
227 #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_8	0x17090
228 #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_0	0x17094
229 #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_1	0x17098
230 #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_7	0x170b0
231 #define CS48L32_IRQ1_STATUS			0x18004
232 #define CS48L32_IRQ1_EINT_1			0x18010
233 #define CS48L32_IRQ1_EINT_2			0x18014
234 #define CS48L32_IRQ1_EINT_7			0x18028
235 #define CS48L32_IRQ1_EINT_9			0x18030
236 #define CS48L32_IRQ1_EINT_11			0x18038
237 #define CS48L32_IRQ1_STS_1			0x18090
238 #define CS48L32_IRQ1_STS_6			0x180a4
239 #define CS48L32_IRQ1_STS_11			0x180b8
240 #define CS48L32_IRQ1_MASK_1			0x18110
241 #define CS48L32_IRQ1_MASK_2			0x18114
242 #define CS48L32_IRQ1_MASK_7			0x18128
243 #define CS48L32_IRQ1_MASK_9			0x18130
244 #define CS48L32_IRQ1_MASK_11			0x18138
245 #define CS48L32_DSP1_XMEM_PACKED_0		0x2000000
246 #define CS48L32_DSP1_XMEM_PACKED_LAST		0x208fff0
247 #define CS48L32_DSP1_SYS_INFO_ID		0x25e0000
248 #define CS48L32_DSP1_AHBM_WINDOW_DEBUG_1	0x25e2044
249 #define CS48L32_DSP1_XMEM_UNPACKED24_0		0x2800000
250 #define CS48L32_DSP1_XMEM_UNPACKED24_LAST	0x28bfff4
251 #define CS48L32_DSP1_CLOCK_FREQ			0x2b80000
252 #define CS48L32_DSP1_SAMPLE_RATE_TX8		0x2b802b8
253 #define CS48L32_DSP1_SCRATCH1			0x2b805c0
254 #define CS48L32_DSP1_SCRATCH4			0x2b805d8
255 #define CS48L32_DSP1_CCM_CORE_CONTROL		0x2bc1000
256 #define CS48L32_DSP1_STREAM_ARB_RESYNC_MSK1	0x2bc5a00
257 #define CS48L32_DSP1_YMEM_PACKED_0		0x2c00000
258 #define CS48L32_DSP1_YMEM_PACKED_LAST		0x2c2fff0
259 #define CS48L32_DSP1_YMEM_UNPACKED24_0		0x3400000
260 #define CS48L32_DSP1_YMEM_UNPACKED24_LAST	0x343fff4
261 #define CS48L32_DSP1_PMEM_0			0x3800000
262 #define CS48L32_DSP1_PMEM_LAST			0x3845fe8
263 
264 /* (0x0) DEVID */
265 #define CS48L32_DEVID_MASK			0x00ffffff
266 #define CS48L32_DEVID_SHIFT				 0
267 
268 /* (0x4) REVID */
269 #define CS48L32_AREVID_MASK			0x000000f0
270 #define CS48L32_AREVID_SHIFT				 4
271 #define CS48L32_MTLREVID_MASK			0x0000000f
272 #define CS48L32_MTLREVID_SHIFT				 0
273 
274 /* (0x10) OTPID */
275 #define CS48L32_OTPID_MASK			0x0000000f
276 
277 /* (0x0804) MCU_CTRL1 */
278 #define CS48L32_MCU_STS_MASK			0x0000ff00
279 #define CS48L32_MCU_STS_SHIFT				 8
280 
281 /* (0xc08) GPIO1_CTRL1 */
282 #define CS48L32_GPIOX_CTRL1_FN_MASK		0x000003ff
283 
284 /* (0x1020) OUTPUT_SYS_CLK */
285 #define CS48L32_OPCLK_EN_SHIFT				15
286 #define CS48L32_OPCLK_DIV_MASK			0x000000f8
287 #define CS48L32_OPCLK_DIV_SHIFT				 3
288 #define CS48L32_OPCLK_SEL_MASK			0x00000007
289 
290 /* (0x105c) AUXPDM_CTRL2 */
291 #define CS48L32_AUXPDMDAT2_SRC_SHIFT			 4
292 #define CS48L32_AUXPDMDAT1_SRC_SHIFT			 0
293 
294 /* (0x1400) CLOCK32K */
295 #define CS48L32_CLK_32K_EN_MASK			0x00000040
296 #define CS48L32_CLK_32K_SRC_MASK		0x00000003
297 
298 /* (0x1404) SYSTEM_CLOCK1 */
299 #define CS48L32_SYSCLK_FRAC_MASK		0x00008000
300 #define CS48L32_SYSCLK_FREQ_MASK		0x00000700
301 #define CS48L32_SYSCLK_FREQ_SHIFT			 8
302 #define CS48L32_SYSCLK_EN_SHIFT				 6
303 #define CS48L32_SYSCLK_SRC_MASK			0x0000001f
304 #define CS48L32_SYSCLK_SRC_SHIFT			 0
305 
306 /* (0x1408) SYSTEM_CLOCK2 */
307 #define CS48L32_SYSCLK_FREQ_STS_MASK		0x00000700
308 #define CS48L32_SYSCLK_FREQ_STS_SHIFT			 8
309 
310 /* (0x1420) SAMPLE_RATE1 */
311 #define CS48L32_SAMPLE_RATE_1_MASK		0x0000001f
312 #define CS48L32_SAMPLE_RATE_1_SHIFT			 0
313 
314 /* (0x1510) DSP_CLOCK1 */
315 #define CS48L32_DSP_CLK_FREQ_MASK		0xffff0000
316 #define CS48L32_DSP_CLK_FREQ_SHIFT			16
317 
318 /* (0x1c00) FLL_CONTROL1 */
319 #define CS48L32_FLL_CTRL_UPD_MASK		0x00000004
320 #define CS48L32_FLL_HOLD_MASK			0x00000002
321 #define CS48L32_FLL_EN_MASK			0x00000001
322 
323 /* (0x1c04) FLL_CONTROL2 */
324 #define CS48L32_FLL_LOCKDET_THR_MASK		0xf0000000
325 #define CS48L32_FLL_LOCKDET_THR_SHIFT			28
326 #define CS48L32_FLL_LOCKDET_MASK		0x08000000
327 #define CS48L32_FLL_PHASEDET_MASK		0x00400000
328 #define CS48L32_FLL_PHASEDET_SHIFT			22
329 #define CS48L32_FLL_REFCLK_DIV_MASK		0x00030000
330 #define CS48L32_FLL_REFCLK_DIV_SHIFT			16
331 #define CS48L32_FLL_REFCLK_SRC_MASK		0x0000f000
332 #define CS48L32_FLL_REFCLK_SRC_SHIFT			12
333 #define CS48L32_FLL_N_MASK			0x000003ff
334 #define CS48L32_FLL_N_SHIFT				 0
335 
336 /* (0x1c08) FLL_CONTROL3 */
337 #define CS48L32_FLL_LAMBDA_MASK			0xffff0000
338 #define CS48L32_FLL_LAMBDA_SHIFT			16
339 #define CS48L32_FLL_THETA_MASK			0x0000ffff
340 #define CS48L32_FLL_THETA_SHIFT				 0
341 
342 /* (0x1c0c) FLL_CONTROL4 */
343 #define CS48L32_FLL_FD_GAIN_COARSE_SHIFT		16
344 #define CS48L32_FLL_HP_MASK			0x00003000
345 #define CS48L32_FLL_HP_SHIFT				12
346 #define CS48L32_FLL_FB_DIV_MASK			0x000003ff
347 #define CS48L32_FLL_FB_DIV_SHIFT			 0
348 
349 /* (0x1c10) FLL_CONTROL5 */
350 #define CS48L32_FLL_FRC_INTEG_UPD_MASK		0x00008000
351 
352 /* (0x2000) CHARGE_PUMP1 */
353 #define CS48L32_CP2_BYPASS_SHIFT			 1
354 #define CS48L32_CP2_EN_SHIFT				 0
355 
356 /* (0x2408) LDO2_CTRL1 */
357 #define CS48L32_LDO2_VSEL_MASK			0x000007e0
358 #define CS48L32_LDO2_VSEL_SHIFT				 5
359 
360 /* (0x2410) MICBIAS_CTRL1 */
361 #define CS48L32_MICB1_LVL_MASK			0x000001e0
362 #define CS48L32_MICB1_LVL_SHIFT				 5
363 #define CS48L32_MICB1_EN_SHIFT				 0
364 
365 /* (0x2418) MICBIAS_CTRL5 */
366 #define CS48L32_MICB1C_EN_SHIFT				 8
367 #define CS48L32_MICB1B_EN_SHIFT				 4
368 #define CS48L32_MICB1A_EN_SHIFT				 0
369 
370 /* (0x2710) IRQ1_CTRL_AOD */
371 #define CS48L32_IRQ_POL_MASK			0x00000400
372 
373 /* (0x4000) INPUT_CONTROL */
374 #define CS48L32_IN2L_EN_SHIFT				 3
375 #define CS48L32_IN2R_EN_SHIFT				 2
376 #define CS48L32_IN1L_EN_SHIFT				 1
377 #define CS48L32_IN1R_EN_SHIFT				 0
378 
379 /* (0x400c) INPUT_CONTROL2 */
380 #define CS48L32_PDM_FLLCLK_SRC_MASK		0x0000000f
381 #define CS48L32_PDM_FLLCLK_SRC_SHIFT			 0
382 
383 /* (0x4014) INPUT_CONTROL3 */
384 #define CS48L32_IN_VU				0x20000000
385 #define CS48L32_IN_VU_MASK			0x20000000
386 #define CS48L32_IN_VU_SHIFT				29
387 #define CS48L32_IN_VU_WIDTH				 1
388 
389 /* (0x4020) INPUT1_CONTROL1 */
390 #define CS48L32_IN1_OSR_SHIFT				16
391 #define CS48L32_IN1_PDM_SUP_MASK		0x00000300
392 #define CS48L32_IN1_PDM_SUP_SHIFT			 8
393 #define CS48L32_IN1_MODE_SHIFT				 0
394 
395 /*
396  * (0x4024) IN1L_CONTROL1
397  * (0x4044) IN1R_CONTROL1
398  */
399 #define CS48L32_INx_SRC_MASK			0x30000000
400 #define CS48L32_INx_SRC_SHIFT				28
401 #define CS48L32_INx_RATE_MASK			0x0000f800
402 #define CS48L32_INx_RATE_SHIFT				11
403 #define CS48L32_INx_HPF_SHIFT				 2
404 #define CS48L32_INx_LP_MODE_SHIFT			 0
405 
406 /*
407  * (0x4028) IN1L_CONTROL2
408  * (0x4048) IN1R_CONTROL2
409  */
410 #define CS48L32_INx_MUTE_MASK			0x10000000
411 #define CS48L32_INx_VOL_SHIFT				16
412 #define CS48L32_INx_PGA_VOL_SHIFT			 1
413 
414 /* (0x4244) INPUT_HPF_CONTROL */
415 #define CS48L32_IN_HPF_CUT_SHIFT			 0
416 
417 /* (0x4248) INPUT_VOL_CONTROL */
418 #define CS48L32_IN_VD_RAMP_SHIFT			 4
419 #define CS48L32_IN_VI_RAMP_SHIFT			 0
420 
421 /* (0x4308) AUXPDM1_CONTROL1 */
422 #define CS48L32_AUXPDM1_FREQ_SHIFT			16
423 #define CS48L32_AUXPDM1_SRC_MASK		0x00000f00
424 #define CS48L32_AUXPDM1_SRC_SHIFT			 8
425 
426 /* (0x4688) ADC1L_ANA_CONTROL1 */
427 /* (0x468c) ADC1R_ANA_CONTROL1 */
428 #define CS48L32_ADC1x_INT_ENA_FRC_MASK		0x00000002
429 
430 /* (0x6004) ASPn_CONTROL1 */
431 #define CS48L32_ASP_RATE_MASK			0x00001f00
432 #define CS48L32_ASP_RATE_SHIFT				 8
433 #define CS48L32_ASP_BCLK_FREQ_MASK		0x0000003f
434 
435 /* (0x6008) ASPn_CONTROL2 */
436 #define CS48L32_ASP_RX_WIDTH_MASK		0xff000000
437 #define CS48L32_ASP_RX_WIDTH_SHIFT			24
438 #define CS48L32_ASP_TX_WIDTH_MASK		0x00ff0000
439 #define CS48L32_ASP_TX_WIDTH_SHIFT			16
440 #define CS48L32_ASP_FMT_MASK			0x00000700
441 #define CS48L32_ASP_FMT_SHIFT				 8
442 #define CS48L32_ASP_BCLK_INV_MASK		0x00000040
443 #define CS48L32_ASP_BCLK_MSTR_MASK		0x00000010
444 #define CS48L32_ASP_FSYNC_INV_MASK		0x00000004
445 #define CS48L32_ASP_FSYNC_MSTR_MASK		0x00000001
446 
447 /* (0x6010) ASPn_CONTROL3 */
448 #define CS48L32_ASP_DOUT_HIZ_MASK		0x00000003
449 
450 /* (0x6030) ASPn_DATA_CONTROL1 */
451 #define CS48L32_ASP_TX_WL_MASK			0x0000003f
452 
453 /* (0x6040) ASPn_DATA_CONTROL5 */
454 #define CS48L32_ASP_RX_WL_MASK			0x0000003f
455 
456 /* (0x82xx - 0x90xx)  *_INPUT[1-4] */
457 #define CS48L32_MIXER_VOL_MASK			0x00FE0000
458 #define CS48L32_MIXER_VOL_SHIFT				17
459 #define CS48L32_MIXER_VOL_WIDTH				 7
460 #define CS48L32_MIXER_SRC_MASK			0x000001ff
461 #define CS48L32_MIXER_SRC_SHIFT				 0
462 #define CS48L32_MIXER_SRC_WIDTH				 9
463 
464 /* (0xa400) ISRC1_CONTROL1 */
465 #define CS48L32_ISRC1_FSL_MASK			0xf8000000
466 #define CS48L32_ISRC1_FSL_SHIFT				27
467 #define CS48L32_ISRC1_FSH_MASK			0x0000f800
468 #define CS48L32_ISRC1_FSH_SHIFT				11
469 
470 /* (0xa404) ISRC1_CONTROL2 */
471 #define CS48L32_ISRC1_INT4_EN_SHIFT			11
472 #define CS48L32_ISRC1_INT3_EN_SHIFT			10
473 #define CS48L32_ISRC1_INT2_EN_SHIFT			 9
474 #define CS48L32_ISRC1_INT1_EN_SHIFT			 8
475 #define CS48L32_ISRC1_DEC4_EN_SHIFT			 3
476 #define CS48L32_ISRC1_DEC3_EN_SHIFT			 2
477 #define CS48L32_ISRC1_DEC2_EN_SHIFT			 1
478 #define CS48L32_ISRC1_DEC1_EN_SHIFT			 0
479 
480 /* (0xa800) FX_SAMPLE_RATE */
481 #define CS48L32_FX_RATE_MASK			0x0000f800
482 #define CS48L32_FX_RATE_SHIFT				11
483 
484 /* (0xab00) DRC1_CONTROL1 */
485 #define CS48L32_DRC1L_EN_SHIFT				 1
486 #define CS48L32_DRC1R_EN_SHIFT				 0
487 
488 /* (0xb400) Comfort_Noise_Generator */
489 #define CS48L32_NOISE_GEN_RATE_MASK		0x0000f800
490 #define CS48L32_NOISE_GEN_RATE_SHIFT			11
491 #define CS48L32_NOISE_GEN_EN_SHIFT			 5
492 #define CS48L32_NOISE_GEN_GAIN_SHIFT			 0
493 
494 /* (0xb800) US_CONTROL */
495 #define CS48L32_US1_DET_EN_SHIFT			 8
496 
497 /* (0xb804) US1_CONTROL */
498 #define CS48L32_US1_RATE_MASK			0xf8000000
499 #define CS48L32_US1_RATE_SHIFT				27
500 #define CS48L32_US1_GAIN_SHIFT				12
501 #define CS48L32_US1_SRC_MASK			0x00000f00
502 #define CS48L32_US1_SRC_SHIFT				 8
503 #define CS48L32_US1_FREQ_MASK			0x00000070
504 #define CS48L32_US1_FREQ_SHIFT				 4
505 
506 /* (0xb808) US1_DET_CONTROL */
507 #define CS48L32_US1_DET_DCY_SHIFT			28
508 #define CS48L32_US1_DET_HOLD_SHIFT			24
509 #define CS48L32_US1_DET_NUM_SHIFT			20
510 #define CS48L32_US1_DET_THR_SHIFT			16
511 #define CS48L32_US1_DET_LPF_CUT_SHIFT			 5
512 #define CS48L32_US1_DET_LPF_SHIFT			 4
513 
514 /* (0x18004) IRQ1_STATUS */
515 #define CS48L32_IRQ1_STS_MASK			0x00000001
516 
517 /* (0x18014) IRQ1_EINT_2 */
518 #define CS48L32_BOOT_DONE_EINT1_MASK		0x00000008
519 
520 /* (0x18028) IRQ1_EINT_7 */
521 #define CS48L32_DSP1_MPU_ERR_EINT1_MASK		0x00200000
522 #define CS48L32_DSP1_WDT_EXPIRE_EINT1_MASK	0x00100000
523 
524 /* (0x18030) IRQ1_EINT_9 */
525 #define CS48L32_DSP1_IRQ0_EINT1_MASK		0x00000001
526 
527 /* (0x180a4) IRQ1_STS_6 */
528 #define CS48L32_FLL1_LOCK_STS1_MASK		0x00000001
529 
530 #endif
531