xref: /OK3568_Linux_fs/kernel/sound/soc/codecs/rv1106_codec.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * rv1106_codec.h - Rockchip RV1106 SoC Codec Driver
4  *
5  * Copyright (C) 2022 Rockchip Electronics Co., Ltd.
6  */
7 
8 #ifndef __RV1106_CODEC_H__
9 #define __RV1106_CODEC_H__
10 
11 #define ACODEC_RESET_CTL			0x00 /* REG 0x00 */
12 #define ACODEC_GLB_CON				ACODEC_RESET_CTL
13 #define ACODEC_MUTE_DA_DITHER_CTL		0x04 /* REG 0x01 */
14 
15 /* ADC DIGITAL REGISTERS */
16 #define ACODEC_ADC_I2S_CTL0			0x08 /* REG 0x02 */
17 #define ACODEC_ADC_I2S_CTL1			0x0c /* REG 0x03 */
18 #define ACODEC_DAC_I2S_CTL0			0x10 /* REG 0x04 */
19 #define ACODEC_DAC_I2S_CTL1			0x14 /* REG 0x05 */
20 #define ACODEC_DAC_GAIN_SEL			0x18 /* REG 0x06 */
21 #define ACODEC_DAC_L_BIST_MODE_SEL		0x1c /* REG 0x07 */
22 #define ACODEC_ADC_L_DIG_VOL			0x20 /* REG 0x08 */
23 #define ACODEC_ADC_R_DIG_VOL			0x24 /* REG 0x09 */
24 #define ACODEC_ADC_HPF_PGA_CTL			0x28 /* REG 0x0a */
25 #define ACODEC_INIT_DELAY_CNT1			0x2c /* REG 0x0b */
26 #define ACODEC_INIT_DELAY_CNT2			0x30 /* REG 0x0c */
27 #define ACODEC_ADC_BIST_MODE_SEL		0x34 /* REG 0x0d */
28 #define ACODEC_DAC_CONFIG_OUTPUT		0x38 /* REG 0x0e */
29 #define ACODEC_LINEOUT_CTL			0x80 /* REG 0x20 */
30 #define ACODEC_CURRENT_CHARGE_CTL		0x84 /* REG 0x21 */
31 
32 #define ACODEC_ADC_ANA_CTL0			0x88 /* REG 0x22 */
33 #define ACODEC_ADC_ANA_CTL1			0x8c /* REG 0x23 */
34 #define ACODEC_ADC_ANA_CTL2			0x90 /* REG 0x24 */
35 #define ACODEC_ADC_ANA_CTL3			0x94 /* REG 0x25 */
36 #define ACODEC_ADC_ANA_CTL4			0x98 /* REG 0x26 */
37 #define ACODEC_ADC_ANA_CTL5			0x9c /* REG 0x27 */
38 #define ACODEC_ADC_ANA_CTL6			0xa0 /* REG 0x28 */
39 
40 #define ACODEC_DAC_ANA_CTL0			0xa4 /* REG 0x29 */
41 #define ACODEC_DAC_ANA_CTL1			0xa8 /* REG 0x2a */
42 #define ACODEC_DAC_ANA_CTL2			0xac /* REG 0x2b */
43 #define ACODEC_DAC_HPMIX_CTL			0xbc /* REG 0x2f */
44 
45 /* The description of the agc register for the left channel */
46 #define ACODEC_ADC_PGA_AGC_L_CTL0		0x100 /* REG 0x40 */
47 #define ACODEC_ADC_PGA_AGC_L_CTL1		0x104 /* REG 0x41 */
48 #define ACODEC_ADC_PGA_AGC_L_CTL2		0x108 /* REG 0x42 */
49 #define ACODEC_ADC_PGA_AGC_L_CTL3		0x10c /* REG 0x43 */
50 #define ACODEC_ADC_PGA_AGC_L_CTL4		0x110 /* REG 0x44 */
51 #define ACODEC_ADC_PGA_AGC_L_CTL5		0x114 /* REG 0x45 */
52 #define ACODEC_ADC_PGA_AGC_L_CTL6		0x118 /* REG 0x46 */
53 #define ACODEC_ADC_PGA_AGC_L_CTL7		0x11c /* REG 0x47 */
54 #define ACODEC_ADC_PGA_AGC_L_CTL8		0x120 /* REG 0x48 */
55 #define ACODEC_ADC_PGA_AGC_L_CTL9		0x124 /* REG 0x49 */
56 
57 /* The description of the agc register for the right channel */
58 #define ACODEC_ADC_PGA_AGC_R_CTL0		0x140 /* REG 0x50 */
59 #define ACODEC_ADC_PGA_AGC_R_CTL1		0x144 /* REG 0x51 */
60 #define ACODEC_ADC_PGA_AGC_R_CTL2		0x148 /* REG 0x52 */
61 #define ACODEC_ADC_PGA_AGC_R_CTL3		0x14c /* REG 0x53 */
62 #define ACODEC_ADC_PGA_AGC_R_CTL4		0x150 /* REG 0x54 */
63 #define ACODEC_ADC_PGA_AGC_R_CTL5		0x154 /* REG 0x55 */
64 #define ACODEC_ADC_PGA_AGC_R_CTL6		0x158 /* REG 0x56 */
65 #define ACODEC_ADC_PGA_AGC_R_CTL7		0x15c /* REG 0x57 */
66 #define ACODEC_ADC_PGA_AGC_R_CTL8		0x160 /* REG 0x58 */
67 #define ACODEC_ADC_PGA_AGC_R_CTL9		0x164 /* REG 0x59 */
68 
69 #define ACODEC_REG_MAX				ACODEC_ADC_PGA_AGC_R_CTL9
70 
71 /* ACODEC_RESET_CTL */
72 #define ACODEC_CODEC_BIST_MSK			(1 << 7)
73 #define ACODEC_CODEC_BIST_WORK			(1 << 7)
74 #define ACODEC_CODEC_BIST_RST			(0 << 7)
75 #define ACODEC_CODEC_CORE_RST_MSK		(1 << 1)
76 #define ACODEC_CODEC_CORE_WORK			(1 << 1)
77 #define ACODEC_CODEC_CORE_RST			(0 << 1)
78 #define ACODEC_CODEC_SYS_RST_MSK		(1 << 0)
79 #define ACODEC_CODEC_SYS_WORK			(1 << 0)
80 #define ACODEC_CODEC_SYS_RST			(0 << 0)
81 
82 /* ACODEC_MUTE_DA_DITHER_CTL */
83 #define ACODEC_DAC_MUTE_MSK			(1 << 7)
84 #define ACODEC_DAC_MUTE_EN			(1 << 7)
85 #define ACODEC_DAC_MUTE_DIS			(0 << 7)
86 #define ACODEC_DITHER_LEVEL_SEL			(1 << 3)
87 #define ACODEC_DA_MSK				(1 << 2)
88 #define ACODEC_DA_EN				(1 << 2)
89 #define ACODEC_DA_DIS				(0 << 2)
90 #define ACODEC_DITHER_MSK			(1 << 1)
91 #define ACODEC_DITHER_EN			(1 << 1)
92 #define ACODEC_DITHER_DIS			(0 << 1)
93 #define ACODEC_DITHER_SIGN			(1 << 0)
94 
95 /* ACODEC_ADC_I2S_CTL0 */
96 #define ACODEC_ADC_I2S_LRC_POL_MSK		(1 << 7)
97 #define ACODEC_ADC_I2S_LRC_POL_REVERSAL		(1 << 7)
98 #define ACODEC_ADC_I2S_LRC_POL_NORMAL		(0 << 7)
99 #define ACODEC_ADC_I2S_VALID_LEN_SFT		5
100 #define ACODEC_ADC_I2S_VALID_LEN_MSK		(0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
101 #define ACODEC_ADC_I2S_VALID_LEN_32BITS		(0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
102 #define ACODEC_ADC_I2S_VALID_LEN_24BITS		(0x2 << ACODEC_ADC_I2S_VALID_LEN_SFT)
103 #define ACODEC_ADC_I2S_VALID_LEN_20BITS		(0x1 << ACODEC_ADC_I2S_VALID_LEN_SFT)
104 #define ACODEC_ADC_I2S_VALID_LEN_16BITS		(0x0 << ACODEC_ADC_I2S_VALID_LEN_SFT)
105 #define ACODEC_ADC_I2S_MODE_SFT			3
106 #define ACODEC_ADC_I2S_MODE_MSK			(0x3 << ACODEC_ADC_I2S_MODE_SFT)
107 #define ACODEC_ADC_I2S_MODE_PCM			(0x3 << ACODEC_ADC_I2S_MODE_SFT)
108 #define ACODEC_ADC_I2S_MODE_I2S			(0x2 << ACODEC_ADC_I2S_MODE_SFT)
109 #define ACODEC_ADC_I2S_MODE_LJ			(0x1 << ACODEC_ADC_I2S_MODE_SFT)
110 #define ACODEC_ADC_I2S_MODE_RJ			(0x0 << ACODEC_ADC_I2S_MODE_SFT)
111 #define ACODEC_ADC_I2S_SEL_DATA_MSK		(1 << 2)
112 #define ACODEC_ADC_I2S_SEL_ADC_DATA		(1 << 2)
113 #define ACODEC_ADC_I2S_SEL_ADCL_DACL_DATA	(0 << 2)
114 #define ACODEC_ADC_I2S_DATA_SEL			0
115 #define ACODEC_ADC_I2S_DATA_SEL_MSK		(0x3 << ACODEC_ADC_I2S_DATA_SEL)
116 #define ACODEC_ADC_I2S_DATA_SWAP		(0x3 << ACODEC_ADC_I2S_DATA_SEL)
117 #define ACODEC_ADC_I2S_DATA_SEL_LEFT		(0x2 << ACODEC_ADC_I2S_DATA_SEL)
118 #define ACODEC_ADC_I2S_DATA_SEL_RIGHT		(0x1 << ACODEC_ADC_I2S_DATA_SEL)
119 #define ACODEC_ADC_I2S_DATA_SEL_NORMAL		(0x0 << ACODEC_ADC_I2S_DATA_SEL)
120 
121 /* ACODEC_ADC_I2S_CTL1 */
122 #define ACODEC_DAC_IO_MODE_MSK			(0x1 << 7)
123 #define ACODEC_DAC_IO_MODE_MASTER		(0x1 << 7)
124 #define ACODEC_DAC_IO_MODE_SLAVE		(0x0 << 7)
125 #define ACODEC_DAC_MODE_MSK			(0x1 << 6)
126 #define ACODEC_DAC_MODE_MASTER			(0x1 << 6)
127 #define ACODEC_DAC_MODE_SLAVE			(0x0 << 6)
128 #define ACODEC_ADC_IO_MODE_MSK			(0x1 << 5)
129 #define ACODEC_ADC_IO_MODE_MASTER		(0x1 << 5)
130 #define ACODEC_ADC_IO_MODE_SLAVE		(0x0 << 5)
131 #define ACODEC_ADC_MODE_MSK			(0x1 << 4)
132 #define ACODEC_ADC_MODE_MASTER			(0x1 << 4)
133 #define ACODEC_ADC_MODE_SLAVE			(0x0 << 4)
134 #define ACODEC_ADC_I2S_FRAME_LEN_SFT		2
135 #define ACODEC_ADC_I2S_FRAME_LEN_MSK		(0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
136 #define ACODEC_ADC_I2S_FRAME_32BITS		(0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
137 #define ACODEC_ADC_I2S_FRAME_24BITS		(0x1 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
138 #define ACODEC_ADC_I2S_MSK			(0x1 << 1)
139 #define ACODEC_ADC_I2S_WORK			(0x1 << 1)
140 #define ACODEC_ADC_I2S_RESET			(0x0 << 1)
141 #define ACODEC_ADC_I2S_BIT_CLK_POL_MSK		(0x1 << 0)
142 #define ACODEC_ADC_I2S_BIT_CLK_POL_REVERSAL	(0x1 << 0)
143 #define ACODEC_ADC_I2S_BIT_CLK_POL_NORMAL	(0x0 << 0)
144 
145 /* ACODEC_DAC_I2S_CTL0 */
146 #define ACODEC_DAC_I2S_LRC_POL_MSK		(0x1 << 7)
147 #define ACODEC_DAC_I2S_LRC_POL_REVERSAL		(0x1 << 7)
148 #define ACODEC_DAC_I2S_LRC_POL_NORMAL		(0x0 << 7)
149 #define ACODEC_DAC_I2S_VALID_LEN_SFT		5
150 #define ACODEC_DAC_I2S_VALID_LEN_MSK		(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
151 #define ACODEC_DAC_I2S_VALID_LEN_32BITS		(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
152 #define ACODEC_DAC_I2S_VALID_LEN_24BITS		(0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
153 #define ACODEC_DAC_I2S_VALID_LEN_20BITS		(0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
154 #define ACODEC_DAC_I2S_VALID_LEN_16BITS		(0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
155 #define ACODEC_DAC_I2S_MODE_SFT			3
156 #define ACODEC_DAC_I2S_MODE_MSK			(0x3 << ACODEC_DAC_I2S_MODE_SFT)
157 #define ACODEC_DAC_I2S_MODE_PCM			(0x3 << ACODEC_DAC_I2S_MODE_SFT)
158 #define ACODEC_DAC_I2S_MODE_I2S			(0x2 << ACODEC_DAC_I2S_MODE_SFT)
159 #define ACODEC_DAC_I2S_MODE_LJ			(0x1 << ACODEC_DAC_I2S_MODE_SFT)
160 #define ACODEC_DAC_I2S_MODE_RJ			(0x0 << ACODEC_DAC_I2S_MODE_SFT)
161 #define ACODEC_DAC_I2S_LR_MSK			(0x1 << 2)
162 #define ACODEC_DAC_I2S_LR_SWAP			(0x1 << 2)
163 #define ACODEC_DAC_I2S_LR_NORMAL		(0x0 << 2)
164 
165 /* ACODEC_DAC_I2S_CTL1 */
166 #define ACODEC_DAC_DE_EMPHASIS_FILTER_SFT	4
167 #define ACODEC_DAC_DE_EMPHASIS_FILTER_MSK	(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
168 #define ACODEC_DAC_48_DE_EMPHASIS_FILTER	(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
169 #define ACODEC_DAC_441_DE_EMPHASIS_FILTER	(0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
170 #define ACODEC_DAC_32_DE_EMPHASIS_FILTER	(0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
171 #define ACODEC_DAC_NO_DE_EMPHASIS_FILTER	(0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
172 #define ACODEC_DAC_I2S_FRAME_LEN_SFT		2
173 #define ACODEC_DAC_I2S_FRAME_LEN_MSK		(0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
174 #define ACODEC_DAC_I2S_FRAME_32BITS		(0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
175 #define ACODEC_DAC_I2S_FRAME_24BITS		(0x2 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
176 #define ACODEC_DAC_I2S_FRAME_20BITS		(0x1 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
177 #define ACODEC_DAC_I2S_FRAME_16BITS		(0x0 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
178 #define ACODEC_DAC_I2S_MSK			(0x1 << 1)
179 #define ACODEC_DAC_I2S_WORK			(0x1 << 1)
180 #define ACODEC_DAC_I2S_RESET			(0x0 << 1)
181 #define ACODEC_DAC_I2S_BIT_CLK_POL_MSK		(0x1 << 0)
182 #define ACODEC_DAC_I2S_BIT_CLK_POL_REVERSAL	(0x1 << 0)
183 #define ACODEC_DAC_I2S_BIT_CLK_POL_NORMAL	(0x0 << 0)
184 
185 /* ACODEC_DAC_GAIN_SEL */
186 #define ACODEC_DAC_DIG_GAIN_SFT			0
187 #define ACODEC_DAC_DIG_GAIN_MSK			(0xff << ACODEC_DAC_DIG_GAIN_SFT)
188 #define ACODEC_DAC_DIG_GAIN(x)			((x) & ACODEC_DAC_DIG_GAIN_MSK)
189 #define ACODEC_DAC_DIG_0DB			0xed
190 
191 /* ACODEC_DAC_L_BIST_MODE_SEL */
192 #define ACODEC_DAC_L_CH_BIST_SFT		4
193 #define ACODEC_DAC_L_CH_BIST_MSK		(0x3 << ACODEC_DAC_L_CH_BIST_SFT)
194 #define ACODEC_DAC_L_CH_BIST_SINE		(0x1 << ACODEC_DAC_L_CH_BIST_SFT)
195 #define ACODEC_DAC_L_CH_BIST_LEFT		(0x0 << ACODEC_DAC_L_CH_BIST_SFT) /* normal mode */
196 
197 /* ACODEC_ADC_L_DIG_VOL */
198 #define ACODEC_ADC_L_DIG_VOL_MAX		0xff
199 #define ACODEC_ADC_L_DIG_VOL_MIN		0
200 #define ACODEC_ADC_L_DIG_VOL_SFT		0
201 #define ACODEC_ADC_L_DIG_VOL_MUTE		0
202 #define ACODEC_ADC_L_DIG_VOL_0DB		0xc3
203 
204 /* ACODEC_ADC_R_DIG_VOL */
205 #define ACODEC_ADC_R_DIG_VOL_MAX		0xff
206 #define ACODEC_ADC_R_DIG_VOL_MIN		0
207 #define ACODEC_ADC_R_DIG_VOL_SFT		0
208 #define ACODEC_ADC_R_DIG_VOL_MUTE		0
209 #define ACODEC_ADC_R_DIG_VOL_0DB		0xc3
210 
211 /* ACODEC_ADC_HPF_PGA_CTL */
212 #define ACODEC_ADC_FILTER_MSK			(1 << 7)
213 #define ACODEC_ADC_FILTER_EN			(1 << 7)
214 #define ACODEC_ADC_FILTER_DIS			(0 << 7)
215 #define ACODEC_ADC_AGC_MSK			(1 << 6)
216 #define ACODEC_ADC_FILTER_OUTPUT		(1 << 6)
217 #define ACODEC_ADC_SINC_OUTPUT			(0 << 6)
218 #define ACODEC_ADC_L_PGA_MSK			(1 << 5)
219 #define ACODEC_ADC_PGA_ALCL_EN			(1 << 5)
220 #define ACODEC_ADC_PGA_ALCL_DIS			(0 << 5)
221 #define ACODEC_ADC_R_PGA_MSK			(1 << 4)
222 #define ACODEC_ADC_PGA_ALCR_EN			(1 << 4)
223 #define ACODEC_ADC_PGA_ALCR_DIS			(0 << 4)
224 #define ACODEC_ADC_HPF_SFT			2
225 #define ACODEC_ADC_HPF_MSK			(3 << ACODEC_ADC_HPF_SFT)
226 #define ACODEC_ADC_HPF_EN			(3 << ACODEC_ADC_HPF_SFT)
227 #define ACODEC_ADC_HPF_DIS			(0 << ACODEC_ADC_HPF_SFT)
228 #define ACODEC_ADC_R_DATA_POL_INV_MSK		(1 << 1)
229 #define ACODEC_ADC_R_DATA_POL_INV_EN		(1 << 1)
230 #define ACODEC_ADC_R_DATA_POL_INV_DIS		(0 << 1)
231 #define ACODEC_ADC_L_DATA_POL_INV_MSK		(1 << 0)
232 #define ACODEC_ADC_L_DATA_POL_INV_EN		(1 << 0)
233 #define ACODEC_ADC_L_DATA_POL_INV_DIS		(0 << 0)
234 
235 /* ACODEC_ADC_BIST_MODE_SEL */
236 #define ACODEC_ADC_R_BIST_SFT			6
237 #define ACODEC_ADC_R_BIST_MSK			(0x3 << ACODEC_ADC_R_BIST_SFT)
238 #define ACODEC_ADC_R_BIST_SINE			(0x1 << ACODEC_ADC_R_BIST_SFT)
239 #define ACODEC_ADC_BIST_RIGHT			(0x0 << ACODEC_ADC_R_BIST_SFT) /* normal mode */
240 #define ACODEC_ADC_L_BIST_SFT			4
241 #define ACODEC_ADC_L_BIST_MSK			(0x3 << ACODEC_ADC_L_BIST_SFT)
242 #define ACODEC_ADC_L_BIST_SINE			(0x1 << ACODEC_ADC_L_BIST_SFT)
243 #define ACODEC_ADC_BIST_LEFT			(0x0 << ACODEC_ADC_L_BIST_SFT) /* normal mode */
244 
245 /* ACODEC_LINEOUT_CTL */
246 #define ACODEC_DAC_LINEOUT_EN_SFT               7
247 #define ACODEC_DAC_LINEOUT_EN_WORK              (0x1 << ACODEC_DAC_LINEOUT_EN_SFT)
248 #define ACODEC_DAC_LINEOUT_EN_RST               (0x0 << ACODEC_DAC_LINEOUT_EN_SFT)
249 #define ACODEC_DAC_LINEOUT_INI_SFT		6
250 #define ACODEC_DAC_LINEOUT_INI_WORK		(0x1 << ACODEC_DAC_LINEOUT_INI_SFT)
251 #define ACODEC_DAC_LINEOUT_INI_RST		(0x0 << ACODEC_DAC_LINEOUT_INI_SFT)
252 #define ACODEC_DAC_IBIAS_SEL_SFT		0
253 #define ACODEC_DAC_IBIAS_SEL_MSK		(0xf << ACODEC_DAC_IBIAS_SEL_SFT)
254 
255 /* ACODEC_CURRENT_CHARGE_CTL */
256 #define ACODEC_ADC_CURRENT_CHARGE_SFT		0
257 #define ACODEC_ADC_CURRENT_CHARGE_MSK		(0xff << ACODEC_ADC_CURRENT_CHARGE_SFT)
258 /*
259  * 1: Choose the current I
260  * 0: Don't choose the current I
261  */
262 #define ACODEC_ADC_SEL_I(x)			(x & 0xff)
263 
264 /* ACODEC_ADC_ANA_CTL0 */
265 #define ACODEC_ADC_REF_VOL_MSK			(0x1 << 5)
266 #define ACODEC_ADC_REF_VOL_EN			(0x1 << 5)
267 #define ACODEC_ADC_REF_VOL_DIS			(0x0 << 5)
268 #define ACODEC_ADC_IBIAS_MSK			(0x1 << 4)
269 #define ACODEC_ADC_IBIAS_EN			(0x1 << 4)
270 #define ACODEC_ADC_IBIAS_DIS			(0x0 << 4)
271 #define ACODEC_MICBIAS_SFT			3
272 #define ACODEC_MICBIAS_MSK			(0x1 << 3)
273 #define ACODEC_MICBIAS_WORK			(0x1 << 3)
274 #define ACODEC_MICBIAS_RST			(0x0 << 3)
275 #define ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT	0
276 #define ACODEC_ADC_LEVEL_RANGE_MICBIAS_MSK	(0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
277 #define ACODEC_ADC_MICBIAS_VOLT_0_975		(0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
278 #define ACODEC_ADC_MICBIAS_VOLT_0_95		(0x6 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
279 #define ACODEC_ADC_MICBIAS_VOLT_0_925		(0x5 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
280 #define ACODEC_ADC_MICBIAS_VOLT_0_9		(0x4 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
281 #define ACODEC_ADC_MICBIAS_VOLT_0_875		(0x3 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
282 #define ACODEC_ADC_MICBIAS_VOLT_0_85		(0x2 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
283 #define ACODEC_ADC_MICBIAS_VOLT_0_825		(0x1 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
284 #define ACODEC_ADC_MICBIAS_VOLT_0_8		(0x0 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
285 
286 /* ACODEC_ADC_ANA_CTL1 */
287 #define ACODEC_ADC_L_MIC_MSK			(0x1 << 7)
288 #define ACODEC_ADC_L_MIC_WORK			(0x1 << 7)
289 #define ACODEC_ADC_L_MIC_MUTE			(0x0 << 7)
290 #define ACODEC_ADC_L_MIC_SIGNAL_MSK		(0x1 << 6)
291 #define ACODEC_ADC_L_MIC_SIGNAL_WORK		(0x1 << 6)
292 #define ACODEC_ADC_L_MIC_SIGNAL_INIT		(0x0 << 6)
293 #define ACODEC_ADC_L_REF_VOL_BUF_MSK		(0x1 << 5)
294 #define ACODEC_ADC_L_REF_VOL_BUF_EN		(0x1 << 5)
295 #define ACODEC_ADC_L_REF_VOL_BUF_DIS		(0x0 << 5)
296 #define ACODEC_ADC_L_ZERO_CROSS_DET_MSK		(0x1 << 4)
297 #define ACODEC_ADC_L_ZERO_CROSS_DET_EN		(0x1 << 4)
298 #define ACODEC_ADC_L_ZERO_CROSS_DET_DIS		(0x0 << 4)
299 #define ACODEC_ADC_R_MIC_MSK			(0x1 << 3)
300 #define ACODEC_ADC_R_MIC_WORK			(0x1 << 3)
301 #define ACODEC_ADC_R_MIC_MUTE			(0x0 << 3)
302 #define ACODEC_ADC_R_MIC_SIGNAL_MSK		(0x1 << 2)
303 #define ACODEC_ADC_R_MIC_SIGNAL_WORK		(0x1 << 2)
304 #define ACODEC_ADC_R_MIC_SIGNAL_INIT		(0x0 << 2)
305 #define ACODEC_ADC_R_REF_VOL_BUF_MSK		(0x1 << 1)
306 #define ACODEC_ADC_R_REF_VOL_BUF_EN		(0x1 << 1)
307 #define ACODEC_ADC_R_REF_VOL_BUF_DIS		(0x0 << 1)
308 #define ACODEC_ADC_R_ZERO_CROSS_DET_MSK		(0x1 << 0)
309 #define ACODEC_ADC_R_ZERO_CROSS_DET_EN		(0x1 << 0)
310 #define ACODEC_ADC_R_ZERO_CROSS_DET_DIS		(0x0 << 0)
311 
312 /* ACODEC_ADC_ANA_CTL2 */
313 #define ACODEC_ADC_MIC_GAIN_MAX			0x3
314 #define ACODEC_ADC_MIC_GAIN_MIN			0x1
315 #define ACODEC_ADC_L_MIC_GAIN_SFT		6
316 #define ACODEC_ADC_L_MIC_GAIN_MSK		(0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
317 #define ACODEC_ADC_L_MIC_GAIN_12DB		(0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
318 #define ACODEC_ADC_L_MIC_GAIN_20DB		(0x2 << ACODEC_ADC_L_MIC_GAIN_SFT)
319 #define ACODEC_ADC_L_MIC_GAIN_0DB		(0x1 << ACODEC_ADC_L_MIC_GAIN_SFT)
320 #define ACODEC_ADC_R_MIC_GAIN_SFT		4
321 #define ACODEC_ADC_R_MIC_GAIN_MSK		(0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
322 #define ACODEC_ADC_R_MIC_GAIN_12DB		(0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
323 #define ACODEC_ADC_R_MIC_GAIN_20DB		(0x2 << ACODEC_ADC_R_MIC_GAIN_SFT)
324 #define ACODEC_ADC_R_MIC_GAIN_0DB		(0x1 << ACODEC_ADC_R_MIC_GAIN_SFT)
325 #define ACODEC_ADC_IBIAS_SEL_SFT		0
326 #define ACODEC_ADC_IBIAS_SEL_MSK		(0xf << ACODEC_ADC_IBIAS_SEL_SFT)
327 
328 /* ACODEC_ADC_ANA_CTL3 */
329 #define ACODEC_ADC_L_MODE_SEL_SFT		6
330 #define ACODEC_ADC_L_MODE_SEL_MSK		(0x3 << ACODEC_ADC_L_MODE_SEL_SFT)
331 #define ACODEC_ADC_L_FULL_DIFFER2		(0x2 << ACODEC_ADC_L_MODE_SEL_SFT) /* Only used for rv1103 acodec */
332 #define ACODEC_ADC_L_SINGLE_END			(0x1 << ACODEC_ADC_L_MODE_SEL_SFT)
333 #define ACODEC_ADC_L_FULL_DIFFER		(0x0 << ACODEC_ADC_L_MODE_SEL_SFT)
334 #define ACODEC_ADC_L_MSK			(0x1 << 5)
335 #define ACODEC_ADC_L_EN				(0x1 << 5)
336 #define ACODEC_ADC_L_DIS			(0x0 << 5)
337 #define ACODEC_MIC_L_MSK			(0x1 << 4)
338 #define ACODEC_MIC_L_EN				(0x1 << 4)
339 #define ACODEC_MIC_L_DIS			(0x0 << 4)
340 #define ACODEC_ADC_R_MODE_SEL_SFT		2
341 #define ACODEC_ADC_R_MODE_SEL_MSK		(0x3 << ACODEC_ADC_R_MODE_SEL_SFT)
342 #define ACODEC_ADC_R_SINGLE_END			(0x1 << ACODEC_ADC_R_MODE_SEL_SFT)
343 #define ACODEC_ADC_R_FULL_DIFFER		(0x0 << ACODEC_ADC_R_MODE_SEL_SFT)
344 #define ACODEC_ADC_R_MSK			(0x1 << 1)
345 #define ACODEC_ADC_R_EN				(0x1 << 1)
346 #define ACODEC_ADC_R_DIS			(0x0 << 1)
347 #define ACODEC_MIC_R_MSK			(0x1 << 0)
348 #define ACODEC_MIC_R_EN				(0x1 << 0)
349 #define ACODEC_MIC_R_DIS			(0x0 << 0)
350 
351 /* ACODEC_ADC_ANA_CTL4 */
352 #define ACODEC_ADC_L_ALC_GAIN_MAX		0x1f
353 #define ACODEC_ADC_L_ALC_GAIN_MIN		0
354 #define ACODEC_ADC_L_ALC_GAIN_SFT		0
355 #define ACODEC_ADC_L_ALC_GAIN_MSK		(0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
356 #define ACODEC_ADC_L_ALC_GAIN_PDB_37_5		(0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
357 #define ACODEC_ADC_L_ALC_GAIN_PDB_36		(0x1e << ACODEC_ADC_L_ALC_GAIN_SFT)
358 #define ACODEC_ADC_L_ALC_GAIN_PDB_34_5		(0x1d << ACODEC_ADC_L_ALC_GAIN_SFT)
359 #define ACODEC_ADC_L_ALC_GAIN_PDB_33		(0x1c << ACODEC_ADC_L_ALC_GAIN_SFT)
360 #define ACODEC_ADC_L_ALC_GAIN_PDB_31_5		(0x1b << ACODEC_ADC_L_ALC_GAIN_SFT)
361 #define ACODEC_ADC_L_ALC_GAIN_PDB_30		(0x1a << ACODEC_ADC_L_ALC_GAIN_SFT)
362 #define ACODEC_ADC_L_ALC_GAIN_PDB_28_5		(0x19 << ACODEC_ADC_L_ALC_GAIN_SFT)
363 #define ACODEC_ADC_L_ALC_GAIN_PDB_27		(0x18 << ACODEC_ADC_L_ALC_GAIN_SFT)
364 #define ACODEC_ADC_L_ALC_GAIN_PDB_25_5		(0x17 << ACODEC_ADC_L_ALC_GAIN_SFT)
365 #define ACODEC_ADC_L_ALC_GAIN_PDB_24		(0x16 << ACODEC_ADC_L_ALC_GAIN_SFT)
366 #define ACODEC_ADC_L_ALC_GAIN_PDB_22_5		(0x15 << ACODEC_ADC_L_ALC_GAIN_SFT)
367 #define ACODEC_ADC_L_ALC_GAIN_PDB_21		(0x14 << ACODEC_ADC_L_ALC_GAIN_SFT)
368 #define ACODEC_ADC_L_ALC_GAIN_PDB_19_5		(0x13 << ACODEC_ADC_L_ALC_GAIN_SFT)
369 #define ACODEC_ADC_L_ALC_GAIN_PDB_18		(0x12 << ACODEC_ADC_L_ALC_GAIN_SFT)
370 #define ACODEC_ADC_L_ALC_GAIN_PDB_16_5		(0x11 << ACODEC_ADC_L_ALC_GAIN_SFT)
371 #define ACODEC_ADC_L_ALC_GAIN_PDB_15		(0x10 << ACODEC_ADC_L_ALC_GAIN_SFT)
372 #define ACODEC_ADC_L_ALC_GAIN_PDB_13_5		(0x0f << ACODEC_ADC_L_ALC_GAIN_SFT)
373 #define ACODEC_ADC_L_ALC_GAIN_PDB_12		(0x0e << ACODEC_ADC_L_ALC_GAIN_SFT)
374 #define ACODEC_ADC_L_ALC_GAIN_PDB_10_5		(0x0d << ACODEC_ADC_L_ALC_GAIN_SFT)
375 #define ACODEC_ADC_L_ALC_GAIN_PDB_9		(0x0c << ACODEC_ADC_L_ALC_GAIN_SFT)
376 #define ACODEC_ADC_L_ALC_GAIN_PDB_7_5		(0x0b << ACODEC_ADC_L_ALC_GAIN_SFT)
377 #define ACODEC_ADC_L_ALC_GAIN_PDB_6		(0x0a << ACODEC_ADC_L_ALC_GAIN_SFT)
378 #define ACODEC_ADC_L_ALC_GAIN_PDB_4_5		(0x09 << ACODEC_ADC_L_ALC_GAIN_SFT)
379 #define ACODEC_ADC_L_ALC_GAIN_PDB_3		(0x08 << ACODEC_ADC_L_ALC_GAIN_SFT)
380 #define ACODEC_ADC_L_ALC_GAIN_PDB_1_5		(0x07 << ACODEC_ADC_L_ALC_GAIN_SFT)
381 #define ACODEC_ADC_L_ALC_GAIN_0DB		(0x06 << ACODEC_ADC_L_ALC_GAIN_SFT)
382 #define ACODEC_ADC_L_ALC_GAIN_NDB_1_5		(0x05 << ACODEC_ADC_L_ALC_GAIN_SFT)
383 #define ACODEC_ADC_L_ALC_GAIN_NDB_3		(0x04 << ACODEC_ADC_L_ALC_GAIN_SFT)
384 #define ACODEC_ADC_L_ALC_GAIN_NDB_4_5		(0x03 << ACODEC_ADC_L_ALC_GAIN_SFT)
385 #define ACODEC_ADC_L_ALC_GAIN_NDB_6		(0x02 << ACODEC_ADC_L_ALC_GAIN_SFT)
386 #define ACODEC_ADC_L_ALC_GAIN_NDB_7_5		(0x01 << ACODEC_ADC_L_ALC_GAIN_SFT)
387 #define ACODEC_ADC_L_ALC_GAIN_NDB_9		(0x00 << ACODEC_ADC_L_ALC_GAIN_SFT)
388 
389 /* ACODEC_ADC_ANA_CTL5 */
390 #define ACODEC_ADC_R_ALC_GAIN_MAX		0x1f
391 #define ACODEC_ADC_R_ALC_GAIN_MIN		0
392 #define ACODEC_ADC_R_ALC_GAIN_SFT		0
393 #define ACODEC_ADC_R_ALC_GAIN_MSK		(0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
394 #define ACODEC_ADC_R_ALC_GAIN_PDB_37_5		(0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
395 #define ACODEC_ADC_R_ALC_GAIN_PDB_36		(0x1e << ACODEC_ADC_R_ALC_GAIN_SFT)
396 #define ACODEC_ADC_R_ALC_GAIN_PDB_34_5		(0x1d << ACODEC_ADC_R_ALC_GAIN_SFT)
397 #define ACODEC_ADC_R_ALC_GAIN_PDB_33		(0x1c << ACODEC_ADC_R_ALC_GAIN_SFT)
398 #define ACODEC_ADC_R_ALC_GAIN_PDB_31_5		(0x1b << ACODEC_ADC_R_ALC_GAIN_SFT)
399 #define ACODEC_ADC_R_ALC_GAIN_PDB_30		(0x1a << ACODEC_ADC_R_ALC_GAIN_SFT)
400 #define ACODEC_ADC_R_ALC_GAIN_PDB_28_5		(0x19 << ACODEC_ADC_R_ALC_GAIN_SFT)
401 #define ACODEC_ADC_R_ALC_GAIN_PDB_27		(0x18 << ACODEC_ADC_R_ALC_GAIN_SFT)
402 #define ACODEC_ADC_R_ALC_GAIN_PDB_25_5		(0x17 << ACODEC_ADC_R_ALC_GAIN_SFT)
403 #define ACODEC_ADC_R_ALC_GAIN_PDB_24		(0x16 << ACODEC_ADC_R_ALC_GAIN_SFT)
404 #define ACODEC_ADC_R_ALC_GAIN_PDB_22_5		(0x15 << ACODEC_ADC_R_ALC_GAIN_SFT)
405 #define ACODEC_ADC_R_ALC_GAIN_PDB_21		(0x14 << ACODEC_ADC_R_ALC_GAIN_SFT)
406 #define ACODEC_ADC_R_ALC_GAIN_PDB_19_5		(0x13 << ACODEC_ADC_R_ALC_GAIN_SFT)
407 #define ACODEC_ADC_R_ALC_GAIN_PDB_18		(0x12 << ACODEC_ADC_R_ALC_GAIN_SFT)
408 #define ACODEC_ADC_R_ALC_GAIN_PDB_16_5		(0x11 << ACODEC_ADC_R_ALC_GAIN_SFT)
409 #define ACODEC_ADC_R_ALC_GAIN_PDB_15		(0x10 << ACODEC_ADC_R_ALC_GAIN_SFT)
410 #define ACODEC_ADC_R_ALC_GAIN_PDB_13_5		(0x0f << ACODEC_ADC_R_ALC_GAIN_SFT)
411 #define ACODEC_ADC_R_ALC_GAIN_PDB_12		(0x0e << ACODEC_ADC_R_ALC_GAIN_SFT)
412 #define ACODEC_ADC_R_ALC_GAIN_PDB_10_5		(0x0d << ACODEC_ADC_R_ALC_GAIN_SFT)
413 #define ACODEC_ADC_R_ALC_GAIN_PDB_9		(0x0c << ACODEC_ADC_R_ALC_GAIN_SFT)
414 #define ACODEC_ADC_R_ALC_GAIN_PDB_7_5		(0x0b << ACODEC_ADC_R_ALC_GAIN_SFT)
415 #define ACODEC_ADC_R_ALC_GAIN_PDB_6		(0x0a << ACODEC_ADC_R_ALC_GAIN_SFT)
416 #define ACODEC_ADC_R_ALC_GAIN_PDB_4_5		(0x09 << ACODEC_ADC_R_ALC_GAIN_SFT)
417 #define ACODEC_ADC_R_ALC_GAIN_PDB_3		(0x08 << ACODEC_ADC_R_ALC_GAIN_SFT)
418 #define ACODEC_ADC_R_ALC_GAIN_PDB_1_5		(0x07 << ACODEC_ADC_R_ALC_GAIN_SFT)
419 #define ACODEC_ADC_R_ALC_GAIN_0DB		(0x06 << ACODEC_ADC_R_ALC_GAIN_SFT)
420 #define ACODEC_ADC_R_ALC_GAIN_NDB_1_5		(0x05 << ACODEC_ADC_R_ALC_GAIN_SFT)
421 #define ACODEC_ADC_R_ALC_GAIN_NDB_3		(0x04 << ACODEC_ADC_R_ALC_GAIN_SFT)
422 #define ACODEC_ADC_R_ALC_GAIN_NDB_4_5		(0x03 << ACODEC_ADC_R_ALC_GAIN_SFT)
423 #define ACODEC_ADC_R_ALC_GAIN_NDB_6		(0x02 << ACODEC_ADC_R_ALC_GAIN_SFT)
424 #define ACODEC_ADC_R_ALC_GAIN_NDB_7_5		(0x01 << ACODEC_ADC_R_ALC_GAIN_SFT)
425 #define ACODEC_ADC_R_ALC_GAIN_NDB_9		(0x00 << ACODEC_ADC_R_ALC_GAIN_SFT)
426 
427 /* ACODEC_ADC_ANA_CTL6 */
428 #define ACODEC_ADC_L_ALC_MSK			(0x1 << 7)
429 #define ACODEC_ADC_L_ALC_WORK			(0x1 << 7)
430 #define ACODEC_ADC_L_ALC_INIT			(0x0 << 7)
431 #define ACODEC_ADC_L_CLK_MSK			(0x1 << 6)
432 #define ACODEC_ADC_L_CLK_WORK			(0x1 << 6)
433 #define ACODEC_ADC_L_CLK_RST			(0x0 << 6)
434 #define ACODEC_ADC_L_WORK			(0x1 << 5)
435 #define ACODEC_ADC_L_INIT			(0x0 << 5)
436 #define ACODEC_ADC_L_SIGNAL_EN			(0x1 << 4)
437 #define ACODEC_ADC_L_SIGNAL_DIS			(0x0 << 4)
438 #define ACODEC_ADC_R_ALC_MSK			(0x1 << 3)
439 #define ACODEC_ADC_R_ALC_WORK			(0x1 << 3)
440 #define ACODEC_ADC_R_ALC_INIT			(0x0 << 3)
441 #define ACODEC_ADC_R_CLK_MSK			(0x1 << 2)
442 #define ACODEC_ADC_R_CLK_WORK			(0x1 << 2)
443 #define ACODEC_ADC_R_CLK_RST			(0x0 << 2)
444 #define ACODEC_ADC_R_WORK			(0x1 << 1)
445 #define ACODEC_ADC_R_INIT			(0x0 << 1)
446 #define ACODEC_ADC_R_SIGNAL_EN			(0x1 << 0)
447 #define ACODEC_ADC_R_SIGNAL_DIS			(0x0 << 0)
448 
449 /* ACODEC_DAC_ANA_CTL0 */
450 #define ACODEC_DAC_IBIAS_MSK			(0x1 << 7)
451 #define ACODEC_DAC_IBIAS_EN			(0x1 << 7)
452 #define ACODEC_DAC_IBIAS_DIS			(0x0 << 7)
453 #define ACODEC_DAC_L_REF_VOL_BUF_MSK		(0x1 << 6)
454 #define ACODEC_DAC_L_REF_VOL_BUF_EN		(0x1 << 6)
455 #define ACODEC_DAC_L_REF_VOL_BUF_DIS		(0x0 << 6)
456 #define ACODEC_DAC_L_REF_POP_SOUND_MSK		(0x3 << 4)
457 #define ACODEC_DAC_L_REF_POP_SOUND_WORK		(0x2 << 4)
458 #define ACODEC_DAC_L_REF_POP_SOUND_INIT		(0x1 << 4)
459 #define ACODEC_DAC_L_REF_POP_SOUND_DIS		(0x0 << 4)
460 #define ACODEC_DAC_L_REF_VOL_MSK		(0x1 << 3)
461 #define ACODEC_DAC_L_REF_VOL_EN			(0x1 << 3)
462 #define ACODEC_DAC_L_REF_VOL_DIS		(0x0 << 3)
463 #define ACODEC_DAC_L_CLK_MSK			(0x1 << 2)
464 #define ACODEC_DAC_L_CLK_EN			(0x1 << 2)
465 #define ACODEC_DAC_L_CLK_DIS			(0x0 << 2)
466 #define ACODEC_DAC_SRC_SIGNAL_MSK		(0x1 << 1)
467 #define ACODEC_DAC_SRC_SIGNAL_EN		(0x1 << 1)
468 #define ACODEC_DAC_SRC_SIGNAL_DIS		(0x0 << 1)
469 #define ACODEC_DAC_L_SIGNAL_MSK			(0x1 << 0)
470 #define ACODEC_DAC_L_SIGNAL_WORK		(0x1 << 0)
471 #define ACODEC_DAC_L_SIGNAL_INIT		(0x0 << 0)
472 
473 /* ACODEC_DAC_ANA_CTL1 */
474 #define ACODEC_DAC_L_LINEOUT_MUTE_MSK		(0x1 << 6)
475 #define ACODEC_DAC_L_LINEOUT_MUTE		(0x0 << 6)
476 #define ACODEC_DAC_L_LINEOUT_WORK		(0x1 << 6)
477 #define ACODEC_DAC_L_LINEOUT_SIGNAL_MSK		(0x1 << 5)
478 #define ACODEC_DAC_L_LINEOUT_SIGNAL_WORK	(0x1 << 5)
479 #define ACODEC_DAC_L_LINEOUT_SIGNAL_INIT	(0x0 << 5)
480 #define ACODEC_DAC_L_LINEOUT_MSK		(0x1 << 4)
481 #define ACODEC_DAC_L_LINEOUT_EN			(0x1 << 4)
482 #define ACODEC_DAC_L_LINEOUT_DIS		(0x0 << 4)
483 #define ACODEC_DAC_DRV_STRENGTH_SFT		0
484 #define ACODEC_DAC_DRV_STRENGTH_MSK		(0xf << ACODEC_DAC_DRV_STRENGTH_SFT)
485 #define ACODEC_DAC_DRV_STRENGTH_20_4		(0x8 << ACODEC_DAC_DRV_STRENGTH_SFT)
486 #define ACODEC_DAC_DRV_STRENGTH_22_7		(0x7 << ACODEC_DAC_DRV_STRENGTH_SFT)
487 #define ACODEC_DAC_DRV_STRENGTH_25_7		(0x6 << ACODEC_DAC_DRV_STRENGTH_SFT)
488 #define ACODEC_DAC_DRV_STRENGTH_29_7		(0x5 << ACODEC_DAC_DRV_STRENGTH_SFT)
489 #define ACODEC_DAC_DRV_STRENGTH_35_5		(0x4 << ACODEC_DAC_DRV_STRENGTH_SFT)
490 #define ACODEC_DAC_DRV_STRENGTH_44_2		(0x3 << ACODEC_DAC_DRV_STRENGTH_SFT)
491 #define ACODEC_DAC_DRV_STRENGTH_60_1		(0x2 << ACODEC_DAC_DRV_STRENGTH_SFT)
492 #define ACODEC_DAC_DRV_STRENGTH_100		(0x1 << ACODEC_DAC_DRV_STRENGTH_SFT)
493 
494 /* ACODEC_DAC_ANA_CTL2 */
495 #define ACODEC_DAC_LINEOUT_GAIN_MAX		0x1e
496 #define ACODEC_DAC_LINEOUT_GAIN_MIN		0
497 #define ACODEC_DAC_LINEOUT_GAIN_SFT		0
498 #define ACODEC_DAC_LINEOUT_GAIN_MSK		(0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
499 #define ACODEC_DAC_LINEOUT_GAIN_PDB_6_0		(0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
500 #define ACODEC_DAC_LINEOUT_GAIN_PDB_6		(0x1e << ACODEC_DAC_LINEOUT_GAIN_SFT)
501 #define ACODEC_DAC_LINEOUT_GAIN_PDB_4_5		(0x1d << ACODEC_DAC_LINEOUT_GAIN_SFT)
502 #define ACODEC_DAC_LINEOUT_GAIN_PDB_3		(0x1c << ACODEC_DAC_LINEOUT_GAIN_SFT)
503 #define ACODEC_DAC_LINEOUT_GAIN_PDB_1_5		(0x1b << ACODEC_DAC_LINEOUT_GAIN_SFT)
504 #define ACODEC_DAC_LINEOUT_GAIN_0DB		(0x1a << ACODEC_DAC_LINEOUT_GAIN_SFT)
505 #define ACODEC_DAC_LINEOUT_GAIN_NDB_1_5		(0x19 << ACODEC_DAC_LINEOUT_GAIN_SFT)
506 #define ACODEC_DAC_LINEOUT_GAIN_NDB_3		(0x18 << ACODEC_DAC_LINEOUT_GAIN_SFT)
507 #define ACODEC_DAC_LINEOUT_GAIN_NDB_4_5		(0x17 << ACODEC_DAC_LINEOUT_GAIN_SFT)
508 #define ACODEC_DAC_LINEOUT_GAIN_NDB_6		(0x16 << ACODEC_DAC_LINEOUT_GAIN_SFT)
509 #define ACODEC_DAC_LINEOUT_GAIN_NDB_7_5		(0x15 << ACODEC_DAC_LINEOUT_GAIN_SFT)
510 #define ACODEC_DAC_LINEOUT_GAIN_NDB_9		(0x14 << ACODEC_DAC_LINEOUT_GAIN_SFT)
511 #define ACODEC_DAC_LINEOUT_GAIN_NDB_10_5	(0x13 << ACODEC_DAC_LINEOUT_GAIN_SFT)
512 #define ACODEC_DAC_LINEOUT_GAIN_NDB_12		(0x12 << ACODEC_DAC_LINEOUT_GAIN_SFT)
513 #define ACODEC_DAC_LINEOUT_GAIN_NDB_13_5	(0x11 << ACODEC_DAC_LINEOUT_GAIN_SFT)
514 #define ACODEC_DAC_LINEOUT_GAIN_NDB_15		(0x10 << ACODEC_DAC_LINEOUT_GAIN_SFT)
515 #define ACODEC_DAC_LINEOUT_GAIN_NDB_16_5	(0x0f << ACODEC_DAC_LINEOUT_GAIN_SFT)
516 #define ACODEC_DAC_LINEOUT_GAIN_NDB_18		(0x0e << ACODEC_DAC_LINEOUT_GAIN_SFT)
517 #define ACODEC_DAC_LINEOUT_GAIN_NDB_19_5	(0x0d << ACODEC_DAC_LINEOUT_GAIN_SFT)
518 #define ACODEC_DAC_LINEOUT_GAIN_NDB_21		(0x0c << ACODEC_DAC_LINEOUT_GAIN_SFT)
519 #define ACODEC_DAC_LINEOUT_GAIN_NDB_22_5	(0x0b << ACODEC_DAC_LINEOUT_GAIN_SFT)
520 #define ACODEC_DAC_LINEOUT_GAIN_NDB_24		(0x0a << ACODEC_DAC_LINEOUT_GAIN_SFT)
521 #define ACODEC_DAC_LINEOUT_GAIN_NDB_25_5	(0x09 << ACODEC_DAC_LINEOUT_GAIN_SFT)
522 #define ACODEC_DAC_LINEOUT_GAIN_NDB_27		(0x08 << ACODEC_DAC_LINEOUT_GAIN_SFT)
523 #define ACODEC_DAC_LINEOUT_GAIN_NDB_28_5	(0x07 << ACODEC_DAC_LINEOUT_GAIN_SFT)
524 #define ACODEC_DAC_LINEOUT_GAIN_NDB_30		(0x06 << ACODEC_DAC_LINEOUT_GAIN_SFT)
525 #define ACODEC_DAC_LINEOUT_GAIN_NDB_31_5	(0x05 << ACODEC_DAC_LINEOUT_GAIN_SFT)
526 #define ACODEC_DAC_LINEOUT_GAIN_NDB_33		(0x04 << ACODEC_DAC_LINEOUT_GAIN_SFT)
527 #define ACODEC_DAC_LINEOUT_GAIN_NDB_34_5	(0x03 << ACODEC_DAC_LINEOUT_GAIN_SFT)
528 #define ACODEC_DAC_LINEOUT_GAIN_NDB_36		(0x02 << ACODEC_DAC_LINEOUT_GAIN_SFT)
529 #define ACODEC_DAC_LINEOUT_GAIN_NDB_37_5	(0x01 << ACODEC_DAC_LINEOUT_GAIN_SFT)
530 #define ACODEC_DAC_LINEOUT_GAIN_NDB_39		(0x00 << ACODEC_DAC_LINEOUT_GAIN_SFT)
531 
532 /* ACODEC_DAC_HPMIX_CTL */
533 #define ACODEC_DAC_HPMIX_MSK                    (0x1 << 7)
534 #define ACODEC_DAC_HPMIX_EN                     (0x1 << 7)
535 #define ACODEC_DAC_HPMIX_DIS                    (0x0 << 7)
536 #define ACODEC_DAC_HPMIX_GAIN_SFT		5
537 #define ACODEC_DAC_HPMIX_GAIN_MAX		2
538 #define ACODEC_DAC_HPMIX_GAIN_MIN		1
539 #define ACODEC_DAC_HPMIX_GAIN_MSK		(0x3 << ACODEC_DAC_HPMIX_GAIN_SFT)
540 #define ACODEC_DAC_HPMIX_GAIN_6DB		(0x2 << ACODEC_DAC_HPMIX_GAIN_SFT)
541 #define ACODEC_DAC_HPMIX_GAIN_0DB		(0x1 << ACODEC_DAC_HPMIX_GAIN_SFT)
542 #define ACODEC_DAC_HPMIX_MDL_MSK		(0x1 << 4)
543 #define ACODEC_DAC_HPMIX_MDL_WORK		(0x1 << 4)
544 #define ACODEC_DAC_HPMIX_MDL_INIT		(0x0 << 4)
545 #define ACODEC_DAC_HPMIX_MUTE_MSK		(0x1 << 3)
546 #define ACODEC_DAC_HPMIX_WORK                   (0x1 << 3)
547 #define ACODEC_DAC_HPMIX_MUTE                   (0x0 << 3)
548 #define ACODEC_DAC_HPMIX_SEL_SFT		0
549 #define ACODEC_DAC_HPMIX_SEL_MSK		(0x7 << ACODEC_DAC_HPMIX_SEL_SFT)
550 #define ACODEC_DAC_HPMIX_ADCR                   (0x4 << ACODEC_DAC_HPMIX_SEL_SFT)
551 #define ACODEC_DAC_HPMIX_ADCL                   (0x2 << ACODEC_DAC_HPMIX_SEL_SFT)
552 #define ACODEC_DAC_HPMIX_I2S                    (0x1 << ACODEC_DAC_HPMIX_SEL_SFT)
553 
554 /* ACODEC_ADC_PGA_AGC_L_CTL0 */
555 #define ACODEC_GAIN_ATTACK_MSK			(1 << 6)
556 #define ACODEC_GAIN_ATTACK_JACK			(1 << 6)
557 #define ACODEC_GAIN_ATTACK_NORMAL		(0 << 6)
558 #define ACODEC_CTRL_GEN_SFT			4
559 #define ACODEC_CTRL_GEN_MSK			(0x3 << ACODEC_ALC_CTRL_GEN_SFT)
560 #define ACODEC_CTRL_GEN_JACK3			(0x3 << ACODEC_ALC_CTRL_GEN_SFT)
561 #define ACODEC_CTRL_GEN_JACK2			(0x2 << ACODEC_ALC_CTRL_GEN_SFT)
562 #define ACODEC_CTRL_GEN_JACK1			(0x1 << ACODEC_ALC_CTRL_GEN_SFT)
563 #define ACODEC_CTRL_GEN_NORMAL			(0x0 << ACODEC_ALC_CTRL_GEN_SFT)
564 #define ACODEC_AGC_HOLD_TIME_SFT		0
565 #define ACODEC_AGC_HOLD_TIME_MSK		(0xf << ACODEC_AGC_HOLD_TIME_SFT)
566 #define ACODEC_AGC_HOLD_TIME_1S			(0xa << ACODEC_AGC_HOLD_TIME_SFT)
567 #define ACODEC_AGC_HOLD_TIME_512MS		(0x9 << ACODEC_AGC_HOLD_TIME_SFT)
568 #define ACODEC_AGC_HOLD_TIME_256MS		(0x8 << ACODEC_AGC_HOLD_TIME_SFT)
569 #define ACODEC_AGC_HOLD_TIME_128MS		(0x7 << ACODEC_AGC_HOLD_TIME_SFT)
570 #define ACODEC_AGC_HOLD_TIME_64MS		(0x6 << ACODEC_AGC_HOLD_TIME_SFT)
571 #define ACODEC_AGC_HOLD_TIME_32MS		(0x5 << ACODEC_AGC_HOLD_TIME_SFT)
572 #define ACODEC_AGC_HOLD_TIME_16MS		(0x4 << ACODEC_AGC_HOLD_TIME_SFT)
573 #define ACODEC_AGC_HOLD_TIME_8MS		(0x3 << ACODEC_AGC_HOLD_TIME_SFT)
574 #define ACODEC_AGC_HOLD_TIME_4MS		(0x2 << ACODEC_AGC_HOLD_TIME_SFT)
575 #define ACODEC_AGC_HOLD_TIME_2MS		(0x1 << ACODEC_AGC_HOLD_TIME_SFT)
576 #define ACODEC_AGC_HOLD_TIME_0MS		(0x0 << ACODEC_AGC_HOLD_TIME_SFT)
577 
578 /* ACODEC_ADC_PGA_AGC_L_CTL1 */
579 #define ACODEC_AGC_DECAY_TIME_SFT		4
580 /* Normal mode (reg_agc_mode = 0) */
581 #define ACODEC_AGC_DECAY_NORMAL_MSK		(0xf << ACODEC_AGC_DECAY_TIME_SFT)
582 #define ACODEC_AGC_DECAY_NORMAL_512MS		(0xa << ACODEC_AGC_DECAY_TIME_SFT)
583 #define ACODEC_AGC_DECAY_NORMAL_256MS		(0x9 << ACODEC_AGC_DECAY_TIME_SFT)
584 #define ACODEC_AGC_DECAY_NORMAL_128MS		(0x8 << ACODEC_AGC_DECAY_TIME_SFT)
585 #define ACODEC_AGC_DECAY_NORMAL_64MS		(0x7 << ACODEC_AGC_DECAY_TIME_SFT)
586 #define ACODEC_AGC_DECAY_NORMAL_32MS		(0x6 << ACODEC_AGC_DECAY_TIME_SFT)
587 #define ACODEC_AGC_DECAY_NORMAL_16MS		(0x5 << ACODEC_AGC_DECAY_TIME_SFT)
588 #define ACODEC_AGC_DECAY_NORMAL_8MS		(0x4 << ACODEC_AGC_DECAY_TIME_SFT)
589 #define ACODEC_AGC_DECAY_NORMAL_4MS		(0x3 << ACODEC_AGC_DECAY_TIME_SFT)
590 #define ACODEC_AGC_DECAY_NORMAL_2MS		(0x2 << ACODEC_AGC_DECAY_TIME_SFT)
591 #define ACODEC_AGC_DECAY_NORMAL_1MS		(0x1 << ACODEC_AGC_DECAY_TIME_SFT)
592 #define ACODEC_AGC_DECAY_NORMAL_0MS		(0x0 << ACODEC_AGC_DECAY_TIME_SFT)
593 /* Limiter mode (reg_agc_mode = 1) */
594 #define ACODEC_AGC_DECAY_LIMITER_MSK		(0xf << ACODEC_AGC_DECAY_TIME_SFT)
595 #define ACODEC_AGC_DECAY_LIMITER_128MS		(0xa << ACODEC_AGC_DECAY_TIME_SFT)
596 #define ACODEC_AGC_DECAY_LIMITER_64MS		(0x9 << ACODEC_AGC_DECAY_TIME_SFT)
597 #define ACODEC_AGC_DECAY_LIMITER_32MS		(0x8 << ACODEC_AGC_DECAY_TIME_SFT)
598 #define ACODEC_AGC_DECAY_LIMITER_16MS		(0x7 << ACODEC_AGC_DECAY_TIME_SFT)
599 #define ACODEC_AGC_DECAY_LIMITER_8MS		(0x6 << ACODEC_AGC_DECAY_TIME_SFT)
600 #define ACODEC_AGC_DECAY_LIMITER_4MS		(0x5 << ACODEC_AGC_DECAY_TIME_SFT)
601 #define ACODEC_AGC_DECAY_LIMITER_2MS		(0x4 << ACODEC_AGC_DECAY_TIME_SFT)
602 #define ACODEC_AGC_DECAY_LIMITER_1MS		(0x3 << ACODEC_AGC_DECAY_TIME_SFT)
603 #define ACODEC_AGC_DECAY_LIMITER_500US		(0x2 << ACODEC_AGC_DECAY_TIME_SFT)
604 #define ACODEC_AGC_DECAY_LIMITER_250US		(0x1 << ACODEC_AGC_DECAY_TIME_SFT)
605 #define ACODEC_AGC_DECAY_LIMITER_125US		(0x0 << ACODEC_AGC_DECAY_TIME_SFT)
606 #define ACODEC_AGC_ATTACK_TIME_SFT		0
607 /* Normal mode (reg_agc_mode = 0) */
608 #define ACODEC_AGC_ATTACK_NORMAL_MSK		(0xf << ACODEC_AGC_ATTACK_TIME_SFT)
609 #define ACODEC_AGC_ATTACK_NORMAL_128MS		(0xa << ACODEC_AGC_ATTACK_TIME_SFT)
610 #define ACODEC_AGC_ATTACK_NORMAL_64MS		(0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
611 #define ACODEC_AGC_ATTACK_NORMAL_32MS		(0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
612 #define ACODEC_AGC_ATTACK_NORMAL_16MS		(0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
613 #define ACODEC_AGC_ATTACK_NORMAL_8MS		(0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
614 #define ACODEC_AGC_ATTACK_NORMAL_4MS		(0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
615 #define ACODEC_AGC_ATTACK_NORMAL_2MS		(0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
616 #define ACODEC_AGC_ATTACK_NORMAL_1MS		(0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
617 #define ACODEC_AGC_ATTACK_NORMAL_500US		(0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
618 #define ACODEC_AGC_ATTACK_NORMAL_250US		(0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
619 #define ACODEC_AGC_ATTACK_NORMAL_125US		(0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
620 /* Limiter mode (reg_agc_mode = 1) */
621 #define ACODEC_AGC_ATTACK_LIMITER_MSK		(0xf << ACODEC_AGC_ATTACK_TIME_SFT)
622 #define ACODEC_AGC_ATTACK_LIMITER_32MS		(0xa << ACODEC_AGC_ATTACK_TIME_SFT)
623 #define ACODEC_AGC_ATTACK_LIMITER_16MS		(0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
624 #define ACODEC_AGC_ATTACK_LIMITER_8MS		(0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
625 #define ACODEC_AGC_ATTACK_LIMITER_4MS		(0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
626 #define ACODEC_AGC_ATTACK_LIMITER_2MS		(0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
627 #define ACODEC_AGC_ATTACK_LIMITER_1MS		(0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
628 #define ACODEC_AGC_ATTACK_LIMITER_500US		(0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
629 #define ACODEC_AGC_ATTACK_LIMITER_250US		(0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
630 #define ACODEC_AGC_ATTACK_LIMITER_125US		(0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
631 #define ACODEC_AGC_ATTACK_LIMITER_64US		(0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
632 #define ACODEC_AGC_ATTACK_LIMITER_32US		(0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
633 
634 /* ACODEC_ADC_PGA_AGC_L_CTL2 */
635 #define ACODEC_AGC_MODE_LIMITER			(0x1 << 7)
636 #define ACODEC_AGC_MODE_NORMAL			(0x0 << 7)
637 #define ACODEC_AGC_ZERO_CRO_EN			(0x1 << 6)
638 #define ACODEC_AGC_ZERO_CRO_DIS			(0x0 << 6)
639 #define ACODEC_AGC_AMP_RECOVER_GAIN		(0x1 << 5)
640 #define ACODEC_AGC_AMP_RECOVER_LVOL		(0x0 << 5)
641 #define ACODEC_AGC_FAST_DEC_EN			(0x1 << 4)
642 #define ACODEC_AGC_FAST_DEC_DIS			(0x0 << 4)
643 #define ACODEC_AGC_NOISE_GATE_EN		(0x1 << 3)
644 #define ACODEC_AGC_NOISE_GATE_DIS		(0x0 << 3)
645 #define ACODEC_AGC_NOISE_GATE_THRESH_SFT	0
646 #define ACODEC_AGC_NOISE_GATE_THRESH_MSK	(0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
647 #define ACODEC_AGC_NOISE_GATE_THRESH_N81DB	(0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
648 #define ACODEC_AGC_NOISE_GATE_THRESH_N75DB	(0x6 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
649 #define ACODEC_AGC_NOISE_GATE_THRESH_N69DB	(0x5 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
650 #define ACODEC_AGC_NOISE_GATE_THRESH_N63DB	(0x4 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
651 #define ACODEC_AGC_NOISE_GATE_THRESH_N57DB	(0x3 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
652 #define ACODEC_AGC_NOISE_GATE_THRESH_N51DB	(0x2 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
653 #define ACODEC_AGC_NOISE_GATE_THRESH_N45DB	(0x1 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
654 #define ACODEC_AGC_NOISE_GATE_THRESH_N39DB	(0x0 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
655 
656 /* ACODEC_ADC_PGA_AGC_L_CTL3 */
657 #define ACODEC_AGC_PGA_ZERO_CRO_EN		(0x1 << 5)
658 #define ACODEC_AGC_PGA_ZERO_CRO_DIS		(0x0 << 5)
659 #define ACODEC_AGC_PGA_GAIN_MAX			0x1f
660 #define ACODEC_AGC_PGA_GAIN_MIN			0
661 #define ACODEC_AGC_PGA_GAIN_SFT			0
662 #define ACODEC_AGC_PGA_GAIN_MSK			(0x1f << ACODEC_AGC_PGA_GAIN_SFT)
663 #define ACODEC_AGC_PGA_GAIN_PDB_28_5		(0x1f << ACODEC_AGC_PGA_GAIN_SFT)
664 #define ACODEC_AGC_PGA_GAIN_PDB_27		(0x1e << ACODEC_AGC_PGA_GAIN_SFT)
665 #define ACODEC_AGC_PGA_GAIN_PDB_25_5		(0x1d << ACODEC_AGC_PGA_GAIN_SFT)
666 #define ACODEC_AGC_PGA_GAIN_PDB_24		(0x1c << ACODEC_AGC_PGA_GAIN_SFT)
667 #define ACODEC_AGC_PGA_GAIN_PDB_22_5		(0x1b << ACODEC_AGC_PGA_GAIN_SFT)
668 #define ACODEC_AGC_PGA_GAIN_PDB_21		(0x1a << ACODEC_AGC_PGA_GAIN_SFT)
669 #define ACODEC_AGC_PGA_GAIN_PDB_19_5		(0x19 << ACODEC_AGC_PGA_GAIN_SFT)
670 #define ACODEC_AGC_PGA_GAIN_PDB_18		(0x18 << ACODEC_AGC_PGA_GAIN_SFT)
671 #define ACODEC_AGC_PGA_GAIN_PDB_16_5		(0x17 << ACODEC_AGC_PGA_GAIN_SFT)
672 #define ACODEC_AGC_PGA_GAIN_PDB_15		(0x16 << ACODEC_AGC_PGA_GAIN_SFT)
673 #define ACODEC_AGC_PGA_GAIN_PDB_13_5		(0x15 << ACODEC_AGC_PGA_GAIN_SFT)
674 #define ACODEC_AGC_PGA_GAIN_PDB_12		(0x14 << ACODEC_AGC_PGA_GAIN_SFT)
675 #define ACODEC_AGC_PGA_GAIN_PDB_10_5		(0x13 << ACODEC_AGC_PGA_GAIN_SFT)
676 #define ACODEC_AGC_PGA_GAIN_PDB_9		(0x12 << ACODEC_AGC_PGA_GAIN_SFT)
677 #define ACODEC_AGC_PGA_GAIN_PDB_7_5		(0x11 << ACODEC_AGC_PGA_GAIN_SFT)
678 #define ACODEC_AGC_PGA_GAIN_PDB_6		(0x10 << ACODEC_AGC_PGA_GAIN_SFT)
679 #define ACODEC_AGC_PGA_GAIN_PDB_4_5		(0x0f << ACODEC_AGC_PGA_GAIN_SFT)
680 #define ACODEC_AGC_PGA_GAIN_PDB_3		(0x0e << ACODEC_AGC_PGA_GAIN_SFT)
681 #define ACODEC_AGC_PGA_GAIN_PDB_1_5		(0x0d << ACODEC_AGC_PGA_GAIN_SFT)
682 #define ACODEC_AGC_PGA_GAIN_0DB			(0x0c << ACODEC_AGC_PGA_GAIN_SFT)
683 #define ACODEC_AGC_PGA_GAIN_NDB_1_5		(0x0b << ACODEC_AGC_PGA_GAIN_SFT)
684 #define ACODEC_AGC_PGA_GAIN_NDB_3		(0x0a << ACODEC_AGC_PGA_GAIN_SFT)
685 #define ACODEC_AGC_PGA_GAIN_NDB_4_5		(0x09 << ACODEC_AGC_PGA_GAIN_SFT)
686 #define ACODEC_AGC_PGA_GAIN_NDB_6		(0x08 << ACODEC_AGC_PGA_GAIN_SFT)
687 #define ACODEC_AGC_PGA_GAIN_NDB_7_5		(0x07 << ACODEC_AGC_PGA_GAIN_SFT)
688 #define ACODEC_AGC_PGA_GAIN_NDB_9		(0x06 << ACODEC_AGC_PGA_GAIN_SFT)
689 #define ACODEC_AGC_PGA_GAIN_NDB_10_5		(0x05 << ACODEC_AGC_PGA_GAIN_SFT)
690 #define ACODEC_AGC_PGA_GAIN_NDB_12		(0x04 << ACODEC_AGC_PGA_GAIN_SFT)
691 #define ACODEC_AGC_PGA_GAIN_NDB_13_5		(0x03 << ACODEC_AGC_PGA_GAIN_SFT)
692 #define ACODEC_AGC_PGA_GAIN_NDB_15		(0x02 << ACODEC_AGC_PGA_GAIN_SFT)
693 #define ACODEC_AGC_PGA_GAIN_NDB_16_5		(0x01 << ACODEC_AGC_PGA_GAIN_SFT)
694 #define ACODEC_AGC_PGA_GAIN_NDB_18		(0x00 << ACODEC_AGC_PGA_GAIN_SFT)
695 
696 /* ACODEC_ADC_PGA_AGC_L_CTL4 */
697 #define ACODEC_AGC_SLOW_CLK_EN			(0x1 << 3)
698 #define ACODEC_AGC_SLOW_CLK_DIS			(0x0 << 3)
699 #define ACODEC_AGC_APPROX_RATE_SFT		0
700 #define ACODEC_AGC_APPROX_RATE_MSK		(0x7 << ACODEC_AGC_APPROX_RATE_SFT)
701 #define ACODEC_AGC_APPROX_RATE_8K		(0x7 << ACODEC_AGC_APPROX_RATE_SFT)
702 #define ACODEC_AGC_APPROX_RATE_12K		(0x6 << ACODEC_AGC_APPROX_RATE_SFT)
703 #define ACODEC_AGC_APPROX_RATE_16K		(0x5 << ACODEC_AGC_APPROX_RATE_SFT)
704 #define ACODEC_AGC_APPROX_RATE_24K		(0x4 << ACODEC_AGC_APPROX_RATE_SFT)
705 #define ACODEC_AGC_APPROX_RATE_32K		(0x3 << ACODEC_AGC_APPROX_RATE_SFT)
706 #define ACODEC_AGC_APPROX_RATE_44_1K		(0x2 << ACODEC_AGC_APPROX_RATE_SFT)
707 #define ACODEC_AGC_APPROX_RATE_48K		(0x1 << ACODEC_AGC_APPROX_RATE_SFT)
708 #define ACODEC_AGC_APPROX_RATE_96K		(0x0 << ACODEC_AGC_APPROX_RATE_SFT)
709 
710 /* ACODEC_ADC_PGA_AGC_L_CTL5 */
711 #define ACODEC_AGC_LO_8BITS_AGC_MAX_MSK		0xff
712 
713 /* ACODEC_ADC_PGA_AGC_L_CTL6 */
714 #define ACODEC_AGC_HI_8BITS_AGC_MAX_MSK		0xff
715 
716 /* ACODEC_ADC_PGA_AGC_L_CTL7 */
717 #define ACODEC_AGC_LO_8BITS_AGC_MIN_MSK		0xff
718 
719 /* ACODEC_ADC_PGA_AGC_L_CTL8 */
720 #define ACODEC_AGC_HI_8BITS_AGC_MIN_MSK		0xff
721 
722 /* ACODEC_ADC_PGA_AGC_L_CTL9 */
723 #define ACODEC_AGC_FUNC_SEL_MSK			(0x1 << 6)
724 #define ACODEC_AGC_FUNC_SEL_EN			(0x1 << 6)
725 #define ACODEC_AGC_FUNC_SEL_DIS			(0x0 << 6)
726 #define ACODEC_AGC_MAX_GAIN_PGA_MAX		0x7
727 #define ACODEC_AGC_MAX_GAIN_PGA_MIN		0
728 #define ACODEC_AGC_MAX_GAIN_PGA_SFT		3
729 #define ACODEC_AGC_MAX_GAIN_PGA_MSK		(0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
730 #define ACODEC_AGC_MAX_GAIN_PGA_PDB_28_5	(0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
731 #define ACODEC_AGC_MAX_GAIN_PGA_PDB_22_5	(0x6 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
732 #define ACODEC_AGC_MAX_GAIN_PGA_PDB_16_5	(0x5 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
733 #define ACODEC_AGC_MAX_GAIN_PGA_PDB_10_5	(0x4 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
734 #define ACODEC_AGC_MAX_GAIN_PGA_PDB_4_5		(0x3 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
735 #define ACODEC_AGC_MAX_GAIN_PGA_NDB_1_5		(0x2 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
736 #define ACODEC_AGC_MAX_GAIN_PGA_NDB_7_5		(0x1 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
737 #define ACODEC_AGC_MAX_GAIN_PGA_NDB_13_5	(0x0 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
738 #define ACODEC_AGC_MIN_GAIN_PGA_MAX		0x7
739 #define ACODEC_AGC_MIN_GAIN_PGA_MIN		0
740 #define ACODEC_AGC_MIN_GAIN_PGA_SFT		0
741 #define ACODEC_AGC_MIN_GAIN_PGA_MSK		(0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
742 #define ACODEC_AGC_MIN_GAIN_PGA_PDB_24		(0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
743 #define ACODEC_AGC_MIN_GAIN_PGA_PDB_18		(0x6 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
744 #define ACODEC_AGC_MIN_GAIN_PGA_PDB_12		(0x5 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
745 #define ACODEC_AGC_MIN_GAIN_PGA_PDB_6		(0x4 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
746 #define ACODEC_AGC_MIN_GAIN_PGA_0DB		(0x3 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
747 #define ACODEC_AGC_MIN_GAIN_PGA_NDB_6		(0x2 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
748 #define ACODEC_AGC_MIN_GAIN_PGA_NDB_12		(0x1 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
749 #define ACODEC_AGC_MIN_GAIN_PGA_NDB_18		(0x0 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
750 
751 #define ACODEC_HIFI				0x0
752 
753 #endif /* __RV1106_CODEC_H__ */
754