754 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			754 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * rv1106_codec.h - Rockchip RV1106 SoC Codec Driver
 | |
|  *
 | |
|  * Copyright (C) 2022 Rockchip Electronics Co., Ltd.
 | |
|  */
 | |
| 
 | |
| #ifndef __RV1106_CODEC_H__
 | |
| #define __RV1106_CODEC_H__
 | |
| 
 | |
| #define ACODEC_RESET_CTL			0x00 /* REG 0x00 */
 | |
| #define ACODEC_GLB_CON				ACODEC_RESET_CTL
 | |
| #define ACODEC_MUTE_DA_DITHER_CTL		0x04 /* REG 0x01 */
 | |
| 
 | |
| /* ADC DIGITAL REGISTERS */
 | |
| #define ACODEC_ADC_I2S_CTL0			0x08 /* REG 0x02 */
 | |
| #define ACODEC_ADC_I2S_CTL1			0x0c /* REG 0x03 */
 | |
| #define ACODEC_DAC_I2S_CTL0			0x10 /* REG 0x04 */
 | |
| #define ACODEC_DAC_I2S_CTL1			0x14 /* REG 0x05 */
 | |
| #define ACODEC_DAC_GAIN_SEL			0x18 /* REG 0x06 */
 | |
| #define ACODEC_DAC_L_BIST_MODE_SEL		0x1c /* REG 0x07 */
 | |
| #define ACODEC_ADC_L_DIG_VOL			0x20 /* REG 0x08 */
 | |
| #define ACODEC_ADC_R_DIG_VOL			0x24 /* REG 0x09 */
 | |
| #define ACODEC_ADC_HPF_PGA_CTL			0x28 /* REG 0x0a */
 | |
| #define ACODEC_INIT_DELAY_CNT1			0x2c /* REG 0x0b */
 | |
| #define ACODEC_INIT_DELAY_CNT2			0x30 /* REG 0x0c */
 | |
| #define ACODEC_ADC_BIST_MODE_SEL		0x34 /* REG 0x0d */
 | |
| #define ACODEC_DAC_CONFIG_OUTPUT		0x38 /* REG 0x0e */
 | |
| #define ACODEC_LINEOUT_CTL			0x80 /* REG 0x20 */
 | |
| #define ACODEC_CURRENT_CHARGE_CTL		0x84 /* REG 0x21 */
 | |
| 
 | |
| #define ACODEC_ADC_ANA_CTL0			0x88 /* REG 0x22 */
 | |
| #define ACODEC_ADC_ANA_CTL1			0x8c /* REG 0x23 */
 | |
| #define ACODEC_ADC_ANA_CTL2			0x90 /* REG 0x24 */
 | |
| #define ACODEC_ADC_ANA_CTL3			0x94 /* REG 0x25 */
 | |
| #define ACODEC_ADC_ANA_CTL4			0x98 /* REG 0x26 */
 | |
| #define ACODEC_ADC_ANA_CTL5			0x9c /* REG 0x27 */
 | |
| #define ACODEC_ADC_ANA_CTL6			0xa0 /* REG 0x28 */
 | |
| 
 | |
| #define ACODEC_DAC_ANA_CTL0			0xa4 /* REG 0x29 */
 | |
| #define ACODEC_DAC_ANA_CTL1			0xa8 /* REG 0x2a */
 | |
| #define ACODEC_DAC_ANA_CTL2			0xac /* REG 0x2b */
 | |
| #define ACODEC_DAC_HPMIX_CTL			0xbc /* REG 0x2f */
 | |
| 
 | |
| /* The description of the agc register for the left channel */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL0		0x100 /* REG 0x40 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL1		0x104 /* REG 0x41 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL2		0x108 /* REG 0x42 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL3		0x10c /* REG 0x43 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL4		0x110 /* REG 0x44 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL5		0x114 /* REG 0x45 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL6		0x118 /* REG 0x46 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL7		0x11c /* REG 0x47 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL8		0x120 /* REG 0x48 */
 | |
| #define ACODEC_ADC_PGA_AGC_L_CTL9		0x124 /* REG 0x49 */
 | |
| 
 | |
| /* The description of the agc register for the right channel */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL0		0x140 /* REG 0x50 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL1		0x144 /* REG 0x51 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL2		0x148 /* REG 0x52 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL3		0x14c /* REG 0x53 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL4		0x150 /* REG 0x54 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL5		0x154 /* REG 0x55 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL6		0x158 /* REG 0x56 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL7		0x15c /* REG 0x57 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL8		0x160 /* REG 0x58 */
 | |
| #define ACODEC_ADC_PGA_AGC_R_CTL9		0x164 /* REG 0x59 */
 | |
| 
 | |
| #define ACODEC_REG_MAX				ACODEC_ADC_PGA_AGC_R_CTL9
 | |
| 
 | |
| /* ACODEC_RESET_CTL */
 | |
| #define ACODEC_CODEC_BIST_MSK			(1 << 7)
 | |
| #define ACODEC_CODEC_BIST_WORK			(1 << 7)
 | |
| #define ACODEC_CODEC_BIST_RST			(0 << 7)
 | |
| #define ACODEC_CODEC_CORE_RST_MSK		(1 << 1)
 | |
| #define ACODEC_CODEC_CORE_WORK			(1 << 1)
 | |
| #define ACODEC_CODEC_CORE_RST			(0 << 1)
 | |
| #define ACODEC_CODEC_SYS_RST_MSK		(1 << 0)
 | |
| #define ACODEC_CODEC_SYS_WORK			(1 << 0)
 | |
| #define ACODEC_CODEC_SYS_RST			(0 << 0)
 | |
| 
 | |
| /* ACODEC_MUTE_DA_DITHER_CTL */
 | |
| #define ACODEC_DAC_MUTE_MSK			(1 << 7)
 | |
| #define ACODEC_DAC_MUTE_EN			(1 << 7)
 | |
| #define ACODEC_DAC_MUTE_DIS			(0 << 7)
 | |
| #define ACODEC_DITHER_LEVEL_SEL			(1 << 3)
 | |
| #define ACODEC_DA_MSK				(1 << 2)
 | |
| #define ACODEC_DA_EN				(1 << 2)
 | |
| #define ACODEC_DA_DIS				(0 << 2)
 | |
| #define ACODEC_DITHER_MSK			(1 << 1)
 | |
| #define ACODEC_DITHER_EN			(1 << 1)
 | |
| #define ACODEC_DITHER_DIS			(0 << 1)
 | |
| #define ACODEC_DITHER_SIGN			(1 << 0)
 | |
| 
 | |
| /* ACODEC_ADC_I2S_CTL0 */
 | |
| #define ACODEC_ADC_I2S_LRC_POL_MSK		(1 << 7)
 | |
| #define ACODEC_ADC_I2S_LRC_POL_REVERSAL		(1 << 7)
 | |
| #define ACODEC_ADC_I2S_LRC_POL_NORMAL		(0 << 7)
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_SFT		5
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_MSK		(0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_32BITS		(0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_24BITS		(0x2 << ACODEC_ADC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_20BITS		(0x1 << ACODEC_ADC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_VALID_LEN_16BITS		(0x0 << ACODEC_ADC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_MODE_SFT			3
 | |
| #define ACODEC_ADC_I2S_MODE_MSK			(0x3 << ACODEC_ADC_I2S_MODE_SFT)
 | |
| #define ACODEC_ADC_I2S_MODE_PCM			(0x3 << ACODEC_ADC_I2S_MODE_SFT)
 | |
| #define ACODEC_ADC_I2S_MODE_I2S			(0x2 << ACODEC_ADC_I2S_MODE_SFT)
 | |
| #define ACODEC_ADC_I2S_MODE_LJ			(0x1 << ACODEC_ADC_I2S_MODE_SFT)
 | |
| #define ACODEC_ADC_I2S_MODE_RJ			(0x0 << ACODEC_ADC_I2S_MODE_SFT)
 | |
| #define ACODEC_ADC_I2S_SEL_DATA_MSK		(1 << 2)
 | |
| #define ACODEC_ADC_I2S_SEL_ADC_DATA		(1 << 2)
 | |
| #define ACODEC_ADC_I2S_SEL_ADCL_DACL_DATA	(0 << 2)
 | |
| #define ACODEC_ADC_I2S_DATA_SEL			0
 | |
| #define ACODEC_ADC_I2S_DATA_SEL_MSK		(0x3 << ACODEC_ADC_I2S_DATA_SEL)
 | |
| #define ACODEC_ADC_I2S_DATA_SWAP		(0x3 << ACODEC_ADC_I2S_DATA_SEL)
 | |
| #define ACODEC_ADC_I2S_DATA_SEL_LEFT		(0x2 << ACODEC_ADC_I2S_DATA_SEL)
 | |
| #define ACODEC_ADC_I2S_DATA_SEL_RIGHT		(0x1 << ACODEC_ADC_I2S_DATA_SEL)
 | |
| #define ACODEC_ADC_I2S_DATA_SEL_NORMAL		(0x0 << ACODEC_ADC_I2S_DATA_SEL)
 | |
| 
 | |
| /* ACODEC_ADC_I2S_CTL1 */
 | |
| #define ACODEC_DAC_IO_MODE_MSK			(0x1 << 7)
 | |
| #define ACODEC_DAC_IO_MODE_MASTER		(0x1 << 7)
 | |
| #define ACODEC_DAC_IO_MODE_SLAVE		(0x0 << 7)
 | |
| #define ACODEC_DAC_MODE_MSK			(0x1 << 6)
 | |
| #define ACODEC_DAC_MODE_MASTER			(0x1 << 6)
 | |
| #define ACODEC_DAC_MODE_SLAVE			(0x0 << 6)
 | |
| #define ACODEC_ADC_IO_MODE_MSK			(0x1 << 5)
 | |
| #define ACODEC_ADC_IO_MODE_MASTER		(0x1 << 5)
 | |
| #define ACODEC_ADC_IO_MODE_SLAVE		(0x0 << 5)
 | |
| #define ACODEC_ADC_MODE_MSK			(0x1 << 4)
 | |
| #define ACODEC_ADC_MODE_MASTER			(0x1 << 4)
 | |
| #define ACODEC_ADC_MODE_SLAVE			(0x0 << 4)
 | |
| #define ACODEC_ADC_I2S_FRAME_LEN_SFT		2
 | |
| #define ACODEC_ADC_I2S_FRAME_LEN_MSK		(0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_FRAME_32BITS		(0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_FRAME_24BITS		(0x1 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_ADC_I2S_MSK			(0x1 << 1)
 | |
| #define ACODEC_ADC_I2S_WORK			(0x1 << 1)
 | |
| #define ACODEC_ADC_I2S_RESET			(0x0 << 1)
 | |
| #define ACODEC_ADC_I2S_BIT_CLK_POL_MSK		(0x1 << 0)
 | |
| #define ACODEC_ADC_I2S_BIT_CLK_POL_REVERSAL	(0x1 << 0)
 | |
| #define ACODEC_ADC_I2S_BIT_CLK_POL_NORMAL	(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_DAC_I2S_CTL0 */
 | |
| #define ACODEC_DAC_I2S_LRC_POL_MSK		(0x1 << 7)
 | |
| #define ACODEC_DAC_I2S_LRC_POL_REVERSAL		(0x1 << 7)
 | |
| #define ACODEC_DAC_I2S_LRC_POL_NORMAL		(0x0 << 7)
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_SFT		5
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_MSK		(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_32BITS		(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_24BITS		(0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_20BITS		(0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_VALID_LEN_16BITS		(0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_MODE_SFT			3
 | |
| #define ACODEC_DAC_I2S_MODE_MSK			(0x3 << ACODEC_DAC_I2S_MODE_SFT)
 | |
| #define ACODEC_DAC_I2S_MODE_PCM			(0x3 << ACODEC_DAC_I2S_MODE_SFT)
 | |
| #define ACODEC_DAC_I2S_MODE_I2S			(0x2 << ACODEC_DAC_I2S_MODE_SFT)
 | |
| #define ACODEC_DAC_I2S_MODE_LJ			(0x1 << ACODEC_DAC_I2S_MODE_SFT)
 | |
| #define ACODEC_DAC_I2S_MODE_RJ			(0x0 << ACODEC_DAC_I2S_MODE_SFT)
 | |
| #define ACODEC_DAC_I2S_LR_MSK			(0x1 << 2)
 | |
| #define ACODEC_DAC_I2S_LR_SWAP			(0x1 << 2)
 | |
| #define ACODEC_DAC_I2S_LR_NORMAL		(0x0 << 2)
 | |
| 
 | |
| /* ACODEC_DAC_I2S_CTL1 */
 | |
| #define ACODEC_DAC_DE_EMPHASIS_FILTER_SFT	4
 | |
| #define ACODEC_DAC_DE_EMPHASIS_FILTER_MSK	(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_48_DE_EMPHASIS_FILTER	(0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_441_DE_EMPHASIS_FILTER	(0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_32_DE_EMPHASIS_FILTER	(0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_NO_DE_EMPHASIS_FILTER	(0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_FRAME_LEN_SFT		2
 | |
| #define ACODEC_DAC_I2S_FRAME_LEN_MSK		(0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_FRAME_32BITS		(0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_FRAME_24BITS		(0x2 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_FRAME_20BITS		(0x1 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_FRAME_16BITS		(0x0 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
 | |
| #define ACODEC_DAC_I2S_MSK			(0x1 << 1)
 | |
| #define ACODEC_DAC_I2S_WORK			(0x1 << 1)
 | |
| #define ACODEC_DAC_I2S_RESET			(0x0 << 1)
 | |
| #define ACODEC_DAC_I2S_BIT_CLK_POL_MSK		(0x1 << 0)
 | |
| #define ACODEC_DAC_I2S_BIT_CLK_POL_REVERSAL	(0x1 << 0)
 | |
| #define ACODEC_DAC_I2S_BIT_CLK_POL_NORMAL	(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_DAC_GAIN_SEL */
 | |
| #define ACODEC_DAC_DIG_GAIN_SFT			0
 | |
| #define ACODEC_DAC_DIG_GAIN_MSK			(0xff << ACODEC_DAC_DIG_GAIN_SFT)
 | |
| #define ACODEC_DAC_DIG_GAIN(x)			((x) & ACODEC_DAC_DIG_GAIN_MSK)
 | |
| #define ACODEC_DAC_DIG_0DB			0xed
 | |
| 
 | |
| /* ACODEC_DAC_L_BIST_MODE_SEL */
 | |
| #define ACODEC_DAC_L_CH_BIST_SFT		4
 | |
| #define ACODEC_DAC_L_CH_BIST_MSK		(0x3 << ACODEC_DAC_L_CH_BIST_SFT)
 | |
| #define ACODEC_DAC_L_CH_BIST_SINE		(0x1 << ACODEC_DAC_L_CH_BIST_SFT)
 | |
| #define ACODEC_DAC_L_CH_BIST_LEFT		(0x0 << ACODEC_DAC_L_CH_BIST_SFT) /* normal mode */
 | |
| 
 | |
| /* ACODEC_ADC_L_DIG_VOL */
 | |
| #define ACODEC_ADC_L_DIG_VOL_MAX		0xff
 | |
| #define ACODEC_ADC_L_DIG_VOL_MIN		0
 | |
| #define ACODEC_ADC_L_DIG_VOL_SFT		0
 | |
| #define ACODEC_ADC_L_DIG_VOL_MUTE		0
 | |
| #define ACODEC_ADC_L_DIG_VOL_0DB		0xc3
 | |
| 
 | |
| /* ACODEC_ADC_R_DIG_VOL */
 | |
| #define ACODEC_ADC_R_DIG_VOL_MAX		0xff
 | |
| #define ACODEC_ADC_R_DIG_VOL_MIN		0
 | |
| #define ACODEC_ADC_R_DIG_VOL_SFT		0
 | |
| #define ACODEC_ADC_R_DIG_VOL_MUTE		0
 | |
| #define ACODEC_ADC_R_DIG_VOL_0DB		0xc3
 | |
| 
 | |
| /* ACODEC_ADC_HPF_PGA_CTL */
 | |
| #define ACODEC_ADC_FILTER_MSK			(1 << 7)
 | |
| #define ACODEC_ADC_FILTER_EN			(1 << 7)
 | |
| #define ACODEC_ADC_FILTER_DIS			(0 << 7)
 | |
| #define ACODEC_ADC_AGC_MSK			(1 << 6)
 | |
| #define ACODEC_ADC_FILTER_OUTPUT		(1 << 6)
 | |
| #define ACODEC_ADC_SINC_OUTPUT			(0 << 6)
 | |
| #define ACODEC_ADC_L_PGA_MSK			(1 << 5)
 | |
| #define ACODEC_ADC_PGA_ALCL_EN			(1 << 5)
 | |
| #define ACODEC_ADC_PGA_ALCL_DIS			(0 << 5)
 | |
| #define ACODEC_ADC_R_PGA_MSK			(1 << 4)
 | |
| #define ACODEC_ADC_PGA_ALCR_EN			(1 << 4)
 | |
| #define ACODEC_ADC_PGA_ALCR_DIS			(0 << 4)
 | |
| #define ACODEC_ADC_HPF_SFT			2
 | |
| #define ACODEC_ADC_HPF_MSK			(3 << ACODEC_ADC_HPF_SFT)
 | |
| #define ACODEC_ADC_HPF_EN			(3 << ACODEC_ADC_HPF_SFT)
 | |
| #define ACODEC_ADC_HPF_DIS			(0 << ACODEC_ADC_HPF_SFT)
 | |
| #define ACODEC_ADC_R_DATA_POL_INV_MSK		(1 << 1)
 | |
| #define ACODEC_ADC_R_DATA_POL_INV_EN		(1 << 1)
 | |
| #define ACODEC_ADC_R_DATA_POL_INV_DIS		(0 << 1)
 | |
| #define ACODEC_ADC_L_DATA_POL_INV_MSK		(1 << 0)
 | |
| #define ACODEC_ADC_L_DATA_POL_INV_EN		(1 << 0)
 | |
| #define ACODEC_ADC_L_DATA_POL_INV_DIS		(0 << 0)
 | |
| 
 | |
| /* ACODEC_ADC_BIST_MODE_SEL */
 | |
| #define ACODEC_ADC_R_BIST_SFT			6
 | |
| #define ACODEC_ADC_R_BIST_MSK			(0x3 << ACODEC_ADC_R_BIST_SFT)
 | |
| #define ACODEC_ADC_R_BIST_SINE			(0x1 << ACODEC_ADC_R_BIST_SFT)
 | |
| #define ACODEC_ADC_BIST_RIGHT			(0x0 << ACODEC_ADC_R_BIST_SFT) /* normal mode */
 | |
| #define ACODEC_ADC_L_BIST_SFT			4
 | |
| #define ACODEC_ADC_L_BIST_MSK			(0x3 << ACODEC_ADC_L_BIST_SFT)
 | |
| #define ACODEC_ADC_L_BIST_SINE			(0x1 << ACODEC_ADC_L_BIST_SFT)
 | |
| #define ACODEC_ADC_BIST_LEFT			(0x0 << ACODEC_ADC_L_BIST_SFT) /* normal mode */
 | |
| 
 | |
| /* ACODEC_LINEOUT_CTL */
 | |
| #define ACODEC_DAC_LINEOUT_EN_SFT               7
 | |
| #define ACODEC_DAC_LINEOUT_EN_WORK              (0x1 << ACODEC_DAC_LINEOUT_EN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_EN_RST               (0x0 << ACODEC_DAC_LINEOUT_EN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_INI_SFT		6
 | |
| #define ACODEC_DAC_LINEOUT_INI_WORK		(0x1 << ACODEC_DAC_LINEOUT_INI_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_INI_RST		(0x0 << ACODEC_DAC_LINEOUT_INI_SFT)
 | |
| #define ACODEC_DAC_IBIAS_SEL_SFT		0
 | |
| #define ACODEC_DAC_IBIAS_SEL_MSK		(0xf << ACODEC_DAC_IBIAS_SEL_SFT)
 | |
| 
 | |
| /* ACODEC_CURRENT_CHARGE_CTL */
 | |
| #define ACODEC_ADC_CURRENT_CHARGE_SFT		0
 | |
| #define ACODEC_ADC_CURRENT_CHARGE_MSK		(0xff << ACODEC_ADC_CURRENT_CHARGE_SFT)
 | |
| /*
 | |
|  * 1: Choose the current I
 | |
|  * 0: Don't choose the current I
 | |
|  */
 | |
| #define ACODEC_ADC_SEL_I(x)			(x & 0xff)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL0 */
 | |
| #define ACODEC_ADC_REF_VOL_MSK			(0x1 << 5)
 | |
| #define ACODEC_ADC_REF_VOL_EN			(0x1 << 5)
 | |
| #define ACODEC_ADC_REF_VOL_DIS			(0x0 << 5)
 | |
| #define ACODEC_ADC_IBIAS_MSK			(0x1 << 4)
 | |
| #define ACODEC_ADC_IBIAS_EN			(0x1 << 4)
 | |
| #define ACODEC_ADC_IBIAS_DIS			(0x0 << 4)
 | |
| #define ACODEC_MICBIAS_SFT			3
 | |
| #define ACODEC_MICBIAS_MSK			(0x1 << 3)
 | |
| #define ACODEC_MICBIAS_WORK			(0x1 << 3)
 | |
| #define ACODEC_MICBIAS_RST			(0x0 << 3)
 | |
| #define ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT	0
 | |
| #define ACODEC_ADC_LEVEL_RANGE_MICBIAS_MSK	(0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_975		(0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_95		(0x6 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_925		(0x5 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_9		(0x4 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_875		(0x3 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_85		(0x2 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_825		(0x1 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| #define ACODEC_ADC_MICBIAS_VOLT_0_8		(0x0 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL1 */
 | |
| #define ACODEC_ADC_L_MIC_MSK			(0x1 << 7)
 | |
| #define ACODEC_ADC_L_MIC_WORK			(0x1 << 7)
 | |
| #define ACODEC_ADC_L_MIC_MUTE			(0x0 << 7)
 | |
| #define ACODEC_ADC_L_MIC_SIGNAL_MSK		(0x1 << 6)
 | |
| #define ACODEC_ADC_L_MIC_SIGNAL_WORK		(0x1 << 6)
 | |
| #define ACODEC_ADC_L_MIC_SIGNAL_INIT		(0x0 << 6)
 | |
| #define ACODEC_ADC_L_REF_VOL_BUF_MSK		(0x1 << 5)
 | |
| #define ACODEC_ADC_L_REF_VOL_BUF_EN		(0x1 << 5)
 | |
| #define ACODEC_ADC_L_REF_VOL_BUF_DIS		(0x0 << 5)
 | |
| #define ACODEC_ADC_L_ZERO_CROSS_DET_MSK		(0x1 << 4)
 | |
| #define ACODEC_ADC_L_ZERO_CROSS_DET_EN		(0x1 << 4)
 | |
| #define ACODEC_ADC_L_ZERO_CROSS_DET_DIS		(0x0 << 4)
 | |
| #define ACODEC_ADC_R_MIC_MSK			(0x1 << 3)
 | |
| #define ACODEC_ADC_R_MIC_WORK			(0x1 << 3)
 | |
| #define ACODEC_ADC_R_MIC_MUTE			(0x0 << 3)
 | |
| #define ACODEC_ADC_R_MIC_SIGNAL_MSK		(0x1 << 2)
 | |
| #define ACODEC_ADC_R_MIC_SIGNAL_WORK		(0x1 << 2)
 | |
| #define ACODEC_ADC_R_MIC_SIGNAL_INIT		(0x0 << 2)
 | |
| #define ACODEC_ADC_R_REF_VOL_BUF_MSK		(0x1 << 1)
 | |
| #define ACODEC_ADC_R_REF_VOL_BUF_EN		(0x1 << 1)
 | |
| #define ACODEC_ADC_R_REF_VOL_BUF_DIS		(0x0 << 1)
 | |
| #define ACODEC_ADC_R_ZERO_CROSS_DET_MSK		(0x1 << 0)
 | |
| #define ACODEC_ADC_R_ZERO_CROSS_DET_EN		(0x1 << 0)
 | |
| #define ACODEC_ADC_R_ZERO_CROSS_DET_DIS		(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL2 */
 | |
| #define ACODEC_ADC_MIC_GAIN_MAX			0x3
 | |
| #define ACODEC_ADC_MIC_GAIN_MIN			0x1
 | |
| #define ACODEC_ADC_L_MIC_GAIN_SFT		6
 | |
| #define ACODEC_ADC_L_MIC_GAIN_MSK		(0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_MIC_GAIN_12DB		(0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_MIC_GAIN_20DB		(0x2 << ACODEC_ADC_L_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_MIC_GAIN_0DB		(0x1 << ACODEC_ADC_L_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_MIC_GAIN_SFT		4
 | |
| #define ACODEC_ADC_R_MIC_GAIN_MSK		(0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_MIC_GAIN_12DB		(0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_MIC_GAIN_20DB		(0x2 << ACODEC_ADC_R_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_MIC_GAIN_0DB		(0x1 << ACODEC_ADC_R_MIC_GAIN_SFT)
 | |
| #define ACODEC_ADC_IBIAS_SEL_SFT		0
 | |
| #define ACODEC_ADC_IBIAS_SEL_MSK		(0xf << ACODEC_ADC_IBIAS_SEL_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL3 */
 | |
| #define ACODEC_ADC_L_MODE_SEL_SFT		6
 | |
| #define ACODEC_ADC_L_MODE_SEL_MSK		(0x3 << ACODEC_ADC_L_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_L_FULL_DIFFER2		(0x2 << ACODEC_ADC_L_MODE_SEL_SFT) /* Only used for rv1103 acodec */
 | |
| #define ACODEC_ADC_L_SINGLE_END			(0x1 << ACODEC_ADC_L_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_L_FULL_DIFFER		(0x0 << ACODEC_ADC_L_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_L_MSK			(0x1 << 5)
 | |
| #define ACODEC_ADC_L_EN				(0x1 << 5)
 | |
| #define ACODEC_ADC_L_DIS			(0x0 << 5)
 | |
| #define ACODEC_MIC_L_MSK			(0x1 << 4)
 | |
| #define ACODEC_MIC_L_EN				(0x1 << 4)
 | |
| #define ACODEC_MIC_L_DIS			(0x0 << 4)
 | |
| #define ACODEC_ADC_R_MODE_SEL_SFT		2
 | |
| #define ACODEC_ADC_R_MODE_SEL_MSK		(0x3 << ACODEC_ADC_R_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_R_SINGLE_END			(0x1 << ACODEC_ADC_R_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_R_FULL_DIFFER		(0x0 << ACODEC_ADC_R_MODE_SEL_SFT)
 | |
| #define ACODEC_ADC_R_MSK			(0x1 << 1)
 | |
| #define ACODEC_ADC_R_EN				(0x1 << 1)
 | |
| #define ACODEC_ADC_R_DIS			(0x0 << 1)
 | |
| #define ACODEC_MIC_R_MSK			(0x1 << 0)
 | |
| #define ACODEC_MIC_R_EN				(0x1 << 0)
 | |
| #define ACODEC_MIC_R_DIS			(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL4 */
 | |
| #define ACODEC_ADC_L_ALC_GAIN_MAX		0x1f
 | |
| #define ACODEC_ADC_L_ALC_GAIN_MIN		0
 | |
| #define ACODEC_ADC_L_ALC_GAIN_SFT		0
 | |
| #define ACODEC_ADC_L_ALC_GAIN_MSK		(0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_37_5		(0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_36		(0x1e << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_34_5		(0x1d << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_33		(0x1c << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_31_5		(0x1b << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_30		(0x1a << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_28_5		(0x19 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_27		(0x18 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_25_5		(0x17 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_24		(0x16 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_22_5		(0x15 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_21		(0x14 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_19_5		(0x13 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_18		(0x12 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_16_5		(0x11 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_15		(0x10 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_13_5		(0x0f << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_12		(0x0e << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_10_5		(0x0d << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_9		(0x0c << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_7_5		(0x0b << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_6		(0x0a << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_4_5		(0x09 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_3		(0x08 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_PDB_1_5		(0x07 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_0DB		(0x06 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_1_5		(0x05 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_3		(0x04 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_4_5		(0x03 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_6		(0x02 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_7_5		(0x01 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_L_ALC_GAIN_NDB_9		(0x00 << ACODEC_ADC_L_ALC_GAIN_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL5 */
 | |
| #define ACODEC_ADC_R_ALC_GAIN_MAX		0x1f
 | |
| #define ACODEC_ADC_R_ALC_GAIN_MIN		0
 | |
| #define ACODEC_ADC_R_ALC_GAIN_SFT		0
 | |
| #define ACODEC_ADC_R_ALC_GAIN_MSK		(0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_37_5		(0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_36		(0x1e << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_34_5		(0x1d << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_33		(0x1c << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_31_5		(0x1b << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_30		(0x1a << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_28_5		(0x19 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_27		(0x18 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_25_5		(0x17 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_24		(0x16 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_22_5		(0x15 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_21		(0x14 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_19_5		(0x13 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_18		(0x12 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_16_5		(0x11 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_15		(0x10 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_13_5		(0x0f << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_12		(0x0e << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_10_5		(0x0d << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_9		(0x0c << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_7_5		(0x0b << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_6		(0x0a << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_4_5		(0x09 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_3		(0x08 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_PDB_1_5		(0x07 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_0DB		(0x06 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_1_5		(0x05 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_3		(0x04 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_4_5		(0x03 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_6		(0x02 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_7_5		(0x01 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| #define ACODEC_ADC_R_ALC_GAIN_NDB_9		(0x00 << ACODEC_ADC_R_ALC_GAIN_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_ANA_CTL6 */
 | |
| #define ACODEC_ADC_L_ALC_MSK			(0x1 << 7)
 | |
| #define ACODEC_ADC_L_ALC_WORK			(0x1 << 7)
 | |
| #define ACODEC_ADC_L_ALC_INIT			(0x0 << 7)
 | |
| #define ACODEC_ADC_L_CLK_MSK			(0x1 << 6)
 | |
| #define ACODEC_ADC_L_CLK_WORK			(0x1 << 6)
 | |
| #define ACODEC_ADC_L_CLK_RST			(0x0 << 6)
 | |
| #define ACODEC_ADC_L_WORK			(0x1 << 5)
 | |
| #define ACODEC_ADC_L_INIT			(0x0 << 5)
 | |
| #define ACODEC_ADC_L_SIGNAL_EN			(0x1 << 4)
 | |
| #define ACODEC_ADC_L_SIGNAL_DIS			(0x0 << 4)
 | |
| #define ACODEC_ADC_R_ALC_MSK			(0x1 << 3)
 | |
| #define ACODEC_ADC_R_ALC_WORK			(0x1 << 3)
 | |
| #define ACODEC_ADC_R_ALC_INIT			(0x0 << 3)
 | |
| #define ACODEC_ADC_R_CLK_MSK			(0x1 << 2)
 | |
| #define ACODEC_ADC_R_CLK_WORK			(0x1 << 2)
 | |
| #define ACODEC_ADC_R_CLK_RST			(0x0 << 2)
 | |
| #define ACODEC_ADC_R_WORK			(0x1 << 1)
 | |
| #define ACODEC_ADC_R_INIT			(0x0 << 1)
 | |
| #define ACODEC_ADC_R_SIGNAL_EN			(0x1 << 0)
 | |
| #define ACODEC_ADC_R_SIGNAL_DIS			(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_DAC_ANA_CTL0 */
 | |
| #define ACODEC_DAC_IBIAS_MSK			(0x1 << 7)
 | |
| #define ACODEC_DAC_IBIAS_EN			(0x1 << 7)
 | |
| #define ACODEC_DAC_IBIAS_DIS			(0x0 << 7)
 | |
| #define ACODEC_DAC_L_REF_VOL_BUF_MSK		(0x1 << 6)
 | |
| #define ACODEC_DAC_L_REF_VOL_BUF_EN		(0x1 << 6)
 | |
| #define ACODEC_DAC_L_REF_VOL_BUF_DIS		(0x0 << 6)
 | |
| #define ACODEC_DAC_L_REF_POP_SOUND_MSK		(0x3 << 4)
 | |
| #define ACODEC_DAC_L_REF_POP_SOUND_WORK		(0x2 << 4)
 | |
| #define ACODEC_DAC_L_REF_POP_SOUND_INIT		(0x1 << 4)
 | |
| #define ACODEC_DAC_L_REF_POP_SOUND_DIS		(0x0 << 4)
 | |
| #define ACODEC_DAC_L_REF_VOL_MSK		(0x1 << 3)
 | |
| #define ACODEC_DAC_L_REF_VOL_EN			(0x1 << 3)
 | |
| #define ACODEC_DAC_L_REF_VOL_DIS		(0x0 << 3)
 | |
| #define ACODEC_DAC_L_CLK_MSK			(0x1 << 2)
 | |
| #define ACODEC_DAC_L_CLK_EN			(0x1 << 2)
 | |
| #define ACODEC_DAC_L_CLK_DIS			(0x0 << 2)
 | |
| #define ACODEC_DAC_SRC_SIGNAL_MSK		(0x1 << 1)
 | |
| #define ACODEC_DAC_SRC_SIGNAL_EN		(0x1 << 1)
 | |
| #define ACODEC_DAC_SRC_SIGNAL_DIS		(0x0 << 1)
 | |
| #define ACODEC_DAC_L_SIGNAL_MSK			(0x1 << 0)
 | |
| #define ACODEC_DAC_L_SIGNAL_WORK		(0x1 << 0)
 | |
| #define ACODEC_DAC_L_SIGNAL_INIT		(0x0 << 0)
 | |
| 
 | |
| /* ACODEC_DAC_ANA_CTL1 */
 | |
| #define ACODEC_DAC_L_LINEOUT_MUTE_MSK		(0x1 << 6)
 | |
| #define ACODEC_DAC_L_LINEOUT_MUTE		(0x0 << 6)
 | |
| #define ACODEC_DAC_L_LINEOUT_WORK		(0x1 << 6)
 | |
| #define ACODEC_DAC_L_LINEOUT_SIGNAL_MSK		(0x1 << 5)
 | |
| #define ACODEC_DAC_L_LINEOUT_SIGNAL_WORK	(0x1 << 5)
 | |
| #define ACODEC_DAC_L_LINEOUT_SIGNAL_INIT	(0x0 << 5)
 | |
| #define ACODEC_DAC_L_LINEOUT_MSK		(0x1 << 4)
 | |
| #define ACODEC_DAC_L_LINEOUT_EN			(0x1 << 4)
 | |
| #define ACODEC_DAC_L_LINEOUT_DIS		(0x0 << 4)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_SFT		0
 | |
| #define ACODEC_DAC_DRV_STRENGTH_MSK		(0xf << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_20_4		(0x8 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_22_7		(0x7 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_25_7		(0x6 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_29_7		(0x5 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_35_5		(0x4 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_44_2		(0x3 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_60_1		(0x2 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| #define ACODEC_DAC_DRV_STRENGTH_100		(0x1 << ACODEC_DAC_DRV_STRENGTH_SFT)
 | |
| 
 | |
| /* ACODEC_DAC_ANA_CTL2 */
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_MAX		0x1e
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_MIN		0
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_SFT		0
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_MSK		(0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_PDB_6_0		(0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_PDB_6		(0x1e << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_PDB_4_5		(0x1d << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_PDB_3		(0x1c << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_PDB_1_5		(0x1b << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_0DB		(0x1a << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_1_5		(0x19 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_3		(0x18 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_4_5		(0x17 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_6		(0x16 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_7_5		(0x15 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_9		(0x14 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_10_5	(0x13 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_12		(0x12 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_13_5	(0x11 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_15		(0x10 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_16_5	(0x0f << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_18		(0x0e << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_19_5	(0x0d << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_21		(0x0c << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_22_5	(0x0b << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_24		(0x0a << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_25_5	(0x09 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_27		(0x08 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_28_5	(0x07 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_30		(0x06 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_31_5	(0x05 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_33		(0x04 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_34_5	(0x03 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_36		(0x02 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_37_5	(0x01 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| #define ACODEC_DAC_LINEOUT_GAIN_NDB_39		(0x00 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 | |
| 
 | |
| /* ACODEC_DAC_HPMIX_CTL */
 | |
| #define ACODEC_DAC_HPMIX_MSK                    (0x1 << 7)
 | |
| #define ACODEC_DAC_HPMIX_EN                     (0x1 << 7)
 | |
| #define ACODEC_DAC_HPMIX_DIS                    (0x0 << 7)
 | |
| #define ACODEC_DAC_HPMIX_GAIN_SFT		5
 | |
| #define ACODEC_DAC_HPMIX_GAIN_MAX		2
 | |
| #define ACODEC_DAC_HPMIX_GAIN_MIN		1
 | |
| #define ACODEC_DAC_HPMIX_GAIN_MSK		(0x3 << ACODEC_DAC_HPMIX_GAIN_SFT)
 | |
| #define ACODEC_DAC_HPMIX_GAIN_6DB		(0x2 << ACODEC_DAC_HPMIX_GAIN_SFT)
 | |
| #define ACODEC_DAC_HPMIX_GAIN_0DB		(0x1 << ACODEC_DAC_HPMIX_GAIN_SFT)
 | |
| #define ACODEC_DAC_HPMIX_MDL_MSK		(0x1 << 4)
 | |
| #define ACODEC_DAC_HPMIX_MDL_WORK		(0x1 << 4)
 | |
| #define ACODEC_DAC_HPMIX_MDL_INIT		(0x0 << 4)
 | |
| #define ACODEC_DAC_HPMIX_MUTE_MSK		(0x1 << 3)
 | |
| #define ACODEC_DAC_HPMIX_WORK                   (0x1 << 3)
 | |
| #define ACODEC_DAC_HPMIX_MUTE                   (0x0 << 3)
 | |
| #define ACODEC_DAC_HPMIX_SEL_SFT		0
 | |
| #define ACODEC_DAC_HPMIX_SEL_MSK		(0x7 << ACODEC_DAC_HPMIX_SEL_SFT)
 | |
| #define ACODEC_DAC_HPMIX_ADCR                   (0x4 << ACODEC_DAC_HPMIX_SEL_SFT)
 | |
| #define ACODEC_DAC_HPMIX_ADCL                   (0x2 << ACODEC_DAC_HPMIX_SEL_SFT)
 | |
| #define ACODEC_DAC_HPMIX_I2S                    (0x1 << ACODEC_DAC_HPMIX_SEL_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL0 */
 | |
| #define ACODEC_GAIN_ATTACK_MSK			(1 << 6)
 | |
| #define ACODEC_GAIN_ATTACK_JACK			(1 << 6)
 | |
| #define ACODEC_GAIN_ATTACK_NORMAL		(0 << 6)
 | |
| #define ACODEC_CTRL_GEN_SFT			4
 | |
| #define ACODEC_CTRL_GEN_MSK			(0x3 << ACODEC_ALC_CTRL_GEN_SFT)
 | |
| #define ACODEC_CTRL_GEN_JACK3			(0x3 << ACODEC_ALC_CTRL_GEN_SFT)
 | |
| #define ACODEC_CTRL_GEN_JACK2			(0x2 << ACODEC_ALC_CTRL_GEN_SFT)
 | |
| #define ACODEC_CTRL_GEN_JACK1			(0x1 << ACODEC_ALC_CTRL_GEN_SFT)
 | |
| #define ACODEC_CTRL_GEN_NORMAL			(0x0 << ACODEC_ALC_CTRL_GEN_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_SFT		0
 | |
| #define ACODEC_AGC_HOLD_TIME_MSK		(0xf << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_1S			(0xa << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_512MS		(0x9 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_256MS		(0x8 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_128MS		(0x7 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_64MS		(0x6 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_32MS		(0x5 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_16MS		(0x4 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_8MS		(0x3 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_4MS		(0x2 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_2MS		(0x1 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| #define ACODEC_AGC_HOLD_TIME_0MS		(0x0 << ACODEC_AGC_HOLD_TIME_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL1 */
 | |
| #define ACODEC_AGC_DECAY_TIME_SFT		4
 | |
| /* Normal mode (reg_agc_mode = 0) */
 | |
| #define ACODEC_AGC_DECAY_NORMAL_MSK		(0xf << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_512MS		(0xa << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_256MS		(0x9 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_128MS		(0x8 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_64MS		(0x7 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_32MS		(0x6 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_16MS		(0x5 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_8MS		(0x4 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_4MS		(0x3 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_2MS		(0x2 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_1MS		(0x1 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_NORMAL_0MS		(0x0 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| /* Limiter mode (reg_agc_mode = 1) */
 | |
| #define ACODEC_AGC_DECAY_LIMITER_MSK		(0xf << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_128MS		(0xa << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_64MS		(0x9 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_32MS		(0x8 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_16MS		(0x7 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_8MS		(0x6 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_4MS		(0x5 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_2MS		(0x4 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_1MS		(0x3 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_500US		(0x2 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_250US		(0x1 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_DECAY_LIMITER_125US		(0x0 << ACODEC_AGC_DECAY_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_TIME_SFT		0
 | |
| /* Normal mode (reg_agc_mode = 0) */
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_MSK		(0xf << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_128MS		(0xa << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_64MS		(0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_32MS		(0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_16MS		(0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_8MS		(0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_4MS		(0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_2MS		(0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_1MS		(0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_500US		(0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_250US		(0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_NORMAL_125US		(0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| /* Limiter mode (reg_agc_mode = 1) */
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_MSK		(0xf << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_32MS		(0xa << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_16MS		(0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_8MS		(0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_4MS		(0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_2MS		(0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_1MS		(0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_500US		(0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_250US		(0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_125US		(0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_64US		(0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| #define ACODEC_AGC_ATTACK_LIMITER_32US		(0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL2 */
 | |
| #define ACODEC_AGC_MODE_LIMITER			(0x1 << 7)
 | |
| #define ACODEC_AGC_MODE_NORMAL			(0x0 << 7)
 | |
| #define ACODEC_AGC_ZERO_CRO_EN			(0x1 << 6)
 | |
| #define ACODEC_AGC_ZERO_CRO_DIS			(0x0 << 6)
 | |
| #define ACODEC_AGC_AMP_RECOVER_GAIN		(0x1 << 5)
 | |
| #define ACODEC_AGC_AMP_RECOVER_LVOL		(0x0 << 5)
 | |
| #define ACODEC_AGC_FAST_DEC_EN			(0x1 << 4)
 | |
| #define ACODEC_AGC_FAST_DEC_DIS			(0x0 << 4)
 | |
| #define ACODEC_AGC_NOISE_GATE_EN		(0x1 << 3)
 | |
| #define ACODEC_AGC_NOISE_GATE_DIS		(0x0 << 3)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_SFT	0
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_MSK	(0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N81DB	(0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N75DB	(0x6 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N69DB	(0x5 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N63DB	(0x4 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N57DB	(0x3 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N51DB	(0x2 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N45DB	(0x1 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| #define ACODEC_AGC_NOISE_GATE_THRESH_N39DB	(0x0 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL3 */
 | |
| #define ACODEC_AGC_PGA_ZERO_CRO_EN		(0x1 << 5)
 | |
| #define ACODEC_AGC_PGA_ZERO_CRO_DIS		(0x0 << 5)
 | |
| #define ACODEC_AGC_PGA_GAIN_MAX			0x1f
 | |
| #define ACODEC_AGC_PGA_GAIN_MIN			0
 | |
| #define ACODEC_AGC_PGA_GAIN_SFT			0
 | |
| #define ACODEC_AGC_PGA_GAIN_MSK			(0x1f << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_28_5		(0x1f << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_27		(0x1e << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_25_5		(0x1d << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_24		(0x1c << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_22_5		(0x1b << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_21		(0x1a << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_19_5		(0x19 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_18		(0x18 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_16_5		(0x17 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_15		(0x16 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_13_5		(0x15 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_12		(0x14 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_10_5		(0x13 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_9		(0x12 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_7_5		(0x11 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_6		(0x10 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_4_5		(0x0f << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_3		(0x0e << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_PDB_1_5		(0x0d << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_0DB			(0x0c << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_1_5		(0x0b << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_3		(0x0a << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_4_5		(0x09 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_6		(0x08 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_7_5		(0x07 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_9		(0x06 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_10_5		(0x05 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_12		(0x04 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_13_5		(0x03 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_15		(0x02 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_16_5		(0x01 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| #define ACODEC_AGC_PGA_GAIN_NDB_18		(0x00 << ACODEC_AGC_PGA_GAIN_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL4 */
 | |
| #define ACODEC_AGC_SLOW_CLK_EN			(0x1 << 3)
 | |
| #define ACODEC_AGC_SLOW_CLK_DIS			(0x0 << 3)
 | |
| #define ACODEC_AGC_APPROX_RATE_SFT		0
 | |
| #define ACODEC_AGC_APPROX_RATE_MSK		(0x7 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_8K		(0x7 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_12K		(0x6 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_16K		(0x5 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_24K		(0x4 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_32K		(0x3 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_44_1K		(0x2 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_48K		(0x1 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| #define ACODEC_AGC_APPROX_RATE_96K		(0x0 << ACODEC_AGC_APPROX_RATE_SFT)
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL5 */
 | |
| #define ACODEC_AGC_LO_8BITS_AGC_MAX_MSK		0xff
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL6 */
 | |
| #define ACODEC_AGC_HI_8BITS_AGC_MAX_MSK		0xff
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL7 */
 | |
| #define ACODEC_AGC_LO_8BITS_AGC_MIN_MSK		0xff
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL8 */
 | |
| #define ACODEC_AGC_HI_8BITS_AGC_MIN_MSK		0xff
 | |
| 
 | |
| /* ACODEC_ADC_PGA_AGC_L_CTL9 */
 | |
| #define ACODEC_AGC_FUNC_SEL_MSK			(0x1 << 6)
 | |
| #define ACODEC_AGC_FUNC_SEL_EN			(0x1 << 6)
 | |
| #define ACODEC_AGC_FUNC_SEL_DIS			(0x0 << 6)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_MAX		0x7
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_MIN		0
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_SFT		3
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_MSK		(0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_PDB_28_5	(0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_PDB_22_5	(0x6 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_PDB_16_5	(0x5 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_PDB_10_5	(0x4 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_PDB_4_5		(0x3 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_NDB_1_5		(0x2 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_NDB_7_5		(0x1 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MAX_GAIN_PGA_NDB_13_5	(0x0 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_MAX		0x7
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_MIN		0
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_SFT		0
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_MSK		(0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_PDB_24		(0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_PDB_18		(0x6 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_PDB_12		(0x5 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_PDB_6		(0x4 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_0DB		(0x3 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_NDB_6		(0x2 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_NDB_12		(0x1 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| #define ACODEC_AGC_MIN_GAIN_PGA_NDB_18		(0x0 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 | |
| 
 | |
| #define ACODEC_HIFI				0x0
 | |
| 
 | |
| #endif /* __RV1106_CODEC_H__ */
 |