brintos

brintos / linux-shallow public Read only

0
0
Text · 62.4 KiB · ad9c5de Raw
1817 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * rt5616.h  --  RT5616 ALSA SoC audio driver4 *5 * Copyright 2011 Realtek Microelectronics6 * Author: Johnny Hsu <johnnyhsu@realtek.com>7 */8 9#ifndef __RT5616_H__10#define __RT5616_H__11 12/* Info */13#define RT5616_RESET				0x0014#define RT5616_VERSION_ID			0xfd15#define RT5616_VENDOR_ID			0xfe16#define RT5616_DEVICE_ID			0xff17/*  I/O - Output */18#define RT5616_HP_VOL				0x0219#define RT5616_LOUT_CTRL1			0x0320#define RT5616_LOUT_CTRL2			0x0521/* I/O - Input */22#define RT5616_IN1_IN2				0x0d23#define RT5616_INL1_INR1_VOL			0x0f24/* I/O - ADC/DAC/DMIC */25#define RT5616_DAC1_DIG_VOL			0x1926#define RT5616_ADC_DIG_VOL			0x1c27#define RT5616_ADC_BST_VOL			0x1e28/* Mixer - D-D */29#define RT5616_STO1_ADC_MIXER			0x2730#define RT5616_AD_DA_MIXER			0x2931#define RT5616_STO_DAC_MIXER			0x2a32 33/* Mixer - ADC */34#define RT5616_REC_L1_MIXER			0x3b35#define RT5616_REC_L2_MIXER			0x3c36#define RT5616_REC_R1_MIXER			0x3d37#define RT5616_REC_R2_MIXER			0x3e38/* Mixer - DAC */39#define RT5616_HPO_MIXER			0x4540#define RT5616_OUT_L1_MIXER			0x4d41#define RT5616_OUT_L2_MIXER			0x4e42#define RT5616_OUT_L3_MIXER			0x4f43#define RT5616_OUT_R1_MIXER			0x5044#define RT5616_OUT_R2_MIXER			0x5145#define RT5616_OUT_R3_MIXER			0x5246#define RT5616_LOUT_MIXER			0x5347/* Power */48#define RT5616_PWR_DIG1				0x6149#define RT5616_PWR_DIG2				0x6250#define RT5616_PWR_ANLG1			0x6351#define RT5616_PWR_ANLG2			0x6452#define RT5616_PWR_MIXER			0x6553#define RT5616_PWR_VOL				0x6654/* Private Register Control */55#define RT5616_PRIV_INDEX			0x6a56#define RT5616_PRIV_DATA			0x6c57/* Format - ADC/DAC */58#define RT5616_I2S1_SDP				0x7059#define RT5616_ADDA_CLK1			0x7360#define RT5616_ADDA_CLK2			0x7461 62/* Function - Analog */63#define RT5616_GLB_CLK				0x8064#define RT5616_PLL_CTRL1			0x8165#define RT5616_PLL_CTRL2			0x8266#define RT5616_HP_OVCD				0x8b67#define RT5616_DEPOP_M1				0x8e68#define RT5616_DEPOP_M2				0x8f69#define RT5616_DEPOP_M3				0x9070#define RT5616_CHARGE_PUMP			0x9171#define RT5616_PV_DET_SPK_G			0x9272#define RT5616_MICBIAS				0x9373#define RT5616_A_JD_CTL1			0x9474#define RT5616_A_JD_CTL2			0x9575/* Function - Digital */76#define RT5616_EQ_CTRL1				0xb077#define RT5616_EQ_CTRL2				0xb178#define RT5616_WIND_FILTER			0xb279#define RT5616_DRC_AGC_1			0xb480#define RT5616_DRC_AGC_2			0xb581#define RT5616_DRC_AGC_3			0xb682#define RT5616_SVOL_ZC				0xb783#define RT5616_JD_CTRL1				0xbb84#define RT5616_JD_CTRL2				0xbc85#define RT5616_IRQ_CTRL1			0xbd86#define RT5616_IRQ_CTRL2			0xbe87#define RT5616_INT_IRQ_ST			0xbf88#define RT5616_GPIO_CTRL1			0xc089#define RT5616_GPIO_CTRL2			0xc190#define RT5616_GPIO_CTRL3			0xc291#define RT5616_PGM_REG_ARR1			0xc892#define RT5616_PGM_REG_ARR2			0xc993#define RT5616_PGM_REG_ARR3			0xca94#define RT5616_PGM_REG_ARR4			0xcb95#define RT5616_PGM_REG_ARR5			0xcc96#define RT5616_SCB_FUNC				0xcd97#define RT5616_SCB_CTRL				0xce98#define RT5616_BASE_BACK			0xcf99#define RT5616_MP3_PLUS1			0xd0100#define RT5616_MP3_PLUS2			0xd1101#define RT5616_ADJ_HPF_CTRL1			0xd3102#define RT5616_ADJ_HPF_CTRL2			0xd4103#define RT5616_HP_CALIB_AMP_DET			0xd6104#define RT5616_HP_CALIB2			0xd7105#define RT5616_SV_ZCD1				0xd9106#define RT5616_SV_ZCD2				0xda107#define RT5616_D_MISC				0xfa108/* Dummy Register */109#define RT5616_DUMMY2				0xfb110#define RT5616_DUMMY3				0xfc111 112 113/* Index of Codec Private Register definition */114#define RT5616_BIAS_CUR1			0x12115#define RT5616_BIAS_CUR3			0x14116#define RT5616_CLSD_INT_REG1			0x1c117#define RT5616_MAMP_INT_REG2			0x37118#define RT5616_CHOP_DAC_ADC			0x3d119#define RT5616_3D_SPK				0x63120#define RT5616_WND_1				0x6c121#define RT5616_WND_2				0x6d122#define RT5616_WND_3				0x6e123#define RT5616_WND_4				0x6f124#define RT5616_WND_5				0x70125#define RT5616_WND_8				0x73126#define RT5616_DIP_SPK_INF			0x75127#define RT5616_HP_DCC_INT1			0x77128#define RT5616_EQ_BW_LOP			0xa0129#define RT5616_EQ_GN_LOP			0xa1130#define RT5616_EQ_FC_BP1			0xa2131#define RT5616_EQ_BW_BP1			0xa3132#define RT5616_EQ_GN_BP1			0xa4133#define RT5616_EQ_FC_BP2			0xa5134#define RT5616_EQ_BW_BP2			0xa6135#define RT5616_EQ_GN_BP2			0xa7136#define RT5616_EQ_FC_BP3			0xa8137#define RT5616_EQ_BW_BP3			0xa9138#define RT5616_EQ_GN_BP3			0xaa139#define RT5616_EQ_FC_BP4			0xab140#define RT5616_EQ_BW_BP4			0xac141#define RT5616_EQ_GN_BP4			0xad142#define RT5616_EQ_FC_HIP1			0xae143#define RT5616_EQ_GN_HIP1			0xaf144#define RT5616_EQ_FC_HIP2			0xb0145#define RT5616_EQ_BW_HIP2			0xb1146#define RT5616_EQ_GN_HIP2			0xb2147#define RT5616_EQ_PRE_VOL			0xb3148#define RT5616_EQ_PST_VOL			0xb4149 150 151/* global definition */152#define RT5616_L_MUTE				(0x1 << 15)153#define RT5616_L_MUTE_SFT			15154#define RT5616_VOL_L_MUTE			(0x1 << 14)155#define RT5616_VOL_L_SFT			14156#define RT5616_R_MUTE				(0x1 << 7)157#define RT5616_R_MUTE_SFT			7158#define RT5616_VOL_R_MUTE			(0x1 << 6)159#define RT5616_VOL_R_SFT			6160#define RT5616_L_VOL_MASK			(0x3f << 8)161#define RT5616_L_VOL_SFT			8162#define RT5616_R_VOL_MASK			(0x3f)163#define RT5616_R_VOL_SFT			0164 165/* LOUT Control 2(0x05) */166#define RT5616_EN_DFO				(0x1 << 15)167 168/* IN1 and IN2 Control (0x0d) */169/* IN3 and IN4 Control (0x0e) */170#define RT5616_BST_MASK1			(0xf<<12)171#define RT5616_BST_SFT1				12172#define RT5616_BST_MASK2			(0xf<<8)173#define RT5616_BST_SFT2				8174#define RT5616_IN_DF1				(0x1 << 7)175#define RT5616_IN_SFT1				7176#define RT5616_IN_DF2				(0x1 << 6)177#define RT5616_IN_SFT2				6178 179/* INL1 and INR1 Volume Control (0x0f) */180#define RT5616_INL_VOL_MASK			(0x1f << 8)181#define RT5616_INL_VOL_SFT			8182#define RT5616_INR_SEL_MASK			(0x1 << 7)183#define RT5616_INR_SEL_SFT			7184#define RT5616_INR_SEL_IN4N			(0x0 << 7)185#define RT5616_INR_SEL_MONON			(0x1 << 7)186#define RT5616_INR_VOL_MASK			(0x1f)187#define RT5616_INR_VOL_SFT			0188 189/* DAC1 Digital Volume (0x19) */190#define RT5616_DAC_L1_VOL_MASK			(0xff << 8)191#define RT5616_DAC_L1_VOL_SFT			8192#define RT5616_DAC_R1_VOL_MASK			(0xff)193#define RT5616_DAC_R1_VOL_SFT			0194 195/* DAC2 Digital Volume (0x1a) */196#define RT5616_DAC_L2_VOL_MASK			(0xff << 8)197#define RT5616_DAC_L2_VOL_SFT			8198#define RT5616_DAC_R2_VOL_MASK			(0xff)199#define RT5616_DAC_R2_VOL_SFT			0200 201/* ADC Digital Volume Control (0x1c) */202#define RT5616_ADC_L_VOL_MASK			(0x7f << 8)203#define RT5616_ADC_L_VOL_SFT			8204#define RT5616_ADC_R_VOL_MASK			(0x7f)205#define RT5616_ADC_R_VOL_SFT			0206 207/* Mono ADC Digital Volume Control (0x1d) */208#define RT5616_M_MONO_ADC_L			(0x1 << 15)209#define RT5616_M_MONO_ADC_L_SFT			15210#define RT5616_MONO_ADC_L_VOL_MASK		(0x7f << 8)211#define RT5616_MONO_ADC_L_VOL_SFT		8212#define RT5616_M_MONO_ADC_R			(0x1 << 7)213#define RT5616_M_MONO_ADC_R_SFT			7214#define RT5616_MONO_ADC_R_VOL_MASK		(0x7f)215#define RT5616_MONO_ADC_R_VOL_SFT		0216 217/* ADC Boost Volume Control (0x1e) */218#define RT5616_ADC_L_BST_MASK			(0x3 << 14)219#define RT5616_ADC_L_BST_SFT			14220#define RT5616_ADC_R_BST_MASK			(0x3 << 12)221#define RT5616_ADC_R_BST_SFT			12222#define RT5616_ADC_COMP_MASK			(0x3 << 10)223#define RT5616_ADC_COMP_SFT			10224 225/* Stereo ADC1 Mixer Control (0x27) */226#define RT5616_M_STO1_ADC_L1			(0x1 << 14)227#define RT5616_M_STO1_ADC_L1_SFT		14228#define RT5616_M_STO1_ADC_R1			(0x1 << 6)229#define RT5616_M_STO1_ADC_R1_SFT		6230 231/* ADC Mixer to DAC Mixer Control (0x29) */232#define RT5616_M_ADCMIX_L			(0x1 << 15)233#define RT5616_M_ADCMIX_L_SFT			15234#define RT5616_M_IF1_DAC_L			(0x1 << 14)235#define RT5616_M_IF1_DAC_L_SFT			14236#define RT5616_M_ADCMIX_R			(0x1 << 7)237#define RT5616_M_ADCMIX_R_SFT			7238#define RT5616_M_IF1_DAC_R			(0x1 << 6)239#define RT5616_M_IF1_DAC_R_SFT			6240 241/* Stereo DAC Mixer Control (0x2a) */242#define RT5616_M_DAC_L1_MIXL			(0x1 << 14)243#define RT5616_M_DAC_L1_MIXL_SFT		14244#define RT5616_DAC_L1_STO_L_VOL_MASK		(0x1 << 13)245#define RT5616_DAC_L1_STO_L_VOL_SFT		13246#define RT5616_M_DAC_R1_MIXL			(0x1 << 9)247#define RT5616_M_DAC_R1_MIXL_SFT		9248#define RT5616_DAC_R1_STO_L_VOL_MASK		(0x1 << 8)249#define RT5616_DAC_R1_STO_L_VOL_SFT		8250#define RT5616_M_DAC_R1_MIXR			(0x1 << 6)251#define RT5616_M_DAC_R1_MIXR_SFT		6252#define RT5616_DAC_R1_STO_R_VOL_MASK		(0x1 << 5)253#define RT5616_DAC_R1_STO_R_VOL_SFT		5254#define RT5616_M_DAC_L1_MIXR			(0x1 << 1)255#define RT5616_M_DAC_L1_MIXR_SFT		1256#define RT5616_DAC_L1_STO_R_VOL_MASK		(0x1)257#define RT5616_DAC_L1_STO_R_VOL_SFT		0258 259/* DD Mixer Control (0x2b) */260#define RT5616_M_STO_DD_L1			(0x1 << 14)261#define RT5616_M_STO_DD_L1_SFT			14262#define RT5616_STO_DD_L1_VOL_MASK		(0x1 << 13)263#define RT5616_DAC_DD_L1_VOL_SFT		13264#define RT5616_M_STO_DD_L2			(0x1 << 12)265#define RT5616_M_STO_DD_L2_SFT			12266#define RT5616_STO_DD_L2_VOL_MASK		(0x1 << 11)267#define RT5616_STO_DD_L2_VOL_SFT		11268#define RT5616_M_STO_DD_R2_L			(0x1 << 10)269#define RT5616_M_STO_DD_R2_L_SFT		10270#define RT5616_STO_DD_R2_L_VOL_MASK		(0x1 << 9)271#define RT5616_STO_DD_R2_L_VOL_SFT		9272#define RT5616_M_STO_DD_R1			(0x1 << 6)273#define RT5616_M_STO_DD_R1_SFT			6274#define RT5616_STO_DD_R1_VOL_MASK		(0x1 << 5)275#define RT5616_STO_DD_R1_VOL_SFT		5276#define RT5616_M_STO_DD_R2			(0x1 << 4)277#define RT5616_M_STO_DD_R2_SFT			4278#define RT5616_STO_DD_R2_VOL_MASK		(0x1 << 3)279#define RT5616_STO_DD_R2_VOL_SFT		3280#define RT5616_M_STO_DD_L2_R			(0x1 << 2)281#define RT5616_M_STO_DD_L2_R_SFT		2282#define RT5616_STO_DD_L2_R_VOL_MASK		(0x1 << 1)283#define RT5616_STO_DD_L2_R_VOL_SFT		1284 285/* Digital Mixer Control (0x2c) */286#define RT5616_M_STO_L_DAC_L			(0x1 << 15)287#define RT5616_M_STO_L_DAC_L_SFT		15288#define RT5616_STO_L_DAC_L_VOL_MASK		(0x1 << 14)289#define RT5616_STO_L_DAC_L_VOL_SFT		14290#define RT5616_M_DAC_L2_DAC_L			(0x1 << 13)291#define RT5616_M_DAC_L2_DAC_L_SFT		13292#define RT5616_DAC_L2_DAC_L_VOL_MASK		(0x1 << 12)293#define RT5616_DAC_L2_DAC_L_VOL_SFT		12294#define RT5616_M_STO_R_DAC_R			(0x1 << 11)295#define RT5616_M_STO_R_DAC_R_SFT		11296#define RT5616_STO_R_DAC_R_VOL_MASK		(0x1 << 10)297#define RT5616_STO_R_DAC_R_VOL_SFT		10298#define RT5616_M_DAC_R2_DAC_R			(0x1 << 9)299#define RT5616_M_DAC_R2_DAC_R_SFT		9300#define RT5616_DAC_R2_DAC_R_VOL_MASK		(0x1 << 8)301#define RT5616_DAC_R2_DAC_R_VOL_SFT		8302 303/* DSP Path Control 1 (0x2d) */304#define RT5616_RXDP_SRC_MASK			(0x1 << 15)305#define RT5616_RXDP_SRC_SFT			15306#define RT5616_RXDP_SRC_NOR			(0x0 << 15)307#define RT5616_RXDP_SRC_DIV3			(0x1 << 15)308#define RT5616_TXDP_SRC_MASK			(0x1 << 14)309#define RT5616_TXDP_SRC_SFT			14310#define RT5616_TXDP_SRC_NOR			(0x0 << 14)311#define RT5616_TXDP_SRC_DIV3			(0x1 << 14)312 313/* DSP Path Control 2 (0x2e) */314#define RT5616_DAC_L2_SEL_MASK			(0x3 << 14)315#define RT5616_DAC_L2_SEL_SFT			14316#define RT5616_DAC_L2_SEL_IF2			(0x0 << 14)317#define RT5616_DAC_L2_SEL_IF3			(0x1 << 14)318#define RT5616_DAC_L2_SEL_TXDC			(0x2 << 14)319#define RT5616_DAC_L2_SEL_BASS			(0x3 << 14)320#define RT5616_DAC_R2_SEL_MASK			(0x3 << 12)321#define RT5616_DAC_R2_SEL_SFT			12322#define RT5616_DAC_R2_SEL_IF2			(0x0 << 12)323#define RT5616_DAC_R2_SEL_IF3			(0x1 << 12)324#define RT5616_DAC_R2_SEL_TXDC			(0x2 << 12)325#define RT5616_IF2_ADC_L_SEL_MASK		(0x1 << 11)326#define RT5616_IF2_ADC_L_SEL_SFT		11327#define RT5616_IF2_ADC_L_SEL_TXDP		(0x0 << 11)328#define RT5616_IF2_ADC_L_SEL_PASS		(0x1 << 11)329#define RT5616_IF2_ADC_R_SEL_MASK		(0x1 << 10)330#define RT5616_IF2_ADC_R_SEL_SFT		10331#define RT5616_IF2_ADC_R_SEL_TXDP		(0x0 << 10)332#define RT5616_IF2_ADC_R_SEL_PASS		(0x1 << 10)333#define RT5616_RXDC_SEL_MASK			(0x3 << 8)334#define RT5616_RXDC_SEL_SFT			8335#define RT5616_RXDC_SEL_NOR			(0x0 << 8)336#define RT5616_RXDC_SEL_L2R			(0x1 << 8)337#define RT5616_RXDC_SEL_R2L			(0x2 << 8)338#define RT5616_RXDC_SEL_SWAP			(0x3 << 8)339#define RT5616_RXDP_SEL_MASK			(0x3 << 6)340#define RT5616_RXDP_SEL_SFT			6341#define RT5616_RXDP_SEL_NOR			(0x0 << 6)342#define RT5616_RXDP_SEL_L2R			(0x1 << 6)343#define RT5616_RXDP_SEL_R2L			(0x2 << 6)344#define RT5616_RXDP_SEL_SWAP			(0x3 << 6)345#define RT5616_TXDC_SEL_MASK			(0x3 << 4)346#define RT5616_TXDC_SEL_SFT			4347#define RT5616_TXDC_SEL_NOR			(0x0 << 4)348#define RT5616_TXDC_SEL_L2R			(0x1 << 4)349#define RT5616_TXDC_SEL_R2L			(0x2 << 4)350#define RT5616_TXDC_SEL_SWAP			(0x3 << 4)351#define RT5616_TXDP_SEL_MASK			(0x3 << 2)352#define RT5616_TXDP_SEL_SFT			2353#define RT5616_TXDP_SEL_NOR			(0x0 << 2)354#define RT5616_TXDP_SEL_L2R			(0x1 << 2)355#define RT5616_TXDP_SEL_R2L			(0x2 << 2)356#define RT5616_TRXDP_SEL_SWAP			(0x3 << 2)357 358/* REC Left Mixer Control 1 (0x3b) */359#define RT5616_G_LN_L2_RM_L_MASK		(0x7 << 13)360#define RT5616_G_IN_L2_RM_L_SFT			13361#define RT5616_G_LN_L1_RM_L_MASK		(0x7 << 10)362#define RT5616_G_IN_L1_RM_L_SFT			10363#define RT5616_G_BST3_RM_L_MASK			(0x7 << 4)364#define RT5616_G_BST3_RM_L_SFT			4365#define RT5616_G_BST2_RM_L_MASK			(0x7 << 1)366#define RT5616_G_BST2_RM_L_SFT			1367 368/* REC Left Mixer Control 2 (0x3c) */369#define RT5616_G_BST1_RM_L_MASK			(0x7 << 13)370#define RT5616_G_BST1_RM_L_SFT			13371#define RT5616_G_OM_L_RM_L_MASK			(0x7 << 10)372#define RT5616_G_OM_L_RM_L_SFT			10373#define RT5616_M_IN2_L_RM_L			(0x1 << 6)374#define RT5616_M_IN2_L_RM_L_SFT			6375#define RT5616_M_IN1_L_RM_L			(0x1 << 5)376#define RT5616_M_IN1_L_RM_L_SFT			5377#define RT5616_M_BST3_RM_L			(0x1 << 3)378#define RT5616_M_BST3_RM_L_SFT			3379#define RT5616_M_BST2_RM_L			(0x1 << 2)380#define RT5616_M_BST2_RM_L_SFT			2381#define RT5616_M_BST1_RM_L			(0x1 << 1)382#define RT5616_M_BST1_RM_L_SFT			1383#define RT5616_M_OM_L_RM_L			(0x1)384#define RT5616_M_OM_L_RM_L_SFT			0385 386/* REC Right Mixer Control 1 (0x3d) */387#define RT5616_G_IN2_R_RM_R_MASK		(0x7 << 13)388#define RT5616_G_IN2_R_RM_R_SFT			13389#define RT5616_G_IN1_R_RM_R_MASK		(0x7 << 10)390#define RT5616_G_IN1_R_RM_R_SFT			10391#define RT5616_G_BST3_RM_R_MASK			(0x7 << 4)392#define RT5616_G_BST3_RM_R_SFT			4393#define RT5616_G_BST2_RM_R_MASK			(0x7 << 1)394#define RT5616_G_BST2_RM_R_SFT			1395 396/* REC Right Mixer Control 2 (0x3e) */397#define RT5616_G_BST1_RM_R_MASK			(0x7 << 13)398#define RT5616_G_BST1_RM_R_SFT			13399#define RT5616_G_OM_R_RM_R_MASK			(0x7 << 10)400#define RT5616_G_OM_R_RM_R_SFT			10401#define RT5616_M_IN2_R_RM_R			(0x1 << 6)402#define RT5616_M_IN2_R_RM_R_SFT			6403#define RT5616_M_IN1_R_RM_R			(0x1 << 5)404#define RT5616_M_IN1_R_RM_R_SFT			5405#define RT5616_M_BST3_RM_R			(0x1 << 3)406#define RT5616_M_BST3_RM_R_SFT			3407#define RT5616_M_BST2_RM_R			(0x1 << 2)408#define RT5616_M_BST2_RM_R_SFT			2409#define RT5616_M_BST1_RM_R			(0x1 << 1)410#define RT5616_M_BST1_RM_R_SFT			1411#define RT5616_M_OM_R_RM_R			(0x1)412#define RT5616_M_OM_R_RM_R_SFT			0413 414/* HPMIX Control (0x45) */415#define RT5616_M_DAC1_HM			(0x1 << 14)416#define RT5616_M_DAC1_HM_SFT			14417#define RT5616_M_HPVOL_HM			(0x1 << 13)418#define RT5616_M_HPVOL_HM_SFT			13419#define RT5616_G_HPOMIX_MASK			(0x1 << 12)420#define RT5616_G_HPOMIX_SFT			12421 422/* SPK Left Mixer Control (0x46) */423#define RT5616_G_RM_L_SM_L_MASK			(0x3 << 14)424#define RT5616_G_RM_L_SM_L_SFT			14425#define RT5616_G_IN_L_SM_L_MASK			(0x3 << 12)426#define RT5616_G_IN_L_SM_L_SFT			12427#define RT5616_G_DAC_L1_SM_L_MASK		(0x3 << 10)428#define RT5616_G_DAC_L1_SM_L_SFT		10429#define RT5616_G_DAC_L2_SM_L_MASK		(0x3 << 8)430#define RT5616_G_DAC_L2_SM_L_SFT		8431#define RT5616_G_OM_L_SM_L_MASK			(0x3 << 6)432#define RT5616_G_OM_L_SM_L_SFT			6433#define RT5616_M_RM_L_SM_L			(0x1 << 5)434#define RT5616_M_RM_L_SM_L_SFT			5435#define RT5616_M_IN_L_SM_L			(0x1 << 4)436#define RT5616_M_IN_L_SM_L_SFT			4437#define RT5616_M_DAC_L1_SM_L			(0x1 << 3)438#define RT5616_M_DAC_L1_SM_L_SFT		3439#define RT5616_M_DAC_L2_SM_L			(0x1 << 2)440#define RT5616_M_DAC_L2_SM_L_SFT		2441#define RT5616_M_OM_L_SM_L			(0x1 << 1)442#define RT5616_M_OM_L_SM_L_SFT			1443 444/* SPK Right Mixer Control (0x47) */445#define RT5616_G_RM_R_SM_R_MASK			(0x3 << 14)446#define RT5616_G_RM_R_SM_R_SFT			14447#define RT5616_G_IN_R_SM_R_MASK			(0x3 << 12)448#define RT5616_G_IN_R_SM_R_SFT			12449#define RT5616_G_DAC_R1_SM_R_MASK		(0x3 << 10)450#define RT5616_G_DAC_R1_SM_R_SFT		10451#define RT5616_G_DAC_R2_SM_R_MASK		(0x3 << 8)452#define RT5616_G_DAC_R2_SM_R_SFT		8453#define RT5616_G_OM_R_SM_R_MASK			(0x3 << 6)454#define RT5616_G_OM_R_SM_R_SFT			6455#define RT5616_M_RM_R_SM_R			(0x1 << 5)456#define RT5616_M_RM_R_SM_R_SFT			5457#define RT5616_M_IN_R_SM_R			(0x1 << 4)458#define RT5616_M_IN_R_SM_R_SFT			4459#define RT5616_M_DAC_R1_SM_R			(0x1 << 3)460#define RT5616_M_DAC_R1_SM_R_SFT		3461#define RT5616_M_DAC_R2_SM_R			(0x1 << 2)462#define RT5616_M_DAC_R2_SM_R_SFT		2463#define RT5616_M_OM_R_SM_R			(0x1 << 1)464#define RT5616_M_OM_R_SM_R_SFT			1465 466/* SPOLMIX Control (0x48) */467#define RT5616_M_DAC_R1_SPM_L			(0x1 << 15)468#define RT5616_M_DAC_R1_SPM_L_SFT		15469#define RT5616_M_DAC_L1_SPM_L			(0x1 << 14)470#define RT5616_M_DAC_L1_SPM_L_SFT		14471#define RT5616_M_SV_R_SPM_L			(0x1 << 13)472#define RT5616_M_SV_R_SPM_L_SFT			13473#define RT5616_M_SV_L_SPM_L			(0x1 << 12)474#define RT5616_M_SV_L_SPM_L_SFT			12475#define RT5616_M_BST1_SPM_L			(0x1 << 11)476#define RT5616_M_BST1_SPM_L_SFT			11477 478/* SPORMIX Control (0x49) */479#define RT5616_M_DAC_R1_SPM_R			(0x1 << 13)480#define RT5616_M_DAC_R1_SPM_R_SFT		13481#define RT5616_M_SV_R_SPM_R			(0x1 << 12)482#define RT5616_M_SV_R_SPM_R_SFT			12483#define RT5616_M_BST1_SPM_R			(0x1 << 11)484#define RT5616_M_BST1_SPM_R_SFT			11485 486/* SPOLMIX / SPORMIX Ratio Control (0x4a) */487#define RT5616_SPO_CLSD_RATIO_MASK		(0x7)488#define RT5616_SPO_CLSD_RATIO_SFT		0489 490/* Mono Output Mixer Control (0x4c) */491#define RT5616_M_DAC_R2_MM			(0x1 << 15)492#define RT5616_M_DAC_R2_MM_SFT			15493#define RT5616_M_DAC_L2_MM			(0x1 << 14)494#define RT5616_M_DAC_L2_MM_SFT			14495#define RT5616_M_OV_R_MM			(0x1 << 13)496#define RT5616_M_OV_R_MM_SFT			13497#define RT5616_M_OV_L_MM			(0x1 << 12)498#define RT5616_M_OV_L_MM_SFT			12499#define RT5616_M_BST1_MM			(0x1 << 11)500#define RT5616_M_BST1_MM_SFT			11501#define RT5616_G_MONOMIX_MASK			(0x1 << 10)502#define RT5616_G_MONOMIX_SFT			10503 504/* Output Left Mixer Control 1 (0x4d) */505#define RT5616_G_BST2_OM_L_MASK			(0x7 << 10)506#define RT5616_G_BST2_OM_L_SFT			10507#define RT5616_G_BST1_OM_L_MASK			(0x7 << 7)508#define RT5616_G_BST1_OM_L_SFT			7509#define RT5616_G_IN1_L_OM_L_MASK		(0x7 << 4)510#define RT5616_G_IN1_L_OM_L_SFT			4511#define RT5616_G_RM_L_OM_L_MASK			(0x7 << 1)512#define RT5616_G_RM_L_OM_L_SFT			1513 514/* Output Left Mixer Control 2 (0x4e) */515#define RT5616_G_DAC_L1_OM_L_MASK		(0x7 << 7)516#define RT5616_G_DAC_L1_OM_L_SFT		7517#define RT5616_G_IN2_L_OM_L_MASK		(0x7 << 4)518#define RT5616_G_IN2_L_OM_L_SFT			4519 520/* Output Left Mixer Control 3 (0x4f) */521#define RT5616_M_IN2_L_OM_L			(0x1 << 9)522#define RT5616_M_IN2_L_OM_L_SFT			9523#define RT5616_M_BST2_OM_L			(0x1 << 6)524#define RT5616_M_BST2_OM_L_SFT			6525#define RT5616_M_BST1_OM_L			(0x1 << 5)526#define RT5616_M_BST1_OM_L_SFT			5527#define RT5616_M_IN1_L_OM_L			(0x1 << 4)528#define RT5616_M_IN1_L_OM_L_SFT			4529#define RT5616_M_RM_L_OM_L			(0x1 << 3)530#define RT5616_M_RM_L_OM_L_SFT			3531#define RT5616_M_DAC_L1_OM_L			(0x1)532#define RT5616_M_DAC_L1_OM_L_SFT		0533 534/* Output Right Mixer Control 1 (0x50) */535#define RT5616_G_BST2_OM_R_MASK			(0x7 << 10)536#define RT5616_G_BST2_OM_R_SFT			10537#define RT5616_G_BST1_OM_R_MASK			(0x7 << 7)538#define RT5616_G_BST1_OM_R_SFT			7539#define RT5616_G_IN1_R_OM_R_MASK		(0x7 << 4)540#define RT5616_G_IN1_R_OM_R_SFT			4541#define RT5616_G_RM_R_OM_R_MASK			(0x7 << 1)542#define RT5616_G_RM_R_OM_R_SFT			1543 544/* Output Right Mixer Control 2 (0x51) */545#define RT5616_G_DAC_R1_OM_R_MASK		(0x7 << 7)546#define RT5616_G_DAC_R1_OM_R_SFT		7547#define RT5616_G_IN2_R_OM_R_MASK		(0x7 << 4)548#define RT5616_G_IN2_R_OM_R_SFT			4549 550/* Output Right Mixer Control 3 (0x52) */551#define RT5616_M_IN2_R_OM_R			(0x1 << 9)552#define RT5616_M_IN2_R_OM_R_SFT			9553#define RT5616_M_BST2_OM_R			(0x1 << 6)554#define RT5616_M_BST2_OM_R_SFT			6555#define RT5616_M_BST1_OM_R			(0x1 << 5)556#define RT5616_M_BST1_OM_R_SFT			5557#define RT5616_M_IN1_R_OM_R			(0x1 << 4)558#define RT5616_M_IN1_R_OM_R_SFT			4559#define RT5616_M_RM_R_OM_R			(0x1 << 3)560#define RT5616_M_RM_R_OM_R_SFT			3561#define RT5616_M_DAC_R1_OM_R			(0x1)562#define RT5616_M_DAC_R1_OM_R_SFT		0563 564/* LOUT Mixer Control (0x53) */565#define RT5616_M_DAC_L1_LM			(0x1 << 15)566#define RT5616_M_DAC_L1_LM_SFT			15567#define RT5616_M_DAC_R1_LM			(0x1 << 14)568#define RT5616_M_DAC_R1_LM_SFT			14569#define RT5616_M_OV_L_LM			(0x1 << 13)570#define RT5616_M_OV_L_LM_SFT			13571#define RT5616_M_OV_R_LM			(0x1 << 12)572#define RT5616_M_OV_R_LM_SFT			12573#define RT5616_G_LOUTMIX_MASK			(0x1 << 11)574#define RT5616_G_LOUTMIX_SFT			11575 576/* Power Management for Digital 1 (0x61) */577#define RT5616_PWR_I2S1				(0x1 << 15)578#define RT5616_PWR_I2S1_BIT			15579#define RT5616_PWR_I2S2				(0x1 << 14)580#define RT5616_PWR_I2S2_BIT			14581#define RT5616_PWR_DAC_L1			(0x1 << 12)582#define RT5616_PWR_DAC_L1_BIT			12583#define RT5616_PWR_DAC_R1			(0x1 << 11)584#define RT5616_PWR_DAC_R1_BIT			11585#define RT5616_PWR_ADC_L			(0x1 << 2)586#define RT5616_PWR_ADC_L_BIT			2587#define RT5616_PWR_ADC_R			(0x1 << 1)588#define RT5616_PWR_ADC_R_BIT			1589 590/* Power Management for Digital 2 (0x62) */591#define RT5616_PWR_ADC_STO1_F			(0x1 << 15)592#define RT5616_PWR_ADC_STO1_F_BIT		15593#define RT5616_PWR_DAC_STO1_F			(0x1 << 11)594#define RT5616_PWR_DAC_STO1_F_BIT		11595 596/* Power Management for Analog 1 (0x63) */597#define RT5616_PWR_VREF1			(0x1 << 15)598#define RT5616_PWR_VREF1_BIT			15599#define RT5616_PWR_FV1				(0x1 << 14)600#define RT5616_PWR_FV1_BIT			14601#define RT5616_PWR_MB				(0x1 << 13)602#define RT5616_PWR_MB_BIT			13603#define RT5616_PWR_LM				(0x1 << 12)604#define RT5616_PWR_LM_BIT			12605#define RT5616_PWR_BG				(0x1 << 11)606#define RT5616_PWR_BG_BIT			11607#define RT5616_PWR_HP_L				(0x1 << 7)608#define RT5616_PWR_HP_L_BIT			7609#define RT5616_PWR_HP_R				(0x1 << 6)610#define RT5616_PWR_HP_R_BIT			6611#define RT5616_PWR_HA				(0x1 << 5)612#define RT5616_PWR_HA_BIT			5613#define RT5616_PWR_VREF2			(0x1 << 4)614#define RT5616_PWR_VREF2_BIT			4615#define RT5616_PWR_FV2				(0x1 << 3)616#define RT5616_PWR_FV2_BIT			3617#define RT5616_PWR_LDO				(0x1 << 2)618#define RT5616_PWR_LDO_BIT			2619#define RT5616_PWR_LDO_DVO_MASK			(0x3)620#define RT5616_PWR_LDO_DVO_1_0V			0621#define RT5616_PWR_LDO_DVO_1_1V			1622#define RT5616_PWR_LDO_DVO_1_2V			2623#define RT5616_PWR_LDO_DVO_1_3V			3624 625/* Power Management for Analog 2 (0x64) */626#define RT5616_PWR_BST1				(0x1 << 15)627#define RT5616_PWR_BST1_BIT			15628#define RT5616_PWR_BST2				(0x1 << 14)629#define RT5616_PWR_BST2_BIT			14630#define RT5616_PWR_MB1				(0x1 << 11)631#define RT5616_PWR_MB1_BIT			11632#define RT5616_PWR_PLL				(0x1 << 9)633#define RT5616_PWR_PLL_BIT			9634#define RT5616_PWR_BST1_OP2			(0x1 << 5)635#define RT5616_PWR_BST1_OP2_BIT			5636#define RT5616_PWR_BST2_OP2			(0x1 << 4)637#define RT5616_PWR_BST2_OP2_BIT			4638#define RT5616_PWR_BST3_OP2			(0x1 << 3)639#define RT5616_PWR_BST3_OP2_BIT			3640#define RT5616_PWR_JD_M				(0x1 << 2)641#define RT5616_PWM_JD_M_BIT			2642#define RT5616_PWR_JD2				(0x1 << 1)643#define RT5616_PWM_JD2_BIT			1644#define RT5616_PWR_JD3				(0x1)645#define RT5616_PWM_JD3_BIT			0646 647/* Power Management for Mixer (0x65) */648#define RT5616_PWR_OM_L				(0x1 << 15)649#define RT5616_PWR_OM_L_BIT			15650#define RT5616_PWR_OM_R				(0x1 << 14)651#define RT5616_PWR_OM_R_BIT			14652#define RT5616_PWR_RM_L				(0x1 << 11)653#define RT5616_PWR_RM_L_BIT			11654#define RT5616_PWR_RM_R				(0x1 << 10)655#define RT5616_PWR_RM_R_BIT			10656 657/* Power Management for Volume (0x66) */658#define RT5616_PWR_OV_L				(0x1 << 13)659#define RT5616_PWR_OV_L_BIT			13660#define RT5616_PWR_OV_R				(0x1 << 12)661#define RT5616_PWR_OV_R_BIT			12662#define RT5616_PWR_HV_L				(0x1 << 11)663#define RT5616_PWR_HV_L_BIT			11664#define RT5616_PWR_HV_R				(0x1 << 10)665#define RT5616_PWR_HV_R_BIT			10666#define RT5616_PWR_IN1_L			(0x1 << 9)667#define RT5616_PWR_IN1_L_BIT			9668#define RT5616_PWR_IN1_R			(0x1 << 8)669#define RT5616_PWR_IN1_R_BIT			8670#define RT5616_PWR_IN2_L			(0x1 << 7)671#define RT5616_PWR_IN2_L_BIT			7672#define RT5616_PWR_IN2_R			(0x1 << 6)673#define RT5616_PWR_IN2_R_BIT			6674 675/* I2S1/2/3 Audio Serial Data Port Control (0x70 0x71) */676#define RT5616_I2S_MS_MASK			(0x1 << 15)677#define RT5616_I2S_MS_SFT			15678#define RT5616_I2S_MS_M				(0x0 << 15)679#define RT5616_I2S_MS_S				(0x1 << 15)680#define RT5616_I2S_O_CP_MASK			(0x3 << 10)681#define RT5616_I2S_O_CP_SFT			10682#define RT5616_I2S_O_CP_OFF			(0x0 << 10)683#define RT5616_I2S_O_CP_U_LAW			(0x1 << 10)684#define RT5616_I2S_O_CP_A_LAW			(0x2 << 10)685#define RT5616_I2S_I_CP_MASK			(0x3 << 8)686#define RT5616_I2S_I_CP_SFT			8687#define RT5616_I2S_I_CP_OFF			(0x0 << 8)688#define RT5616_I2S_I_CP_U_LAW			(0x1 << 8)689#define RT5616_I2S_I_CP_A_LAW			(0x2 << 8)690#define RT5616_I2S_BP_MASK			(0x1 << 7)691#define RT5616_I2S_BP_SFT			7692#define RT5616_I2S_BP_NOR			(0x0 << 7)693#define RT5616_I2S_BP_INV			(0x1 << 7)694#define RT5616_I2S_DL_MASK			(0x3 << 2)695#define RT5616_I2S_DL_SFT			2696#define RT5616_I2S_DL_16			(0x0 << 2)697#define RT5616_I2S_DL_20			(0x1 << 2)698#define RT5616_I2S_DL_24			(0x2 << 2)699#define RT5616_I2S_DL_8				(0x3 << 2)700#define RT5616_I2S_DF_MASK			(0x3)701#define RT5616_I2S_DF_SFT			0702#define RT5616_I2S_DF_I2S			(0x0)703#define RT5616_I2S_DF_LEFT			(0x1)704#define RT5616_I2S_DF_PCM_A			(0x2)705#define RT5616_I2S_DF_PCM_B			(0x3)706 707/* ADC/DAC Clock Control 1 (0x73) */708#define RT5616_I2S_PD1_MASK			(0x7 << 12)709#define RT5616_I2S_PD1_SFT			12710#define RT5616_I2S_PD1_1			(0x0 << 12)711#define RT5616_I2S_PD1_2			(0x1 << 12)712#define RT5616_I2S_PD1_3			(0x2 << 12)713#define RT5616_I2S_PD1_4			(0x3 << 12)714#define RT5616_I2S_PD1_6			(0x4 << 12)715#define RT5616_I2S_PD1_8			(0x5 << 12)716#define RT5616_I2S_PD1_12			(0x6 << 12)717#define RT5616_I2S_PD1_16			(0x7 << 12)718#define RT5616_I2S_BCLK_MS2_MASK		(0x1 << 11)719#define RT5616_DAC_OSR_MASK			(0x3 << 2)720#define RT5616_DAC_OSR_SFT			2721#define RT5616_DAC_OSR_128			(0x0 << 2)722#define RT5616_DAC_OSR_64			(0x1 << 2)723#define RT5616_DAC_OSR_32			(0x2 << 2)724#define RT5616_DAC_OSR_128_3			(0x3 << 2)725#define RT5616_ADC_OSR_MASK			(0x3)726#define RT5616_ADC_OSR_SFT			0727#define RT5616_ADC_OSR_128			(0x0)728#define RT5616_ADC_OSR_64			(0x1)729#define RT5616_ADC_OSR_32			(0x2)730#define RT5616_ADC_OSR_128_3			(0x3)731 732/* ADC/DAC Clock Control 2 (0x74) */733#define RT5616_DAHPF_EN				(0x1 << 11)734#define RT5616_DAHPF_EN_SFT			11735#define RT5616_ADHPF_EN				(0x1 << 10)736#define RT5616_ADHPF_EN_SFT			10737 738/* TDM Control 1 (0x77) */739#define RT5616_TDM_INTEL_SEL_MASK		(0x1 << 15)740#define RT5616_TDM_INTEL_SEL_SFT		15741#define RT5616_TDM_INTEL_SEL_64			(0x0 << 15)742#define RT5616_TDM_INTEL_SEL_50			(0x1 << 15)743#define RT5616_TDM_MODE_SEL_MASK		(0x1 << 14)744#define RT5616_TDM_MODE_SEL_SFT			14745#define RT5616_TDM_MODE_SEL_NOR			(0x0 << 14)746#define RT5616_TDM_MODE_SEL_TDM			(0x1 << 14)747#define RT5616_TDM_CH_NUM_SEL_MASK		(0x3 << 12)748#define RT5616_TDM_CH_NUM_SEL_SFT		12749#define RT5616_TDM_CH_NUM_SEL_2			(0x0 << 12)750#define RT5616_TDM_CH_NUM_SEL_4			(0x1 << 12)751#define RT5616_TDM_CH_NUM_SEL_6			(0x2 << 12)752#define RT5616_TDM_CH_NUM_SEL_8			(0x3 << 12)753#define RT5616_TDM_CH_LEN_SEL_MASK		(0x3 << 10)754#define RT5616_TDM_CH_LEN_SEL_SFT		10755#define RT5616_TDM_CH_LEN_SEL_16		(0x0 << 10)756#define RT5616_TDM_CH_LEN_SEL_20		(0x1 << 10)757#define RT5616_TDM_CH_LEN_SEL_24		(0x2 << 10)758#define RT5616_TDM_CH_LEN_SEL_32		(0x3 << 10)759#define RT5616_TDM_ADC_SEL_MASK			(0x1 << 9)760#define RT5616_TDM_ADC_SEL_SFT			9761#define RT5616_TDM_ADC_SEL_NOR			(0x0 << 9)762#define RT5616_TDM_ADC_SEL_SWAP			(0x1 << 9)763#define RT5616_TDM_ADC_START_SEL_MASK		(0x1 << 8)764#define RT5616_TDM_ADC_START_SEL_SFT		8765#define RT5616_TDM_ADC_START_SEL_SL0		(0x0 << 8)766#define RT5616_TDM_ADC_START_SEL_SL4		(0x1 << 8)767#define RT5616_TDM_I2S_CH2_SEL_MASK		(0x3 << 6)768#define RT5616_TDM_I2S_CH2_SEL_SFT		6769#define RT5616_TDM_I2S_CH2_SEL_LR		(0x0 << 6)770#define RT5616_TDM_I2S_CH2_SEL_RL		(0x1 << 6)771#define RT5616_TDM_I2S_CH2_SEL_LL		(0x2 << 6)772#define RT5616_TDM_I2S_CH2_SEL_RR		(0x3 << 6)773#define RT5616_TDM_I2S_CH4_SEL_MASK		(0x3 << 4)774#define RT5616_TDM_I2S_CH4_SEL_SFT		4775#define RT5616_TDM_I2S_CH4_SEL_LR		(0x0 << 4)776#define RT5616_TDM_I2S_CH4_SEL_RL		(0x1 << 4)777#define RT5616_TDM_I2S_CH4_SEL_LL		(0x2 << 4)778#define RT5616_TDM_I2S_CH4_SEL_RR		(0x3 << 4)779#define RT5616_TDM_I2S_CH6_SEL_MASK		(0x3 << 2)780#define RT5616_TDM_I2S_CH6_SEL_SFT		2781#define RT5616_TDM_I2S_CH6_SEL_LR		(0x0 << 2)782#define RT5616_TDM_I2S_CH6_SEL_RL		(0x1 << 2)783#define RT5616_TDM_I2S_CH6_SEL_LL		(0x2 << 2)784#define RT5616_TDM_I2S_CH6_SEL_RR		(0x3 << 2)785#define RT5616_TDM_I2S_CH8_SEL_MASK		(0x3)786#define RT5616_TDM_I2S_CH8_SEL_SFT		0787#define RT5616_TDM_I2S_CH8_SEL_LR		(0x0)788#define RT5616_TDM_I2S_CH8_SEL_RL		(0x1)789#define RT5616_TDM_I2S_CH8_SEL_LL		(0x2)790#define RT5616_TDM_I2S_CH8_SEL_RR		(0x3)791 792/* TDM Control 2 (0x78) */793#define RT5616_TDM_LRCK_POL_SEL_MASK		(0x1 << 15)794#define RT5616_TDM_LRCK_POL_SEL_SFT		15795#define RT5616_TDM_LRCK_POL_SEL_NOR		(0x0 << 15)796#define RT5616_TDM_LRCK_POL_SEL_INV		(0x1 << 15)797#define RT5616_TDM_CH_VAL_SEL_MASK		(0x1 << 14)798#define RT5616_TDM_CH_VAL_SEL_SFT		14799#define RT5616_TDM_CH_VAL_SEL_CH01		(0x0 << 14)800#define RT5616_TDM_CH_VAL_SEL_CH0123		(0x1 << 14)801#define RT5616_TDM_CH_VAL_EN			(0x1 << 13)802#define RT5616_TDM_CH_VAL_SFT			13803#define RT5616_TDM_LPBK_EN			(0x1 << 12)804#define RT5616_TDM_LPBK_SFT			12805#define RT5616_TDM_LRCK_PULSE_SEL_MASK		(0x1 << 11)806#define RT5616_TDM_LRCK_PULSE_SEL_SFT		11807#define RT5616_TDM_LRCK_PULSE_SEL_BCLK		(0x0 << 11)808#define RT5616_TDM_LRCK_PULSE_SEL_CH		(0x1 << 11)809#define RT5616_TDM_END_EDGE_SEL_MASK		(0x1 << 10)810#define RT5616_TDM_END_EDGE_SEL_SFT		10811#define RT5616_TDM_END_EDGE_SEL_POS		(0x0 << 10)812#define RT5616_TDM_END_EDGE_SEL_NEG		(0x1 << 10)813#define RT5616_TDM_END_EDGE_EN			(0x1 << 9)814#define RT5616_TDM_END_EDGE_EN_SFT		9815#define RT5616_TDM_TRAN_EDGE_SEL_MASK		(0x1 << 8)816#define RT5616_TDM_TRAN_EDGE_SEL_SFT		8817#define RT5616_TDM_TRAN_EDGE_SEL_POS		(0x0 << 8)818#define RT5616_TDM_TRAN_EDGE_SEL_NEG		(0x1 << 8)819#define RT5616_M_TDM2_L				(0x1 << 7)820#define RT5616_M_TDM2_L_SFT			7821#define RT5616_M_TDM2_R				(0x1 << 6)822#define RT5616_M_TDM2_R_SFT			6823#define RT5616_M_TDM4_L				(0x1 << 5)824#define RT5616_M_TDM4_L_SFT			5825#define RT5616_M_TDM4_R				(0x1 << 4)826#define RT5616_M_TDM4_R_SFT			4827 828/* Global Clock Control (0x80) */829#define RT5616_SCLK_SRC_MASK			(0x3 << 14)830#define RT5616_SCLK_SRC_SFT			14831#define RT5616_SCLK_SRC_MCLK			(0x0 << 14)832#define RT5616_SCLK_SRC_PLL1			(0x1 << 14)833#define RT5616_PLL1_SRC_MASK			(0x3 << 12)834#define RT5616_PLL1_SRC_SFT			12835#define RT5616_PLL1_SRC_MCLK			(0x0 << 12)836#define RT5616_PLL1_SRC_BCLK1			(0x1 << 12)837#define RT5616_PLL1_SRC_BCLK2			(0x2 << 12)838#define RT5616_PLL1_PD_MASK			(0x1 << 3)839#define RT5616_PLL1_PD_SFT			3840#define RT5616_PLL1_PD_1			(0x0 << 3)841#define RT5616_PLL1_PD_2			(0x1 << 3)842 843#define RT5616_PLL_INP_MAX			40000000844#define RT5616_PLL_INP_MIN			256000845/* PLL M/N/K Code Control 1 (0x81) */846#define RT5616_PLL_N_MAX			0x1ff847#define RT5616_PLL_N_MASK			(RT5616_PLL_N_MAX << 7)848#define RT5616_PLL_N_SFT			7849#define RT5616_PLL_K_MAX			0x1f850#define RT5616_PLL_K_MASK			(RT5616_PLL_K_MAX)851#define RT5616_PLL_K_SFT			0852 853/* PLL M/N/K Code Control 2 (0x82) */854#define RT5616_PLL_M_MAX			0xf855#define RT5616_PLL_M_MASK			(RT5616_PLL_M_MAX << 12)856#define RT5616_PLL_M_SFT			12857#define RT5616_PLL_M_BP				(0x1 << 11)858#define RT5616_PLL_M_BP_SFT			11859 860/* PLL tracking mode 1 (0x83) */861#define RT5616_STO1_T_MASK			(0x1 << 15)862#define RT5616_STO1_T_SFT			15863#define RT5616_STO1_T_SCLK			(0x0 << 15)864#define RT5616_STO1_T_LRCK1			(0x1 << 15)865#define RT5616_STO2_T_MASK			(0x1 << 12)866#define RT5616_STO2_T_SFT			12867#define RT5616_STO2_T_I2S2			(0x0 << 12)868#define RT5616_STO2_T_LRCK2			(0x1 << 12)869#define RT5616_ASRC2_REF_MASK			(0x1 << 11)870#define RT5616_ASRC2_REF_SFT			11871#define RT5616_ASRC2_REF_LRCK2			(0x0 << 11)872#define RT5616_ASRC2_REF_LRCK1			(0x1 << 11)873#define RT5616_DMIC_1_M_MASK			(0x1 << 9)874#define RT5616_DMIC_1_M_SFT			9875#define RT5616_DMIC_1_M_NOR			(0x0 << 9)876#define RT5616_DMIC_1_M_ASYN			(0x1 << 9)877 878/* PLL tracking mode 2 (0x84) */879#define RT5616_STO1_ASRC_EN			(0x1 << 15)880#define RT5616_STO1_ASRC_EN_SFT			15881#define RT5616_STO2_ASRC_EN			(0x1 << 14)882#define RT5616_STO2_ASRC_EN_SFT			14883#define RT5616_STO1_DAC_M_MASK			(0x1 << 13)884#define RT5616_STO1_DAC_M_SFT			13885#define RT5616_STO1_DAC_M_NOR			(0x0 << 13)886#define RT5616_STO1_DAC_M_ASRC			(0x1 << 13)887#define RT5616_STO2_DAC_M_MASK			(0x1 << 12)888#define RT5616_STO2_DAC_M_SFT			12889#define RT5616_STO2_DAC_M_NOR			(0x0 << 12)890#define RT5616_STO2_DAC_M_ASRC			(0x1 << 12)891#define RT5616_ADC_M_MASK			(0x1 << 11)892#define RT5616_ADC_M_SFT			11893#define RT5616_ADC_M_NOR			(0x0 << 11)894#define RT5616_ADC_M_ASRC			(0x1 << 11)895#define RT5616_I2S1_R_D_MASK			(0x1 << 4)896#define RT5616_I2S1_R_D_SFT			4897#define RT5616_I2S1_R_D_DIS			(0x0 << 4)898#define RT5616_I2S1_R_D_EN			(0x1 << 4)899#define RT5616_I2S2_R_D_MASK			(0x1 << 3)900#define RT5616_I2S2_R_D_SFT			3901#define RT5616_I2S2_R_D_DIS			(0x0 << 3)902#define RT5616_I2S2_R_D_EN			(0x1 << 3)903#define RT5616_PRE_SCLK_MASK			(0x3)904#define RT5616_PRE_SCLK_SFT			0905#define RT5616_PRE_SCLK_512			(0x0)906#define RT5616_PRE_SCLK_1024			(0x1)907#define RT5616_PRE_SCLK_2048			(0x2)908 909/* PLL tracking mode 3 (0x85) */910#define RT5616_I2S1_RATE_MASK			(0xf << 12)911#define RT5616_I2S1_RATE_SFT			12912#define RT5616_I2S2_RATE_MASK			(0xf << 8)913#define RT5616_I2S2_RATE_SFT			8914#define RT5616_G_ASRC_LP_MASK			(0x1 << 3)915#define RT5616_G_ASRC_LP_SFT			3916#define RT5616_ASRC_LP_F_M			(0x1 << 2)917#define RT5616_ASRC_LP_F_SFT			2918#define RT5616_ASRC_LP_F_NOR			(0x0 << 2)919#define RT5616_ASRC_LP_F_SB			(0x1 << 2)920#define RT5616_FTK_PH_DET_MASK			(0x3)921#define RT5616_FTK_PH_DET_SFT			0922#define RT5616_FTK_PH_DET_DIV1			(0x0)923#define RT5616_FTK_PH_DET_DIV2			(0x1)924#define RT5616_FTK_PH_DET_DIV4			(0x2)925#define RT5616_FTK_PH_DET_DIV8			(0x3)926 927/*PLL tracking mode 6 (0x89) */928#define RT5616_I2S1_PD_MASK			(0x7 << 12)929#define RT5616_I2S1_PD_SFT			12930#define RT5616_I2S2_PD_MASK			(0x7 << 8)931#define RT5616_I2S2_PD_SFT			8932 933/*PLL tracking mode 7 (0x8a) */934#define RT5616_FSI1_RATE_MASK			(0xf << 12)935#define RT5616_FSI1_RATE_SFT			12936#define RT5616_FSI2_RATE_MASK			(0xf << 8)937#define RT5616_FSI2_RATE_SFT			8938 939/* HPOUT Over Current Detection (0x8b) */940#define RT5616_HP_OVCD_MASK			(0x1 << 10)941#define RT5616_HP_OVCD_SFT			10942#define RT5616_HP_OVCD_DIS			(0x0 << 10)943#define RT5616_HP_OVCD_EN			(0x1 << 10)944#define RT5616_HP_OC_TH_MASK			(0x3 << 8)945#define RT5616_HP_OC_TH_SFT			8946#define RT5616_HP_OC_TH_90			(0x0 << 8)947#define RT5616_HP_OC_TH_105			(0x1 << 8)948#define RT5616_HP_OC_TH_120			(0x2 << 8)949#define RT5616_HP_OC_TH_135			(0x3 << 8)950 951/* Depop Mode Control 1 (0x8e) */952#define RT5616_SMT_TRIG_MASK			(0x1 << 15)953#define RT5616_SMT_TRIG_SFT			15954#define RT5616_SMT_TRIG_DIS			(0x0 << 15)955#define RT5616_SMT_TRIG_EN			(0x1 << 15)956#define RT5616_HP_L_SMT_MASK			(0x1 << 9)957#define RT5616_HP_L_SMT_SFT			9958#define RT5616_HP_L_SMT_DIS			(0x0 << 9)959#define RT5616_HP_L_SMT_EN			(0x1 << 9)960#define RT5616_HP_R_SMT_MASK			(0x1 << 8)961#define RT5616_HP_R_SMT_SFT			8962#define RT5616_HP_R_SMT_DIS			(0x0 << 8)963#define RT5616_HP_R_SMT_EN			(0x1 << 8)964#define RT5616_HP_CD_PD_MASK			(0x1 << 7)965#define RT5616_HP_CD_PD_SFT			7966#define RT5616_HP_CD_PD_DIS			(0x0 << 7)967#define RT5616_HP_CD_PD_EN			(0x1 << 7)968#define RT5616_RSTN_MASK			(0x1 << 6)969#define RT5616_RSTN_SFT				6970#define RT5616_RSTN_DIS				(0x0 << 6)971#define RT5616_RSTN_EN				(0x1 << 6)972#define RT5616_RSTP_MASK			(0x1 << 5)973#define RT5616_RSTP_SFT				5974#define RT5616_RSTP_DIS				(0x0 << 5)975#define RT5616_RSTP_EN				(0x1 << 5)976#define RT5616_HP_CO_MASK			(0x1 << 4)977#define RT5616_HP_CO_SFT			4978#define RT5616_HP_CO_DIS			(0x0 << 4)979#define RT5616_HP_CO_EN				(0x1 << 4)980#define RT5616_HP_CP_MASK			(0x1 << 3)981#define RT5616_HP_CP_SFT			3982#define RT5616_HP_CP_PD				(0x0 << 3)983#define RT5616_HP_CP_PU				(0x1 << 3)984#define RT5616_HP_SG_MASK			(0x1 << 2)985#define RT5616_HP_SG_SFT			2986#define RT5616_HP_SG_DIS			(0x0 << 2)987#define RT5616_HP_SG_EN				(0x1 << 2)988#define RT5616_HP_DP_MASK			(0x1 << 1)989#define RT5616_HP_DP_SFT			1990#define RT5616_HP_DP_PD				(0x0 << 1)991#define RT5616_HP_DP_PU				(0x1 << 1)992#define RT5616_HP_CB_MASK			(0x1)993#define RT5616_HP_CB_SFT			0994#define RT5616_HP_CB_PD				(0x0)995#define RT5616_HP_CB_PU				(0x1)996 997/* Depop Mode Control 2 (0x8f) */998#define RT5616_DEPOP_MASK			(0x1 << 13)999#define RT5616_DEPOP_SFT			131000#define RT5616_DEPOP_AUTO			(0x0 << 13)1001#define RT5616_DEPOP_MAN			(0x1 << 13)1002#define RT5616_RAMP_MASK			(0x1 << 12)1003#define RT5616_RAMP_SFT				121004#define RT5616_RAMP_DIS				(0x0 << 12)1005#define RT5616_RAMP_EN				(0x1 << 12)1006#define RT5616_BPS_MASK				(0x1 << 11)1007#define RT5616_BPS_SFT				111008#define RT5616_BPS_DIS				(0x0 << 11)1009#define RT5616_BPS_EN				(0x1 << 11)1010#define RT5616_FAST_UPDN_MASK			(0x1 << 10)1011#define RT5616_FAST_UPDN_SFT			101012#define RT5616_FAST_UPDN_DIS			(0x0 << 10)1013#define RT5616_FAST_UPDN_EN			(0x1 << 10)1014#define RT5616_MRES_MASK			(0x3 << 8)1015#define RT5616_MRES_SFT				81016#define RT5616_MRES_15MO			(0x0 << 8)1017#define RT5616_MRES_25MO			(0x1 << 8)1018#define RT5616_MRES_35MO			(0x2 << 8)1019#define RT5616_MRES_45MO			(0x3 << 8)1020#define RT5616_VLO_MASK				(0x1 << 7)1021#define RT5616_VLO_SFT				71022#define RT5616_VLO_3V				(0x0 << 7)1023#define RT5616_VLO_32V				(0x1 << 7)1024#define RT5616_DIG_DP_MASK			(0x1 << 6)1025#define RT5616_DIG_DP_SFT			61026#define RT5616_DIG_DP_DIS			(0x0 << 6)1027#define RT5616_DIG_DP_EN			(0x1 << 6)1028#define RT5616_DP_TH_MASK			(0x3 << 4)1029#define RT5616_DP_TH_SFT			41030 1031/* Depop Mode Control 3 (0x90) */1032#define RT5616_CP_SYS_MASK			(0x7 << 12)1033#define RT5616_CP_SYS_SFT			121034#define RT5616_CP_FQ1_MASK			(0x7 << 8)1035#define RT5616_CP_FQ1_SFT			81036#define RT5616_CP_FQ2_MASK			(0x7 << 4)1037#define RT5616_CP_FQ2_SFT			41038#define RT5616_CP_FQ3_MASK			(0x7)1039#define RT5616_CP_FQ3_SFT			01040#define RT5616_CP_FQ_1_5_KHZ			01041#define RT5616_CP_FQ_3_KHZ			11042#define RT5616_CP_FQ_6_KHZ			21043#define RT5616_CP_FQ_12_KHZ			31044#define RT5616_CP_FQ_24_KHZ			41045#define RT5616_CP_FQ_48_KHZ			51046#define RT5616_CP_FQ_96_KHZ			61047#define RT5616_CP_FQ_192_KHZ			71048 1049/* HPOUT charge pump (0x91) */1050#define RT5616_OSW_L_MASK			(0x1 << 11)1051#define RT5616_OSW_L_SFT			111052#define RT5616_OSW_L_DIS			(0x0 << 11)1053#define RT5616_OSW_L_EN				(0x1 << 11)1054#define RT5616_OSW_R_MASK			(0x1 << 10)1055#define RT5616_OSW_R_SFT			101056#define RT5616_OSW_R_DIS			(0x0 << 10)1057#define RT5616_OSW_R_EN				(0x1 << 10)1058#define RT5616_PM_HP_MASK			(0x3 << 8)1059#define RT5616_PM_HP_SFT			81060#define RT5616_PM_HP_LV				(0x0 << 8)1061#define RT5616_PM_HP_MV				(0x1 << 8)1062#define RT5616_PM_HP_HV				(0x2 << 8)1063#define RT5616_IB_HP_MASK			(0x3 << 6)1064#define RT5616_IB_HP_SFT			61065#define RT5616_IB_HP_125IL			(0x0 << 6)1066#define RT5616_IB_HP_25IL			(0x1 << 6)1067#define RT5616_IB_HP_5IL			(0x2 << 6)1068#define RT5616_IB_HP_1IL			(0x3 << 6)1069 1070/* Micbias Control (0x93) */1071#define RT5616_MIC1_BS_MASK			(0x1 << 15)1072#define RT5616_MIC1_BS_SFT			151073#define RT5616_MIC1_BS_9AV			(0x0 << 15)1074#define RT5616_MIC1_BS_75AV			(0x1 << 15)1075#define RT5616_MIC1_CLK_MASK			(0x1 << 13)1076#define RT5616_MIC1_CLK_SFT			131077#define RT5616_MIC1_CLK_DIS			(0x0 << 13)1078#define RT5616_MIC1_CLK_EN			(0x1 << 13)1079#define RT5616_MIC1_OVCD_MASK			(0x1 << 11)1080#define RT5616_MIC1_OVCD_SFT			111081#define RT5616_MIC1_OVCD_DIS			(0x0 << 11)1082#define RT5616_MIC1_OVCD_EN			(0x1 << 11)1083#define RT5616_MIC1_OVTH_MASK			(0x3 << 9)1084#define RT5616_MIC1_OVTH_SFT			91085#define RT5616_MIC1_OVTH_600UA			(0x0 << 9)1086#define RT5616_MIC1_OVTH_1500UA			(0x1 << 9)1087#define RT5616_MIC1_OVTH_2000UA			(0x2 << 9)1088#define RT5616_PWR_MB_MASK			(0x1 << 5)1089#define RT5616_PWR_MB_SFT			51090#define RT5616_PWR_MB_PD			(0x0 << 5)1091#define RT5616_PWR_MB_PU			(0x1 << 5)1092#define RT5616_PWR_CLK12M_MASK			(0x1 << 4)1093#define RT5616_PWR_CLK12M_SFT			41094#define RT5616_PWR_CLK12M_PD			(0x0 << 4)1095#define RT5616_PWR_CLK12M_PU			(0x1 << 4)1096 1097/* Analog JD Control 1 (0x94) */1098#define RT5616_JD2_CMP_MASK			(0x7 << 12)1099#define RT5616_JD2_CMP_SFT			121100#define RT5616_JD_PU				(0x1 << 11)1101#define RT5616_JD_PU_SFT			111102#define RT5616_JD_PD				(0x1 << 10)1103#define RT5616_JD_PD_SFT			101104#define RT5616_JD_MODE_SEL_MASK			(0x3 << 8)1105#define RT5616_JD_MODE_SEL_SFT			81106#define RT5616_JD_MODE_SEL_M0			(0x0 << 8)1107#define RT5616_JD_MODE_SEL_M1			(0x1 << 8)1108#define RT5616_JD_MODE_SEL_M2			(0x2 << 8)1109#define RT5616_JD_M_CMP				(0x7 << 4)1110#define RT5616_JD_M_CMP_SFT			41111#define RT5616_JD_M_PU				(0x1 << 3)1112#define RT5616_JD_M_PU_SFT			31113#define RT5616_JD_M_PD				(0x1 << 2)1114#define RT5616_JD_M_PD_SFT			21115#define RT5616_JD_M_MODE_SEL_MASK		(0x3)1116#define RT5616_JD_M_MODE_SEL_SFT		01117#define RT5616_JD_M_MODE_SEL_M0			(0x0)1118#define RT5616_JD_M_MODE_SEL_M1			(0x1)1119#define RT5616_JD_M_MODE_SEL_M2			(0x2)1120 1121/* Analog JD Control 2 (0x95) */1122#define RT5616_JD3_CMP_MASK			(0x7 << 12)1123#define RT5616_JD3_CMP_SFT			121124 1125/* EQ Control 1 (0xb0) */1126#define RT5616_EQ_SRC_MASK			(0x1 << 15)1127#define RT5616_EQ_SRC_SFT			151128#define RT5616_EQ_SRC_DAC			(0x0 << 15)1129#define RT5616_EQ_SRC_ADC			(0x1 << 15)1130#define RT5616_EQ_UPD				(0x1 << 14)1131#define RT5616_EQ_UPD_BIT			141132#define RT5616_EQ_CD_MASK			(0x1 << 13)1133#define RT5616_EQ_CD_SFT			131134#define RT5616_EQ_CD_DIS			(0x0 << 13)1135#define RT5616_EQ_CD_EN				(0x1 << 13)1136#define RT5616_EQ_DITH_MASK			(0x3 << 8)1137#define RT5616_EQ_DITH_SFT			81138#define RT5616_EQ_DITH_NOR			(0x0 << 8)1139#define RT5616_EQ_DITH_LSB			(0x1 << 8)1140#define RT5616_EQ_DITH_LSB_1			(0x2 << 8)1141#define RT5616_EQ_DITH_LSB_2			(0x3 << 8)1142#define RT5616_EQ_CD_F				(0x1 << 7)1143#define RT5616_EQ_CD_F_BIT			71144#define RT5616_EQ_STA_HP2			(0x1 << 6)1145#define RT5616_EQ_STA_HP2_BIT			61146#define RT5616_EQ_STA_HP1			(0x1 << 5)1147#define RT5616_EQ_STA_HP1_BIT			51148#define RT5616_EQ_STA_BP4			(0x1 << 4)1149#define RT5616_EQ_STA_BP4_BIT			41150#define RT5616_EQ_STA_BP3			(0x1 << 3)1151#define RT5616_EQ_STA_BP3_BIT			31152#define RT5616_EQ_STA_BP2			(0x1 << 2)1153#define RT5616_EQ_STA_BP2_BIT			21154#define RT5616_EQ_STA_BP1			(0x1 << 1)1155#define RT5616_EQ_STA_BP1_BIT			11156#define RT5616_EQ_STA_LP			(0x1)1157#define RT5616_EQ_STA_LP_BIT			01158 1159/* EQ Control 2 (0xb1) */1160#define RT5616_EQ_HPF1_M_MASK			(0x1 << 8)1161#define RT5616_EQ_HPF1_M_SFT			81162#define RT5616_EQ_HPF1_M_HI			(0x0 << 8)1163#define RT5616_EQ_HPF1_M_1ST			(0x1 << 8)1164#define RT5616_EQ_LPF1_M_MASK			(0x1 << 7)1165#define RT5616_EQ_LPF1_M_SFT			71166#define RT5616_EQ_LPF1_M_LO			(0x0 << 7)1167#define RT5616_EQ_LPF1_M_1ST			(0x1 << 7)1168#define RT5616_EQ_HPF2_MASK			(0x1 << 6)1169#define RT5616_EQ_HPF2_SFT			61170#define RT5616_EQ_HPF2_DIS			(0x0 << 6)1171#define RT5616_EQ_HPF2_EN			(0x1 << 6)1172#define RT5616_EQ_HPF1_MASK			(0x1 << 5)1173#define RT5616_EQ_HPF1_SFT			51174#define RT5616_EQ_HPF1_DIS			(0x0 << 5)1175#define RT5616_EQ_HPF1_EN			(0x1 << 5)1176#define RT5616_EQ_BPF4_MASK			(0x1 << 4)1177#define RT5616_EQ_BPF4_SFT			41178#define RT5616_EQ_BPF4_DIS			(0x0 << 4)1179#define RT5616_EQ_BPF4_EN			(0x1 << 4)1180#define RT5616_EQ_BPF3_MASK			(0x1 << 3)1181#define RT5616_EQ_BPF3_SFT			31182#define RT5616_EQ_BPF3_DIS			(0x0 << 3)1183#define RT5616_EQ_BPF3_EN			(0x1 << 3)1184#define RT5616_EQ_BPF2_MASK			(0x1 << 2)1185#define RT5616_EQ_BPF2_SFT			21186#define RT5616_EQ_BPF2_DIS			(0x0 << 2)1187#define RT5616_EQ_BPF2_EN			(0x1 << 2)1188#define RT5616_EQ_BPF1_MASK			(0x1 << 1)1189#define RT5616_EQ_BPF1_SFT			11190#define RT5616_EQ_BPF1_DIS			(0x0 << 1)1191#define RT5616_EQ_BPF1_EN			(0x1 << 1)1192#define RT5616_EQ_LPF_MASK			(0x1)1193#define RT5616_EQ_LPF_SFT			01194#define RT5616_EQ_LPF_DIS			(0x0)1195#define RT5616_EQ_LPF_EN			(0x1)1196#define RT5616_EQ_CTRL_MASK			(0x7f)1197 1198/* Memory Test (0xb2) */1199#define RT5616_MT_MASK				(0x1 << 15)1200#define RT5616_MT_SFT				151201#define RT5616_MT_DIS				(0x0 << 15)1202#define RT5616_MT_EN				(0x1 << 15)1203 1204/* DRC/AGC Control 1 (0xb4) */1205#define RT5616_DRC_AGC_P_MASK			(0x1 << 15)1206#define RT5616_DRC_AGC_P_SFT			151207#define RT5616_DRC_AGC_P_DAC			(0x0 << 15)1208#define RT5616_DRC_AGC_P_ADC			(0x1 << 15)1209#define RT5616_DRC_AGC_MASK			(0x1 << 14)1210#define RT5616_DRC_AGC_SFT			141211#define RT5616_DRC_AGC_DIS			(0x0 << 14)1212#define RT5616_DRC_AGC_EN			(0x1 << 14)1213#define RT5616_DRC_AGC_UPD			(0x1 << 13)1214#define RT5616_DRC_AGC_UPD_BIT			131215#define RT5616_DRC_AGC_AR_MASK			(0x1f << 8)1216#define RT5616_DRC_AGC_AR_SFT			81217#define RT5616_DRC_AGC_R_MASK			(0x7 << 5)1218#define RT5616_DRC_AGC_R_SFT			51219#define RT5616_DRC_AGC_R_48K			(0x1 << 5)1220#define RT5616_DRC_AGC_R_96K			(0x2 << 5)1221#define RT5616_DRC_AGC_R_192K			(0x3 << 5)1222#define RT5616_DRC_AGC_R_441K			(0x5 << 5)1223#define RT5616_DRC_AGC_R_882K			(0x6 << 5)1224#define RT5616_DRC_AGC_R_1764K			(0x7 << 5)1225#define RT5616_DRC_AGC_RC_MASK			(0x1f)1226#define RT5616_DRC_AGC_RC_SFT			01227 1228/* DRC/AGC Control 2 (0xb5) */1229#define RT5616_DRC_AGC_POB_MASK			(0x3f << 8)1230#define RT5616_DRC_AGC_POB_SFT			81231#define RT5616_DRC_AGC_CP_MASK			(0x1 << 7)1232#define RT5616_DRC_AGC_CP_SFT			71233#define RT5616_DRC_AGC_CP_DIS			(0x0 << 7)1234#define RT5616_DRC_AGC_CP_EN			(0x1 << 7)1235#define RT5616_DRC_AGC_CPR_MASK			(0x3 << 5)1236#define RT5616_DRC_AGC_CPR_SFT			51237#define RT5616_DRC_AGC_CPR_1_1			(0x0 << 5)1238#define RT5616_DRC_AGC_CPR_1_2			(0x1 << 5)1239#define RT5616_DRC_AGC_CPR_1_3			(0x2 << 5)1240#define RT5616_DRC_AGC_CPR_1_4			(0x3 << 5)1241#define RT5616_DRC_AGC_PRB_MASK			(0x1f)1242#define RT5616_DRC_AGC_PRB_SFT			01243 1244/* DRC/AGC Control 3 (0xb6) */1245#define RT5616_DRC_AGC_NGB_MASK			(0xf << 12)1246#define RT5616_DRC_AGC_NGB_SFT			121247#define RT5616_DRC_AGC_TAR_MASK			(0x1f << 7)1248#define RT5616_DRC_AGC_TAR_SFT			71249#define RT5616_DRC_AGC_NG_MASK			(0x1 << 6)1250#define RT5616_DRC_AGC_NG_SFT			61251#define RT5616_DRC_AGC_NG_DIS			(0x0 << 6)1252#define RT5616_DRC_AGC_NG_EN			(0x1 << 6)1253#define RT5616_DRC_AGC_NGH_MASK			(0x1 << 5)1254#define RT5616_DRC_AGC_NGH_SFT			51255#define RT5616_DRC_AGC_NGH_DIS			(0x0 << 5)1256#define RT5616_DRC_AGC_NGH_EN			(0x1 << 5)1257#define RT5616_DRC_AGC_NGT_MASK			(0x1f)1258#define RT5616_DRC_AGC_NGT_SFT			01259 1260/* Jack Detect Control 1 (0xbb) */1261#define RT5616_JD_MASK				(0x7 << 13)1262#define RT5616_JD_SFT				131263#define RT5616_JD_DIS				(0x0 << 13)1264#define RT5616_JD_GPIO1				(0x1 << 13)1265#define RT5616_JD_GPIO2				(0x2 << 13)1266#define RT5616_JD_GPIO3				(0x3 << 13)1267#define RT5616_JD_GPIO4				(0x4 << 13)1268#define RT5616_JD_GPIO5				(0x5 << 13)1269#define RT5616_JD_GPIO6				(0x6 << 13)1270#define RT5616_JD_HP_MASK			(0x1 << 11)1271#define RT5616_JD_HP_SFT			111272#define RT5616_JD_HP_DIS			(0x0 << 11)1273#define RT5616_JD_HP_EN				(0x1 << 11)1274#define RT5616_JD_HP_TRG_MASK			(0x1 << 10)1275#define RT5616_JD_HP_TRG_SFT			101276#define RT5616_JD_HP_TRG_LO			(0x0 << 10)1277#define RT5616_JD_HP_TRG_HI			(0x1 << 10)1278#define RT5616_JD_SPL_MASK			(0x1 << 9)1279#define RT5616_JD_SPL_SFT			91280#define RT5616_JD_SPL_DIS			(0x0 << 9)1281#define RT5616_JD_SPL_EN			(0x1 << 9)1282#define RT5616_JD_SPL_TRG_MASK			(0x1 << 8)1283#define RT5616_JD_SPL_TRG_SFT			81284#define RT5616_JD_SPL_TRG_LO			(0x0 << 8)1285#define RT5616_JD_SPL_TRG_HI			(0x1 << 8)1286#define RT5616_JD_SPR_MASK			(0x1 << 7)1287#define RT5616_JD_SPR_SFT			71288#define RT5616_JD_SPR_DIS			(0x0 << 7)1289#define RT5616_JD_SPR_EN			(0x1 << 7)1290#define RT5616_JD_SPR_TRG_MASK			(0x1 << 6)1291#define RT5616_JD_SPR_TRG_SFT			61292#define RT5616_JD_SPR_TRG_LO			(0x0 << 6)1293#define RT5616_JD_SPR_TRG_HI			(0x1 << 6)1294#define RT5616_JD_LO_MASK			(0x1 << 3)1295#define RT5616_JD_LO_SFT			31296#define RT5616_JD_LO_DIS			(0x0 << 3)1297#define RT5616_JD_LO_EN				(0x1 << 3)1298#define RT5616_JD_LO_TRG_MASK			(0x1 << 2)1299#define RT5616_JD_LO_TRG_SFT			21300#define RT5616_JD_LO_TRG_LO			(0x0 << 2)1301#define RT5616_JD_LO_TRG_HI			(0x1 << 2)1302 1303/* Jack Detect Control 2 (0xbc) */1304#define RT5616_JD_TRG_SEL_MASK			(0x7 << 9)1305#define RT5616_JD_TRG_SEL_SFT			91306#define RT5616_JD_TRG_SEL_GPIO			(0x0 << 9)1307#define RT5616_JD_TRG_SEL_JD1_1			(0x1 << 9)1308#define RT5616_JD_TRG_SEL_JD1_2			(0x2 << 9)1309#define RT5616_JD_TRG_SEL_JD2			(0x3 << 9)1310#define RT5616_JD_TRG_SEL_JD3			(0x4 << 9)1311#define RT5616_JD3_IRQ_EN			(0x1 << 8)1312#define RT5616_JD3_IRQ_EN_SFT			81313#define RT5616_JD3_EN_STKY			(0x1 << 7)1314#define RT5616_JD3_EN_STKY_SFT			71315#define RT5616_JD3_INV				(0x1 << 6)1316#define RT5616_JD3_INV_SFT			61317 1318/* IRQ Control 1 (0xbd) */1319#define RT5616_IRQ_JD_MASK			(0x1 << 15)1320#define RT5616_IRQ_JD_SFT			151321#define RT5616_IRQ_JD_BP			(0x0 << 15)1322#define RT5616_IRQ_JD_NOR			(0x1 << 15)1323#define RT5616_JD_STKY_MASK			(0x1 << 13)1324#define RT5616_JD_STKY_SFT			131325#define RT5616_JD_STKY_DIS			(0x0 << 13)1326#define RT5616_JD_STKY_EN			(0x1 << 13)1327#define RT5616_JD_P_MASK			(0x1 << 11)1328#define RT5616_JD_P_SFT				111329#define RT5616_JD_P_NOR				(0x0 << 11)1330#define RT5616_JD_P_INV				(0x1 << 11)1331#define RT5616_JD1_1_IRQ_EN			(0x1 << 9)1332#define RT5616_JD1_1_IRQ_EN_SFT			91333#define RT5616_JD1_1_EN_STKY			(0x1 << 8)1334#define RT5616_JD1_1_EN_STKY_SFT			81335#define RT5616_JD1_1_INV			(0x1 << 7)1336#define RT5616_JD1_1_INV_SFT			71337#define RT5616_JD1_2_IRQ_EN			(0x1 << 6)1338#define RT5616_JD1_2_IRQ_EN_SFT			61339#define RT5616_JD1_2_EN_STKY			(0x1 << 5)1340#define RT5616_JD1_2_EN_STKY_SFT			51341#define RT5616_JD1_2_INV			(0x1 << 4)1342#define RT5616_JD1_2_INV_SFT			41343#define RT5616_JD2_IRQ_EN			(0x1 << 3)1344#define RT5616_JD2_IRQ_EN_SFT			31345#define RT5616_JD2_EN_STKY			(0x1 << 2)1346#define RT5616_JD2_EN_STKY_SFT			21347#define RT5616_JD2_INV				(0x1 << 1)1348#define RT5616_JD2_INV_SFT			11349 1350/* IRQ Control 2 (0xbe) */1351#define RT5616_IRQ_MB1_OC_MASK			(0x1 << 15)1352#define RT5616_IRQ_MB1_OC_SFT			151353#define RT5616_IRQ_MB1_OC_BP			(0x0 << 15)1354#define RT5616_IRQ_MB1_OC_NOR			(0x1 << 15)1355#define RT5616_MB1_OC_STKY_MASK			(0x1 << 11)1356#define RT5616_MB1_OC_STKY_SFT			111357#define RT5616_MB1_OC_STKY_DIS			(0x0 << 11)1358#define RT5616_MB1_OC_STKY_EN			(0x1 << 11)1359#define RT5616_MB1_OC_P_MASK			(0x1 << 7)1360#define RT5616_MB1_OC_P_SFT			71361#define RT5616_MB1_OC_P_NOR			(0x0 << 7)1362#define RT5616_MB1_OC_P_INV			(0x1 << 7)1363#define RT5616_MB2_OC_P_MASK			(0x1 << 6)1364#define RT5616_MB1_OC_CLR			(0x1 << 3)1365#define RT5616_MB1_OC_CLR_SFT			31366#define RT5616_STA_GPIO8			(0x1)1367#define RT5616_STA_GPIO8_BIT			01368 1369/* Internal Status and GPIO status (0xbf) */1370#define RT5616_STA_JD3				(0x1 << 15)1371#define RT5616_STA_JD3_BIT			151372#define RT5616_STA_JD2				(0x1 << 14)1373#define RT5616_STA_JD2_BIT			141374#define RT5616_STA_JD1_2			(0x1 << 13)1375#define RT5616_STA_JD1_2_BIT			131376#define RT5616_STA_JD1_1			(0x1 << 12)1377#define RT5616_STA_JD1_1_BIT			121378#define RT5616_STA_GP7				(0x1 << 11)1379#define RT5616_STA_GP7_BIT			111380#define RT5616_STA_GP6				(0x1 << 10)1381#define RT5616_STA_GP6_BIT			101382#define RT5616_STA_GP5				(0x1 << 9)1383#define RT5616_STA_GP5_BIT			91384#define RT5616_STA_GP1				(0x1 << 8)1385#define RT5616_STA_GP1_BIT			81386#define RT5616_STA_GP2				(0x1 << 7)1387#define RT5616_STA_GP2_BIT			71388#define RT5616_STA_GP3				(0x1 << 6)1389#define RT5616_STA_GP3_BIT			61390#define RT5616_STA_GP4				(0x1 << 5)1391#define RT5616_STA_GP4_BIT			51392#define RT5616_STA_GP_JD			(0x1 << 4)1393#define RT5616_STA_GP_JD_BIT			41394 1395/* GPIO Control 1 (0xc0) */1396#define RT5616_GP1_PIN_MASK			(0x1 << 15)1397#define RT5616_GP1_PIN_SFT			151398#define RT5616_GP1_PIN_GPIO1			(0x0 << 15)1399#define RT5616_GP1_PIN_IRQ			(0x1 << 15)1400#define RT5616_GP2_PIN_MASK			(0x1 << 14)1401#define RT5616_GP2_PIN_SFT			141402#define RT5616_GP2_PIN_GPIO2			(0x0 << 14)1403#define RT5616_GP2_PIN_DMIC1_SCL		(0x1 << 14)1404#define RT5616_GPIO_M_MASK			(0x1 << 9)1405#define RT5616_GPIO_M_SFT			91406#define RT5616_GPIO_M_FLT			(0x0 << 9)1407#define RT5616_GPIO_M_PH			(0x1 << 9)1408#define RT5616_I2S2_SEL_MASK			(0x1 << 8)1409#define RT5616_I2S2_SEL_SFT			81410#define RT5616_I2S2_SEL_I2S			(0x0 << 8)1411#define RT5616_I2S2_SEL_GPIO			(0x1 << 8)1412#define RT5616_GP5_PIN_MASK			(0x1 << 7)1413#define RT5616_GP5_PIN_SFT			71414#define RT5616_GP5_PIN_GPIO5			(0x0 << 7)1415#define RT5616_GP5_PIN_IRQ			(0x1 << 7)1416#define RT5616_GP6_PIN_MASK			(0x1 << 6)1417#define RT5616_GP6_PIN_SFT			61418#define RT5616_GP6_PIN_GPIO6			(0x0 << 6)1419#define RT5616_GP6_PIN_DMIC_SDA			(0x1 << 6)1420#define RT5616_GP7_PIN_MASK			(0x1 << 5)1421#define RT5616_GP7_PIN_SFT			51422#define RT5616_GP7_PIN_GPIO7			(0x0 << 5)1423#define RT5616_GP7_PIN_IRQ			(0x1 << 5)1424#define RT5616_GP8_PIN_MASK			(0x1 << 4)1425#define RT5616_GP8_PIN_SFT			41426#define RT5616_GP8_PIN_GPIO8			(0x0 << 4)1427#define RT5616_GP8_PIN_DMIC_SDA			(0x1 << 4)1428#define RT5616_GPIO_PDM_SEL_MASK		(0x1 << 3)1429#define RT5616_GPIO_PDM_SEL_SFT			31430#define RT5616_GPIO_PDM_SEL_GPIO		(0x0 << 3)1431#define RT5616_GPIO_PDM_SEL_PDM			(0x1 << 3)1432 1433/* GPIO Control 2 (0xc1) */1434#define RT5616_GP5_DR_MASK			(0x1 << 14)1435#define RT5616_GP5_DR_SFT			141436#define RT5616_GP5_DR_IN			(0x0 << 14)1437#define RT5616_GP5_DR_OUT			(0x1 << 14)1438#define RT5616_GP5_OUT_MASK			(0x1 << 13)1439#define RT5616_GP5_OUT_SFT			131440#define RT5616_GP5_OUT_LO			(0x0 << 13)1441#define RT5616_GP5_OUT_HI			(0x1 << 13)1442#define RT5616_GP5_P_MASK			(0x1 << 12)1443#define RT5616_GP5_P_SFT			121444#define RT5616_GP5_P_NOR			(0x0 << 12)1445#define RT5616_GP5_P_INV			(0x1 << 12)1446#define RT5616_GP4_DR_MASK			(0x1 << 11)1447#define RT5616_GP4_DR_SFT			111448#define RT5616_GP4_DR_IN			(0x0 << 11)1449#define RT5616_GP4_DR_OUT			(0x1 << 11)1450#define RT5616_GP4_OUT_MASK			(0x1 << 10)1451#define RT5616_GP4_OUT_SFT			101452#define RT5616_GP4_OUT_LO			(0x0 << 10)1453#define RT5616_GP4_OUT_HI			(0x1 << 10)1454#define RT5616_GP4_P_MASK			(0x1 << 9)1455#define RT5616_GP4_P_SFT			91456#define RT5616_GP4_P_NOR			(0x0 << 9)1457#define RT5616_GP4_P_INV			(0x1 << 9)1458#define RT5616_GP3_DR_MASK			(0x1 << 8)1459#define RT5616_GP3_DR_SFT			81460#define RT5616_GP3_DR_IN			(0x0 << 8)1461#define RT5616_GP3_DR_OUT			(0x1 << 8)1462#define RT5616_GP3_OUT_MASK			(0x1 << 7)1463#define RT5616_GP3_OUT_SFT			71464#define RT5616_GP3_OUT_LO			(0x0 << 7)1465#define RT5616_GP3_OUT_HI			(0x1 << 7)1466#define RT5616_GP3_P_MASK			(0x1 << 6)1467#define RT5616_GP3_P_SFT			61468#define RT5616_GP3_P_NOR			(0x0 << 6)1469#define RT5616_GP3_P_INV			(0x1 << 6)1470#define RT5616_GP2_DR_MASK			(0x1 << 5)1471#define RT5616_GP2_DR_SFT			51472#define RT5616_GP2_DR_IN			(0x0 << 5)1473#define RT5616_GP2_DR_OUT			(0x1 << 5)1474#define RT5616_GP2_OUT_MASK			(0x1 << 4)1475#define RT5616_GP2_OUT_SFT			41476#define RT5616_GP2_OUT_LO			(0x0 << 4)1477#define RT5616_GP2_OUT_HI			(0x1 << 4)1478#define RT5616_GP2_P_MASK			(0x1 << 3)1479#define RT5616_GP2_P_SFT			31480#define RT5616_GP2_P_NOR			(0x0 << 3)1481#define RT5616_GP2_P_INV			(0x1 << 3)1482#define RT5616_GP1_DR_MASK			(0x1 << 2)1483#define RT5616_GP1_DR_SFT			21484#define RT5616_GP1_DR_IN			(0x0 << 2)1485#define RT5616_GP1_DR_OUT			(0x1 << 2)1486#define RT5616_GP1_OUT_MASK			(0x1 << 1)1487#define RT5616_GP1_OUT_SFT			11488#define RT5616_GP1_OUT_LO			(0x0 << 1)1489#define RT5616_GP1_OUT_HI			(0x1 << 1)1490#define RT5616_GP1_P_MASK			(0x1)1491#define RT5616_GP1_P_SFT			01492#define RT5616_GP1_P_NOR			(0x0)1493#define RT5616_GP1_P_INV			(0x1)1494 1495/* GPIO Control 3 (0xc2) */1496#define RT5616_GP8_DR_MASK			(0x1 << 8)1497#define RT5616_GP8_DR_SFT			81498#define RT5616_GP8_DR_IN			(0x0 << 8)1499#define RT5616_GP8_DR_OUT			(0x1 << 8)1500#define RT5616_GP8_OUT_MASK			(0x1 << 7)1501#define RT5616_GP8_OUT_SFT			71502#define RT5616_GP8_OUT_LO			(0x0 << 7)1503#define RT5616_GP8_OUT_HI			(0x1 << 7)1504#define RT5616_GP8_P_MASK			(0x1 << 6)1505#define RT5616_GP8_P_SFT			61506#define RT5616_GP8_P_NOR			(0x0 << 6)1507#define RT5616_GP8_P_INV			(0x1 << 6)1508#define RT5616_GP7_DR_MASK			(0x1 << 5)1509#define RT5616_GP7_DR_SFT			51510#define RT5616_GP7_DR_IN			(0x0 << 5)1511#define RT5616_GP7_DR_OUT			(0x1 << 5)1512#define RT5616_GP7_OUT_MASK			(0x1 << 4)1513#define RT5616_GP7_OUT_SFT			41514#define RT5616_GP7_OUT_LO			(0x0 << 4)1515#define RT5616_GP7_OUT_HI			(0x1 << 4)1516#define RT5616_GP7_P_MASK			(0x1 << 3)1517#define RT5616_GP7_P_SFT			31518#define RT5616_GP7_P_NOR			(0x0 << 3)1519#define RT5616_GP7_P_INV			(0x1 << 3)1520#define RT5616_GP6_DR_MASK			(0x1 << 2)1521#define RT5616_GP6_DR_SFT			21522#define RT5616_GP6_DR_IN			(0x0 << 2)1523#define RT5616_GP6_DR_OUT			(0x1 << 2)1524#define RT5616_GP6_OUT_MASK			(0x1 << 1)1525#define RT5616_GP6_OUT_SFT			11526#define RT5616_GP6_OUT_LO			(0x0 << 1)1527#define RT5616_GP6_OUT_HI			(0x1 << 1)1528#define RT5616_GP6_P_MASK			(0x1)1529#define RT5616_GP6_P_SFT			01530#define RT5616_GP6_P_NOR			(0x0)1531#define RT5616_GP6_P_INV			(0x1)1532 1533/* Scramble Control (0xce) */1534#define RT5616_SCB_SWAP_MASK			(0x1 << 15)1535#define RT5616_SCB_SWAP_SFT			151536#define RT5616_SCB_SWAP_DIS			(0x0 << 15)1537#define RT5616_SCB_SWAP_EN			(0x1 << 15)1538#define RT5616_SCB_MASK				(0x1 << 14)1539#define RT5616_SCB_SFT				141540#define RT5616_SCB_DIS				(0x0 << 14)1541#define RT5616_SCB_EN				(0x1 << 14)1542 1543/* Baseback Control (0xcf) */1544#define RT5616_BB_MASK				(0x1 << 15)1545#define RT5616_BB_SFT				151546#define RT5616_BB_DIS				(0x0 << 15)1547#define RT5616_BB_EN				(0x1 << 15)1548#define RT5616_BB_CT_MASK			(0x7 << 12)1549#define RT5616_BB_CT_SFT			121550#define RT5616_BB_CT_A				(0x0 << 12)1551#define RT5616_BB_CT_B				(0x1 << 12)1552#define RT5616_BB_CT_C				(0x2 << 12)1553#define RT5616_BB_CT_D				(0x3 << 12)1554#define RT5616_M_BB_L_MASK			(0x1 << 9)1555#define RT5616_M_BB_L_SFT			91556#define RT5616_M_BB_R_MASK			(0x1 << 8)1557#define RT5616_M_BB_R_SFT			81558#define RT5616_M_BB_HPF_L_MASK			(0x1 << 7)1559#define RT5616_M_BB_HPF_L_SFT			71560#define RT5616_M_BB_HPF_R_MASK			(0x1 << 6)1561#define RT5616_M_BB_HPF_R_SFT			61562#define RT5616_G_BB_BST_MASK			(0x3f)1563#define RT5616_G_BB_BST_SFT			01564 1565/* MP3 Plus Control 1 (0xd0) */1566#define RT5616_M_MP3_L_MASK			(0x1 << 15)1567#define RT5616_M_MP3_L_SFT			151568#define RT5616_M_MP3_R_MASK			(0x1 << 14)1569#define RT5616_M_MP3_R_SFT			141570#define RT5616_M_MP3_MASK			(0x1 << 13)1571#define RT5616_M_MP3_SFT			131572#define RT5616_M_MP3_DIS			(0x0 << 13)1573#define RT5616_M_MP3_EN				(0x1 << 13)1574#define RT5616_EG_MP3_MASK			(0x1f << 8)1575#define RT5616_EG_MP3_SFT			81576#define RT5616_MP3_HLP_MASK			(0x1 << 7)1577#define RT5616_MP3_HLP_SFT			71578#define RT5616_MP3_HLP_DIS			(0x0 << 7)1579#define RT5616_MP3_HLP_EN			(0x1 << 7)1580#define RT5616_M_MP3_ORG_L_MASK			(0x1 << 6)1581#define RT5616_M_MP3_ORG_L_SFT			61582#define RT5616_M_MP3_ORG_R_MASK			(0x1 << 5)1583#define RT5616_M_MP3_ORG_R_SFT			51584 1585/* MP3 Plus Control 2 (0xd1) */1586#define RT5616_MP3_WT_MASK			(0x1 << 13)1587#define RT5616_MP3_WT_SFT			131588#define RT5616_MP3_WT_1_4			(0x0 << 13)1589#define RT5616_MP3_WT_1_2			(0x1 << 13)1590#define RT5616_OG_MP3_MASK			(0x1f << 8)1591#define RT5616_OG_MP3_SFT			81592#define RT5616_HG_MP3_MASK			(0x3f)1593#define RT5616_HG_MP3_SFT			01594 1595/* 3D HP Control 1 (0xd2) */1596#define RT5616_3D_CF_MASK			(0x1 << 15)1597#define RT5616_3D_CF_SFT			151598#define RT5616_3D_CF_DIS			(0x0 << 15)1599#define RT5616_3D_CF_EN				(0x1 << 15)1600#define RT5616_3D_HP_MASK			(0x1 << 14)1601#define RT5616_3D_HP_SFT			141602#define RT5616_3D_HP_DIS			(0x0 << 14)1603#define RT5616_3D_HP_EN				(0x1 << 14)1604#define RT5616_3D_BT_MASK			(0x1 << 13)1605#define RT5616_3D_BT_SFT			131606#define RT5616_3D_BT_DIS			(0x0 << 13)1607#define RT5616_3D_BT_EN				(0x1 << 13)1608#define RT5616_3D_1F_MIX_MASK			(0x3 << 11)1609#define RT5616_3D_1F_MIX_SFT			111610#define RT5616_3D_HP_M_MASK			(0x1 << 10)1611#define RT5616_3D_HP_M_SFT			101612#define RT5616_3D_HP_M_SUR			(0x0 << 10)1613#define RT5616_3D_HP_M_FRO			(0x1 << 10)1614#define RT5616_M_3D_HRTF_MASK			(0x1 << 9)1615#define RT5616_M_3D_HRTF_SFT			91616#define RT5616_M_3D_D2H_MASK			(0x1 << 8)1617#define RT5616_M_3D_D2H_SFT			81618#define RT5616_M_3D_D2R_MASK			(0x1 << 7)1619#define RT5616_M_3D_D2R_SFT			71620#define RT5616_M_3D_REVB_MASK			(0x1 << 6)1621#define RT5616_M_3D_REVB_SFT			61622 1623/* Adjustable high pass filter control 1 (0xd3) */1624#define RT5616_2ND_HPF_MASK			(0x1 << 15)1625#define RT5616_2ND_HPF_SFT			151626#define RT5616_2ND_HPF_DIS			(0x0 << 15)1627#define RT5616_2ND_HPF_EN			(0x1 << 15)1628#define RT5616_HPF_CF_L_MASK			(0x7 << 12)1629#define RT5616_HPF_CF_L_SFT			121630#define RT5616_HPF_CF_R_MASK			(0x7 << 8)1631#define RT5616_HPF_CF_R_SFT			81632#define RT5616_ZD_T_MASK			(0x3 << 6)1633#define RT5616_ZD_T_SFT				61634#define RT5616_ZD_F_MASK			(0x3 << 4)1635#define RT5616_ZD_F_SFT				41636#define RT5616_ZD_F_IM				(0x0 << 4)1637#define RT5616_ZD_F_ZC_IM			(0x1 << 4)1638#define RT5616_ZD_F_ZC_IOD			(0x2 << 4)1639#define RT5616_ZD_F_UN				(0x3 << 4)1640 1641/* Adjustable high pass filter control 2 (0xd4) */1642#define RT5616_HPF_CF_L_NUM_MASK		(0x3f << 8)1643#define RT5616_HPF_CF_L_NUM_SFT			81644#define RT5616_HPF_CF_R_NUM_MASK		(0x3f)1645#define RT5616_HPF_CF_R_NUM_SFT			01646 1647/* HP calibration control and Amp detection (0xd6) */1648#define RT5616_SI_DAC_MASK			(0x1 << 11)1649#define RT5616_SI_DAC_SFT			111650#define RT5616_SI_DAC_AUTO			(0x0 << 11)1651#define RT5616_SI_DAC_TEST			(0x1 << 11)1652#define RT5616_DC_CAL_M_MASK			(0x1 << 10)1653#define RT5616_DC_CAL_M_SFT			101654#define RT5616_DC_CAL_M_NOR			(0x0 << 10)1655#define RT5616_DC_CAL_M_CAL			(0x1 << 10)1656#define RT5616_DC_CAL_MASK			(0x1 << 9)1657#define RT5616_DC_CAL_SFT			91658#define RT5616_DC_CAL_DIS			(0x0 << 9)1659#define RT5616_DC_CAL_EN			(0x1 << 9)1660#define RT5616_HPD_RCV_MASK			(0x7 << 6)1661#define RT5616_HPD_RCV_SFT			61662#define RT5616_HPD_PS_MASK			(0x1 << 5)1663#define RT5616_HPD_PS_SFT			51664#define RT5616_HPD_PS_DIS			(0x0 << 5)1665#define RT5616_HPD_PS_EN			(0x1 << 5)1666#define RT5616_CAL_M_MASK			(0x1 << 4)1667#define RT5616_CAL_M_SFT			41668#define RT5616_CAL_M_DEP			(0x0 << 4)1669#define RT5616_CAL_M_CAL			(0x1 << 4)1670#define RT5616_CAL_MASK				(0x1 << 3)1671#define RT5616_CAL_SFT				31672#define RT5616_CAL_DIS				(0x0 << 3)1673#define RT5616_CAL_EN				(0x1 << 3)1674#define RT5616_CAL_TEST_MASK			(0x1 << 2)1675#define RT5616_CAL_TEST_SFT			21676#define RT5616_CAL_TEST_DIS			(0x0 << 2)1677#define RT5616_CAL_TEST_EN			(0x1 << 2)1678#define RT5616_CAL_P_MASK			(0x3)1679#define RT5616_CAL_P_SFT			01680#define RT5616_CAL_P_NONE			(0x0)1681#define RT5616_CAL_P_CAL			(0x1)1682#define RT5616_CAL_P_DAC_CAL			(0x2)1683 1684/* Soft volume and zero cross control 1 (0xd9) */1685#define RT5616_SV_MASK				(0x1 << 15)1686#define RT5616_SV_SFT				151687#define RT5616_SV_DIS				(0x0 << 15)1688#define RT5616_SV_EN				(0x1 << 15)1689#define RT5616_OUT_SV_MASK			(0x1 << 13)1690#define RT5616_OUT_SV_SFT			131691#define RT5616_OUT_SV_DIS			(0x0 << 13)1692#define RT5616_OUT_SV_EN			(0x1 << 13)1693#define RT5616_HP_SV_MASK			(0x1 << 12)1694#define RT5616_HP_SV_SFT			121695#define RT5616_HP_SV_DIS			(0x0 << 12)1696#define RT5616_HP_SV_EN				(0x1 << 12)1697#define RT5616_ZCD_DIG_MASK			(0x1 << 11)1698#define RT5616_ZCD_DIG_SFT			111699#define RT5616_ZCD_DIG_DIS			(0x0 << 11)1700#define RT5616_ZCD_DIG_EN			(0x1 << 11)1701#define RT5616_ZCD_MASK				(0x1 << 10)1702#define RT5616_ZCD_SFT				101703#define RT5616_ZCD_PD				(0x0 << 10)1704#define RT5616_ZCD_PU				(0x1 << 10)1705#define RT5616_M_ZCD_MASK			(0x3f << 4)1706#define RT5616_M_ZCD_SFT			41707#define RT5616_M_ZCD_OM_L			(0x1 << 7)1708#define RT5616_M_ZCD_OM_R			(0x1 << 6)1709#define RT5616_M_ZCD_RM_L			(0x1 << 5)1710#define RT5616_M_ZCD_RM_R			(0x1 << 4)1711#define RT5616_SV_DLY_MASK			(0xf)1712#define RT5616_SV_DLY_SFT			01713 1714/* Soft volume and zero cross control 2 (0xda) */1715#define RT5616_ZCD_HP_MASK			(0x1 << 15)1716#define RT5616_ZCD_HP_SFT			151717#define RT5616_ZCD_HP_DIS			(0x0 << 15)1718#define RT5616_ZCD_HP_EN			(0x1 << 15)1719 1720/* Digital Misc Control (0xfa) */1721#define RT5616_I2S2_MS_SP_MASK			(0x1 << 8)1722#define RT5616_I2S2_MS_SP_SEL			81723#define RT5616_I2S2_MS_SP_64			(0x0 << 8)1724#define RT5616_I2S2_MS_SP_50			(0x1 << 8)1725#define RT5616_CLK_DET_EN			(0x1 << 3)1726#define RT5616_CLK_DET_EN_SFT			31727#define RT5616_AMP_DET_EN			(0x1 << 1)1728#define RT5616_AMP_DET_EN_SFT			11729#define RT5616_D_GATE_EN			(0x1)1730#define RT5616_D_GATE_EN_SFT			01731 1732/* Codec Private Register definition */1733/* 3D Speaker Control (0x63) */1734#define RT5616_3D_SPK_MASK			(0x1 << 15)1735#define RT5616_3D_SPK_SFT			151736#define RT5616_3D_SPK_DIS			(0x0 << 15)1737#define RT5616_3D_SPK_EN			(0x1 << 15)1738#define RT5616_3D_SPK_M_MASK			(0x3 << 13)1739#define RT5616_3D_SPK_M_SFT			131740#define RT5616_3D_SPK_CG_MASK			(0x1f << 8)1741#define RT5616_3D_SPK_CG_SFT			81742#define RT5616_3D_SPK_SG_MASK			(0x1f)1743#define RT5616_3D_SPK_SG_SFT			01744 1745/* Wind Noise Detection Control 1 (0x6c) */1746#define RT5616_WND_MASK				(0x1 << 15)1747#define RT5616_WND_SFT				151748#define RT5616_WND_DIS				(0x0 << 15)1749#define RT5616_WND_EN				(0x1 << 15)1750 1751/* Wind Noise Detection Control 2 (0x6d) */1752#define RT5616_WND_FC_NW_MASK			(0x3f << 10)1753#define RT5616_WND_FC_NW_SFT			101754#define RT5616_WND_FC_WK_MASK			(0x3f << 4)1755#define RT5616_WND_FC_WK_SFT			41756 1757/* Wind Noise Detection Control 3 (0x6e) */1758#define RT5616_HPF_FC_MASK			(0x3f << 6)1759#define RT5616_HPF_FC_SFT			61760#define RT5616_WND_FC_ST_MASK			(0x3f)1761#define RT5616_WND_FC_ST_SFT			01762 1763/* Wind Noise Detection Control 4 (0x6f) */1764#define RT5616_WND_TH_LO_MASK			(0x3ff)1765#define RT5616_WND_TH_LO_SFT			01766 1767/* Wind Noise Detection Control 5 (0x70) */1768#define RT5616_WND_TH_HI_MASK			(0x3ff)1769#define RT5616_WND_TH_HI_SFT			01770 1771/* Wind Noise Detection Control 8 (0x73) */1772#define RT5616_WND_WIND_MASK			(0x1 << 13) /* Read-Only */1773#define RT5616_WND_WIND_SFT			131774#define RT5616_WND_STRONG_MASK			(0x1 << 12) /* Read-Only */1775#define RT5616_WND_STRONG_SFT			121776enum {1777	RT5616_NO_WIND,1778	RT5616_BREEZE,1779	RT5616_STORM,1780};1781 1782/* Dipole Speaker Interface (0x75) */1783#define RT5616_DP_ATT_MASK			(0x3 << 14)1784#define RT5616_DP_ATT_SFT			141785#define RT5616_DP_SPK_MASK			(0x1 << 10)1786#define RT5616_DP_SPK_SFT			101787#define RT5616_DP_SPK_DIS			(0x0 << 10)1788#define RT5616_DP_SPK_EN			(0x1 << 10)1789 1790/* EQ Pre Volume Control (0xb3) */1791#define RT5616_EQ_PRE_VOL_MASK			(0xffff)1792#define RT5616_EQ_PRE_VOL_SFT			01793 1794/* EQ Post Volume Control (0xb4) */1795#define RT5616_EQ_PST_VOL_MASK			(0xffff)1796#define RT5616_EQ_PST_VOL_SFT			01797 1798/* System Clock Source */1799enum {1800	RT5616_SCLK_S_MCLK,1801	RT5616_SCLK_S_PLL1,1802};1803 1804/* PLL1 Source */1805enum {1806	RT5616_PLL1_S_MCLK,1807	RT5616_PLL1_S_BCLK1,1808	RT5616_PLL1_S_BCLK2,1809};1810 1811enum {1812	RT5616_AIF1,1813	RT5616_AIFS,1814};1815 1816#endif /* __RT5616_H__ */1817