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