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