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