⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wm97audiodefs.h

📁 WM9713 audio codec driver for WinCE 5.0
💻 H
📖 第 1 页 / 共 2 页
字号:
#define WM97_PCBEEP_B2H_VOL_MASK         WM97_INPUT_I2H_VOL_MASK
#define WM97_PCBEEP_B2H_MUTE_MASK        WM97_INPUT_I2H_MUTE_MASK
#define WM97_PCBEEP_MUTE_MASK            WM97_INPUT_MULTIPLE_MUTE_MASK
#define WM97_PCBEEP_MUTE                 WM97_PCBEEP_MUTE_MASK

/* Defines for AUXDAC input*/
#define WM97_AUXDAC_A2M_VOL_MASK         WM97_INPUT_I2M_VOL_MASK
#define WM97_AUXDAC_A2M_MUTE_MASK        WM97_INPUT_I2M_MUTE_MASK
#define WM97_AUXDAC_A2S_VOL_MASK         WM97_INPUT_I2S_VOL_MASK
#define WM97_AUXDAC_A2S_MUTE_MASK        WM97_INPUT_I2S_MUTE_MASK
#define WM97_AUXDAC_A2H_VOL_MASK         WM97_INPUT_I2H_VOL_MASK
#define WM97_AUXDAC_A2H_MUTE_MASK        WM97_INPUT_I2H_MUTE_MASK
#define WM97_AUXDAC_MUTE_MASK            WM97_INPUT_MULTIPLE_MUTE_MASK
#define WM97_AUXDAC_MUTE                 WM97_AUXDAC_MUTE_MASK

/* Defines for VXDAC input*/
#define WM97_VXDAC_V2M_VOL_MASK         WM97_INPUT_I2M_VOL_MASK
#define WM97_VXDAC_V2M_MUTE_MASK        WM97_INPUT_I2M_MUTE_MASK
#define WM97_VXDAC_V2S_VOL_MASK         WM97_INPUT_I2S_VOL_MASK
#define WM97_VXDAC_V2S_MUTE_MASK        WM97_INPUT_I2S_MUTE_MASK
#define WM97_VXDAC_V2H_VOL_MASK         WM97_INPUT_I2H_VOL_MASK
#define WM97_VXDAC_V2H_MUTE_MASK        WM97_INPUT_I2H_MUTE_MASK
#define WM97_VXDAC_MUTE_MASK            WM97_INPUT_MULTIPLE_MUTE_MASK
#define WM97_VXDAC_MUTE                 WM97_VXDAC_MUTE_MASK

/* Defines for WM9712 WM97_PHONE_VOLUME 0x0C register */
#define WM9712_PHONE_P2S_MUTE_MASK      0x4000
#define WM9712_PHONE_P2H_MUTE_MASK      0x8000
#define WM9712_PHONE_MUTE_MASK          ( WM9712_PHONE_P2S_MUTE_MASK | WM9712_PHONE_P2H_MUTE_MASK )
#define WM9712_PHONE_MUTE               WM9712_PHONE_MUTE_MASK

/* Defines for MIC_VOLUME 0x0E register */
#define WM97_MIC_20dB_BOOST             0x0040

/* Define for WM97_GENERAL 0x20 register */
#define WM97_MIC_SEL_MASK               0x0100
#define WM97_MIC_SEL_MIC1               0x0000
#define WM97_MIC_SEL_MIC2               0x0100

/* Defines for WM9712 MIC_VOLUME 0x0E register */
#define WM9712_MIC_MUTE_M12P            0x4000
#define WM9712_MIC_MUTE_M22P            0x2000
#define WM9712_MIC1_MUTE                WM9712_MIC_MUTE_M12P
#define WM9712_MIC2_MUTE                WM9712_MIC_MUTE_M22P
#define WM9712_MIC_MUTE                 ( WM9712_MIC1_MUTE | WM9712_MIC2_MUTE )
#define WM9712_MIC_TO_PHONE_20dB_BOOST	0x0080
#define WM9712_MIC_SEL_MASK		        0x0060
#define WM9712_MIC_SEL_MIC1		        0x0000
#define WM9712_MIC_SEL_MIC2		        0x0040
#define WM9712_MIC_SEL_DIFF		        0x0020
#define WM9712_MIC_SEL_STEREO	        0x0060

/* Defines for WM9713 MIC_ROUTING 0x10 register */
#define WM9713_MIC2A_MUTE              (0x1U<<7)
#define WM9713_MIC2B_MUTE              (0x1U<<6)
#define WM9713_MIC_MUTE                ( WM9713_MIC2A_MUTE | WM9713_MIC2B_MUTE )
#define WM9713_MIC2M_BOOST             (0x1U<<5)
#define WM9713_MIC2H_NO_MICA           (0x1U<<4)
#define WM9713_MIC2H_NO_MICB           (0x1U<<3)
#define WM9713_MIC2H_VOL_MASK           0x07
#define WM9713_MIC2H_0DB_VOL            0x02

/* Defines for WM9713 REC_ROUTING 0x14 register */
#define WM9713_REC_20DB_BOOST           0x0040

/* Defines for WM9713 MIC_SELECT 0x22 register */
#define WM9713_MIC_SEL_MCDSCTHR_MASK    0x0003
#define WM9713_MIC_SEL_MCDSCTHR_600UA   0x0000
#define WM9713_MIC_SEL_MCDSCTHR_1200UA  0x0001
#define WM9713_MIC_SEL_MCDSCTHR_1800UA  0x0002
#define WM9713_MIC_SEL_MCDSCTHR_2400UA  0x0003
#define WM9713_MIC_SEL_MCDTHR_MASK      0x001C
#define WM9713_MIC_SEL_MCDTHR_100UA     0x0000
#define WM9713_MIC_SEL_MCDTHR_200UA     0x0004
#define WM9713_MIC_SEL_MCDTHR_300UA     0x0008
#define WM9713_MIC_SEL_MCDTHR_400UA     0x000C
#define WM9713_MIC_SEL_MCDTHR_500UA     0x0010
#define WM9713_MIC_SEL_MCDTHR_600UA     0x0014
#define WM9713_MIC_SEL_MCDTHR_700UA     0x0018
#define WM9713_MIC_SEL_MCDTHR_800UA     0x001C
#define WM9713_MIC_SEL_MBVOL            0x0020
#define WM9713_MIC_SEL_MBOP1EN          0x0040
#define WM9713_MIC_SEL_MBOP2EN          0x0080
#define WM9713_MIC_SEL_MPBBST_MASK      0x0300
#define WM9713_MIC_SEL_MPBBST_12DB      0x0000
#define WM9713_MIC_SEL_MPBBST_18DB      0x0100
#define WM9713_MIC_SEL_MPBBST_24DB      0x0200
#define WM9713_MIC_SEL_MPBBST_30DB      0x0300
#define WM9713_MIC_SEL_MPABST_MASK      0x0C00
#define WM9713_MIC_SEL_MPABST_12DB      0x0000
#define WM9713_MIC_SEL_MPABST_18DB      0x0400
#define WM9713_MIC_SEL_MPABST_24DB      0x0800
#define WM9713_MIC_SEL_MPABST_30DB      0x0C00
#define WM9713_MIC_SEL_MPASEL_MASK      0x3000
#define WM9713_MIC_SEL_MPASEL_MIC1      0x0000
#define WM9713_MIC_SEL_MPASEL_MIC2A     0x1000
#define WM9713_MIC_SEL_MPASEL_MIC2B     0x2000
#define WM9713_MIC_SEL_MICCMPSEL_MASK   0xC000
#define WM9713_MIC_SEL_MICCMPSEL_MIC2AB 0x0000
#define WM9713_MIC_SEL_MICCMPSEL_MIC2A  0x4000
#define WM9713_MIC_SEL_MICCMPSEL_MIC2B  0x8000
#define WM9713_MIC_SEL_MICCMPSEL_NONE   0xC000

/* Defines for LINEIN register */
#define WM97_LINEIN_L2P_MUTE_MASK       0x2000
#define WM97_LINEIN_L2P_MUTE            WM97_LINEIN_L2P_MUTE_MASK
#define WM97_LINEIN_L2M_MUTE_MASK       WM97_LINEIN_L2P_MUTE_MASK
#define WM97_LINEIN_L2M_MUTE            WM97_LINEIN_L2P_MUTE_MASK
#define WM97_LINEIN_L2S_MUTE_MASK       0x4000
#define WM97_LINEIN_L2S_MUTE            WM97_LINEIN_L2S_MUTE_MASK
#define WM97_LINEIN_L2H_MUTE_MASK       0x8000
#define WM97_LINEIN_L2H_MUTE            WM97_LINEIN_L2H_MUTE_MASK
#define WM97_LINEIN_MUTE_MASK           ( WM97_LINEIN_L2P_MUTE_MASK | \
                                          WM97_LINEIN_L2S_MUTE_MASK | \
                                          WM97_LINEIN_L2H_MUTE_MASK )
#define WM97_LINEIN_MUTE                WM97_LINEIN_MUTE_MASK

/* Defines for stereo DAC registers */
#define WM97_DAC_MUTE_HEADPHONE_MASK    0x8000
#define WM97_DAC_MUTE_SPEAKER_MASK      0x4000
#define WM97_DAC_MUTE_PHONE_MASK        0x2000
#define WM97_DAC_MUTE_MONO_MASK         0x2000
#define WM97_DAC_MUTE_MASK              ( WM97_DAC_MUTE_HEADPHONE_MASK | \
                                          WM97_DAC_MUTE_SPEAKER_MASK | \
                                          WM97_DAC_MUTE_PHONE_MASK )
#define WM97_DAC_MUTE                   WM97_DAC_MUTE_MASK

/* Defines for MONOIN */
#define WM9713_MONOIN_M2S_MUTE_MASK     0x4000
#define WM9713_MONOIN_M2H_MUTE_MASK     0x8000
#define WM9713_MONOIN_MUTE_MASK         ( WM9713_MONOIN_M2S_MUTE_MASK | WM9713_MONOIN_M2H_MUTE_MASK )
#define WM9713_MONOIN_MUTE              WM9713_MONOIN_MUTE_MASK

/*
 * Defines for AUXDAC_VOLUME register (0x12 on WM9712)
 */
#define WM97_AUXDAC_ENABLE              0x0001

#define WM97_AUX_MUTE_HEADPHONE         WM97_INPUT_I2H_MUTE_MASK
#define WM97_AUX_HEADPHONE_VOL_MASK     WM97_INPUT_I2H_VOL_MASK
#define WM97_AUX_HEADPHONE_VOL( _v )    ( ((_v) << WM97_INPUT_I2H_SHIFT) & WM97_AUX_HEADPHONE_VOL_MASK )

#define WM97_AUX_MUTE_SPEAKER           WM97_INPUT_I2S_MUTE_MASK
#define WM97_AUX_SPEAKER_VOL_MASK       WM97_INPUT_I2S_VOL_MASK
#define WM97_AUX_SPEAKER_VOL( _v )      ( ((_v) << WM97_INPUT_I2S_SHIFT) & WM97_AUX_SPEAKER_VOL_MASK )

#define WM97_AUX_MUTE_PHONE             WM97_INPUT_I2P_MUTE_MASK
#define WM97_AUX_PHONE_VOL_MASK         WM97_INPUT_I2P_VOL_MASK
#define WM97_AUX_PHONE_VOL( _v )        ( ((_v) << WM97_INPUT_I2P_SHIFT) & WM97_AUX_PHONE_VOL_MASK )

#define WM97_AUX_MUTE                   ( WM97_AUX_MUTE_HEADPHONE | WM97_AUX_MUTE_SPEAKER | WM97_AUX_MUTE_PHONE )

/*
 * Defines for VXDAC_VOLUME register (0x18 on WM9713)
 */
#define WM97_VXDAC_MUTE_HEADPHONE       WM97_INPUT_I2H_MUTE_MASK
#define WM97_VXDAC_HEADPHONE_VOL_MASK   WM97_INPUT_I2H_VOL_MASK
#define WM97_VXDAC_HEADPHONE_VOL( _v )  ( ((_v) << WM97_INPUT_I2H_SHIFT) & WM97_VXDAC_HEADPHONE_VOL_MASK )

#define WM97_VXDAC_MUTE_SPEAKER         WM97_INPUT_I2S_MUTE_MASK
#define WM97_VXDAC_SPEAKER_VOL_MASK     WM97_INPUT_I2S_VOL_MASK
#define WM97_VXDAC_SPEAKER_VOL( _v )    ( (( _v) << WM97_INPUT_I2S_SHIFT) & WM97_VXDAC_SPEAKER_VOL_MASK )

#define WM97_VXDAC_MUTE_MONO            WM97_INPUT_I2M_MUTE_MASK
#define WM97_VXDAC_MONO_VOL_MASK        WM97_INPUT_I2M_VOL_MASK
#define WM97_VXDAC_MONO_VOL( _v )       ( ((_v) << WM97_INPUT_I2M_SHIFT) & WM97_VXDAC_MONO_VOL_MASK )

/*
 * Defines for AUXDAC_INPUT_CONTROL register (0x64 on WM9712)
 */
#define WM97_AUXDAC_INPUT_SEL_MASK      0x8000
#define WM97_AUXDAC_FROM_SLOT           0x8000  /* 1 << 15 */
#define WM97_AUXDAC_FROM_REG            0x0000  /* 0 << 15 */

#define WM97_AUXDAC_SLOT_MASK           0x7000  /* 000 << 12 */
#define WM97_AUXDAC_SLOT_5              0x0000  /* 000 << 12 */
#define WM97_AUXDAC_SLOT_6              0x1000  /* 001 << 12 */
#define WM97_AUXDAC_SLOT_7              0x2000  /* 010 << 12 */
#define WM97_AUXDAC_SLOT_8              0x3000  /* 011 << 12 */
#define WM97_AUXDAC_SLOT_9              0x4000  /* 100 << 12 */
#define WM97_AUXDAC_SLOT_10             0x5000  /* 101 << 12 */
#define WM97_AUXDAC_SLOT_11             0x6000  /* 110 << 12 */

#define WM97_AUXDAC_DC_VAL_MASK         0x0FFF

/* Defines for WM9712 OUT3 Volume 0x16 register */
#define WM9712_OUT3_SRC                 0x0100

/* Defines for WM9713 Output PGA Mux Select 0x1C register */
#define WM9713_OUT4_PGA_MASK            0x0003
#define WM9713_OUT4_PGA_VMID            0x0000
#define WM9713_OUT4_PGA_NO_IP           0x0001
#define WM9713_OUT4_PGA_INV2            0x0002
#define WM9713_OUT3_PGA_MASK            0x000C
#define WM9713_OUT3_PGA_VMID            0x0000
#define WM9713_OUT3_PGA_NO_IP           0x0004
#define WM9713_OUT3_PGA_INV2            0x0008
#define WM9713_HPR_PGA_MASK             0x0030
#define WM9713_HPR_PGA_VMID             0x0000
#define WM9713_HPR_PGA_NO_IP            0x0010
#define WM9713_HPR_PGA_HPMIX            0x0020
#define WM9713_HPL_PGA_MASK             0x00C0
#define WM9713_HPL_PGA_VMID             0x0000
#define WM9713_HPL_PGA_NO_IP            0x0040
#define WM9713_HPL_PGA_HPMIX            0x0080
#define WM9713_SPKR_PGA_MASK            0x0700
#define WM9713_SPKR_PGA_VMID            0x0000
#define WM9713_SPKR_PGA_NO_IP           0x0100
#define WM9713_SPKR_PGA_HPMIX           0x0200
#define WM9713_SPKR_PGA_SPKMIX          0x0300
#define WM9713_SPKR_PGA_INV2            0x0400
#define WM9713_SPKL_PGA_MASK            0x3800
#define WM9713_SPKL_PGA_VMID            0x0000
#define WM9713_SPKL_PGA_NO_IP           0x0800
#define WM9713_SPKL_PGA_HPMIX           0x1000
#define WM9713_SPKL_PGA_SPKMIX          0x1800
#define WM9713_SPKR_PGA_INV1            0x2000
#define WM9713_MONO_PGA_MASK            0xC000
#define WM9713_MONO_PGA_VMID            0x0000
#define WM9713_MONO_PGA_NO_IP           0x4000
#define WM9713_MONO_PGA_MONOMIX         0x8000
#define WM9713_MONO_PGA_INV1            0xC000

/* 
 * Recommended ALC register settings for Voice and Music, 
 * see Applicarion Note: WAN 140
 */
/* ALC Control 0x60 */
#define WM97_ALC_ALCL_VOICE				(0xBU<<12)
#define WM97_ALC_ALCL_MUSIC				(0xFU<<12)
#define WM97_ALC_ALCL_MASK				(0xFU<<12)

#define WM97_ALC_HLD_VOICE				(0x0U<<8)
#define WM97_ALC_HLD_MUSIC				(0x8U<<8)
#define WM97_ALC_HLD_MASK				(0xFU<<8)

#define WM97_ALC_DCY_VOICE				(0x3U<<4)
#define WM97_ALC_DCY_MUSIC				(0x8U<<4)
#define WM97_ALC_DCY_MASK				(0xFU<<4)

#define WM97_ALC_ATK_VOICE				(0x2U)
#define WM97_ALC_ATK_MUSIC				(0x2U)
#define WM97_ALC_ATK_MASK				(0xFU)

#define WM97_ALC_CTRL_VOICE				( WM97_ALC_ALCL_VOICE || \
										  WM97_ALC_HLD_VOICE  || \
										  WM97_ALC_DCY_VOICE  || \
										  WM97_ALC_ATK_VOICE )

#define WM97_ALC_CTRL_MUSIC				( WM97_ALC_ALCL_MUSIC || \
										  WM97_ALC_HLD_MISIC  || \
										  WM97_ALC_DCY_MUSIC  || \
										  WM97_ALC_ATK_MUSIC )

/* ALC / Noise Gate Control 0x62 */
#define WM97_ALC_ALCSEL_OFF				(0x0U<<14)
#define WM97_ALC_ALCSEL_RIGHT			(0x1U<<14)
#define WM97_ALC_ALCSEL_LEFT			(0x2U<<14)
#define WM97_ALC_ALCSEL_STEREO			(0x3U<<14)
#define WM97_ALC_ALCSEL_MASK			(0x3U<<14)

#define WM97_ALC_MAXGAIN_VOICE			(0x7U<<11)
#define WM97_ALC_MAXGAIN_MUSIC			(0x7U<<11)
#define WM97_ALC_MAXGAIN_MASK			(0x7U<<11)

#define WM97_ALC_ALCZC_TIMEOUT_MUSIC	(0x3U<<9)
#define WM97_ALC_ALCZC_TIMEOUT_MASK		(0x3U<<9)

#define WM97_ALC_ALCZC_VOICE			(0x0U<<8)
#define WM97_ALC_ALCZC_MUSIC			(0x1U<<8)
#define WM97_ALC_ALCZC_MASK				(0x1U<<8)

#define WM97_ALC_NGAT_VOICE				(0x1U<<7)
#define WM97_ALC_NGAT_MUSIC				(0x1U<<7)
#define WM97_ALC_NGAT_MASK				(0x1U<<7)

#define WM97_ALC_NGG_VOICE				(0x1U<<5)
#define WM97_ALC_NGG_MUSIC				(0x1U<<5)
#define WM97_ALC_NGG_MASK				(0x1U<<5)

#define WM97_ALC_NGTH_VOICE				(0x0U)
#define WM97_ALC_NGTH_MUSIC				(0x0U)
#define WM97_ALC_NGTH_MASK				(0x1FU)

#define WM97_ALC_NOISE_GATE_VOICE		( WM97_ALC_MAXGAIN_VOICE		|| \
										  WM97_ALC_ALCZC_VOICE			|| \
										  WM97_ALC_NGAT_VOICE			|| \
										  WM97_ALC_NGG_VOICE			|| \
										  WM97_ALC_NGTH_VOICE )

#define WM97_ALC_NOISE_GATE_MUSIC		( WM97_ALC_MAXGAIN_MUSIC		|| \
										  WM97_ALC_ALCZC_TIMEOUT_MUSIC	|| \
										  WM97_ALC_ALCZC_MUSIC			|| \
										  WM97_ALC_ALCZC_MUSIC			|| \
										  WM97_ALC_NGAT_MUSIC			|| \
										  WM97_ALC_NGG_MUSIC			|| \
										  WM97_ALC_NGTH_MUSIC )

#define WM97_ALC_NOISE_GATE_MASK		( WM97_ALC_MAXGAIN_MASK			|| \
										  WM97_ALC_ALCZC_TIMEOUT_MASK	|| \
										  WM97_ALC_ALCZC_MASK			|| \
										  WM97_ALC_NGAT_MASK			|| \
										  WM97_ALC_NGG_MASK 			|| \
										  WM97_ALC_NGTH_MASK )

#endif	/* __WM97AUDIODEFS_H__ */
/*------------------------------ END OF FILE ---------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -