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

📄 wm8753registerdefs.h

📁 pxa270平台 windows mobile 5.2 wm9713 触摸屏+音频驱动
💻 H
📖 第 1 页 / 共 4 页
字号:
#define WM8753_OUTVOL_MIN           0x30
#define WM8753_OUTVOL_RANGE         (WM8753_OUTVOL_MAX - WM8753_OUTVOL_MIN)
#define WM8753_OUTVOL_0DB           0x79
#define WM8753_OUTVOL(_dB)          (WM8753_OUTVOL_0DB + (_dB))
#define WM8753_OUTVOL_MUTE          0x00

/*
 * OUTPUT_CONTROL (0x2D)
 */
#define WM8753_MONO2SEL_MASK        ((WM_REGVAL)(3U << 7))   /* MONO2SW - [8:7] */
#define WM8753_MONO2SEL_MONO1INV    ((WM_REGVAL)(0U << 7))   /* 00: MONO1 inverted */
#define WM8753_MONO2SEL_LMIX_2      ((WM_REGVAL)(1U << 7))   /* 01: LMIX/2 */
#define WM8753_MONO2SEL_RMIX_2      ((WM_REGVAL)(2U << 7))   /* 10: RMIX/2 */
#define WM8753_MONO2SEL_MIXERS_2    ((WM_REGVAL)(3U << 7))   /* 11: (LMIX+RMIX)/2 */

#define WM8753_HPSWITCHENABLE       ((WM_REGVAL)(1U << 6))   /* HPSWEN: Enable headphone switch */
#define WM8753_HPSWITCH_HEADPHONE   ((WM_REGVAL)(0U << 5))   /* HPSWPOL: GPIO4 high = headphone */     
#define WM8753_HPSWITCH_SPEAKER     ((WM_REGVAL)(1U << 5))   /* HPSWPOL: GPIO4 high = speaker */
#define WM8753_HPSWITCH_MASK        ((WM_REGVAL)(3U << 5))   /* Mask for WM8753_HPSWITCHENABLE |  */
															 /* WM8753_HPSWITCH_SPEAKER | WM8753_HPSWITCH_HEADPHONE  */


#define WM8753_THERMALSHUTDOWN_EN   ((WM_REGVAL)(1U << 4))   /* TSDEN: Thermal shutdown enable */

#define WM8753_ROUT2INV             ((WM_REGVAL)(1U << 2))   /* ROUT2INV */

#define WM8753_VREFOUT_500          ((WM_REGVAL)(0U << 3))   /* VROI: 500 Ohm */
#define WM8753_VREFOUT_90K          ((WM_REGVAL)(1U << 3))   /* VROI: 90 kOhm */

#define WM8753_OUT3SEL_MASK         ((WM_REGVAL)(3U << 0))   /* OUT3SW - [1:0] */
#define WM8753_OUT3SEL_VREF         ((WM_REGVAL)(0U << 0))   /* 00: VREF */
#define WM8753_OUT3SEL_ROUT2        ((WM_REGVAL)(1U << 0))   /* 01: ROUT2 */
#define WM8753_OUT3SEL_MIXERS_2     ((WM_REGVAL)(2U << 0))   /* 10: (LMIX+RMIX)/2 */

/* 
 * ADC input mode ( 0x2E )
 */
#define WM8753_MONOMIX_MASK         ((WM_REGVAL)(3U << 4))   /* MONOMIX - [5:4] */
#define WM8753_MONOMIX_STEREO       ((WM_REGVAL)(0U << 4))   /* 00: Stereo */
#define WM8753_MONOMIX_ANALOG_LEFT  ((WM_REGVAL)(1U << 4))   /* 01: Analogue Mono Mix (using left ADC) */
#define WM8753_MONOMIX_ANALOG_RIGHT ((WM_REGVAL)(2U << 4))   /* 10: Analogue Mono Mix (using right ADC) */
#define WM8753_MONOMIX_DIGITAL      ((WM_REGVAL)(3U << 4))   /* 11: Digital Mono Mix */
#define WM8753_RIGHTADCSEL_MASK     ((WM_REGVAL)(3U << 2))   /* RADCSEL - [3:2] */
#define WM8753_RIGHTADCSEL_PGA      ((WM_REGVAL)(0U << 2))   /* 00: PGA */
#define WM8753_RIGHTADCSEL_LINE2    ((WM_REGVAL)(1U << 2))   /* 01: LINE2 or RXP-RXN */
#define WM8753_RIGHTADCSEL_RXP_RXN  ((WM_REGVAL)(1U << 2))   /* 01: LINE2 or RXP-RXN */
#define WM8753_RIGHTADCSEL_LRM      ((WM_REGVAL)(2U << 2))   /* 10: Left + Right + Mono output Mix */
#define WM8753_LEFTADCSEL_MASK      ((WM_REGVAL)(3U << 0))   /* LADCSEL - [1:0] */
#define WM8753_LEFTADCSEL_PGA       ((WM_REGVAL)(0U << 0))   /* 00: PGA */
#define WM8753_LEFTADCSEL_LINE1     ((WM_REGVAL)(1U << 0))   /* 01: LINE1 or RXP-RXN */
#define WM8753_LEFTADCSEL_RXP_RXN   ((WM_REGVAL)(1U << 0))   /* 01: LINE1 or RXP-RXN */
#define WM8753_LEFTADCSEL_LINE1DC   ((WM_REGVAL)(2U << 0))   /* 10: LINE1 DC measurement */

/* 
 * Input Control 1 ( 0x2F ) 
 */
#define WM8753_MICBOOST_MASK        3U
#define WM8753_MICBOOST_12DB        0U
#define WM8753_MICBOOST_18DB        1U
#define WM8753_MICBOOST_24DB        2U
#define WM8753_MICBOOST_30DB        3U
#define WM8753_MICBOOST_MAX         WM8753_MICBOOST_30DB
#define WM8753_MICBOOST_MIN         WM8753_MICBOOST_12DB
#define WM8753_MICBOOST_RANGE       (WM8753_MICBOOST_MAX - WM8753_MICBOOST_MIN)

#define WM8753_MIC2BOOST_SHIFT      7
#define WM8753_MIC2BOOST_MASK       ((WM_REGVAL)(WM8753_MICBOOST_MASK << WM8753_MIC2BOOST_SHIFT))  /* MIC2BOOST - [8:7] */
#define WM8753_MIC2BOOST_12DB       ((WM_REGVAL)(WM8753_MICBOOST_12DB << WM8753_MIC2BOOST_SHIFT))  /* 00: +12dB */
#define WM8753_MIC2BOOST_18DB       ((WM_REGVAL)(WM8753_MICBOOST_18DB << WM8753_MIC2BOOST_SHIFT))  /* 01: +18dB */
#define WM8753_MIC2BOOST_24DB       ((WM_REGVAL)(WM8753_MICBOOST_24DB << WM8753_MIC2BOOST_SHIFT))  /* 10: +24dB */
#define WM8753_MIC2BOOST_30DB       ((WM_REGVAL)(WM8753_MICBOOST_30DB << WM8753_MIC2BOOST_SHIFT))  /* 11: +30dB */

#define WM8753_MIC1BOOST_SHIFT      5
#define WM8753_MIC1BOOST_MASK       ((WM_REGVAL)(WM8753_MICBOOST_MASK << WM8753_MIC1BOOST_SHIFT))  /* MIC1BOOST - [6:5] */
#define WM8753_MIC1BOOST_12DB       ((WM_REGVAL)(WM8753_MICBOOST_12DB << WM8753_MIC1BOOST_SHIFT))  /* 00: +12dB */
#define WM8753_MIC1BOOST_18DB       ((WM_REGVAL)(WM8753_MICBOOST_18DB << WM8753_MIC1BOOST_SHIFT))  /* 01: +18dB */
#define WM8753_MIC1BOOST_24DB       ((WM_REGVAL)(WM8753_MICBOOST_24DB << WM8753_MIC1BOOST_SHIFT))  /* 10: +24dB */
#define WM8753_MIC1BOOST_30DB       ((WM_REGVAL)(WM8753_MICBOOST_30DB << WM8753_MIC1BOOST_SHIFT))  /* 11: +30dB */

#define WM8753_LINEMIXSEL_MASK      ((WM_REGVAL)(3U << 3))  /* LMSEL - [4:3] */
#define WM8753_LINEMIXSEL_1PLUS2    ((WM_REGVAL)(0U << 3))  /* 00: LINE1 + LINE2 */
#define WM8753_LINEMIXSEL_MIX       WM8753_LINEMIXSEL_1PLUS2
#define WM8753_LINEMIXSEL_1MINUS2   ((WM_REGVAL)(1U << 3))  /* 01: LINE1 - LINE2 */
#define WM8753_LINEMIXSEL_DIFF      WM8753_LINEMIXSEL_1MINUS2
#define WM8753_LINEMIXSEL_1ONLY     ((WM_REGVAL)(2U << 3))  /* 10: LINE1 (LINE2 disconnected) */
#define WM8753_LINEMIXSEL_2ONLY     ((WM_REGVAL)(3U << 3))  /* 11: LINE2 (LINE1 disconnected) */

#define WM8753_MONOMUXSEL_MASK      ((WM_REGVAL)(1U << 2))  /* MM: [2] */
#define WM8753_MONOMUXSEL_LINE      ((WM_REGVAL)(0U << 2))  /* MM: Line Mix Output */
#define WM8753_MONOMUXSEL_RX        ((WM_REGVAL)(1U << 2))  /* MM: Rx Mix Output (RXP +/- RXN) */

#define WM8753_RIGHTMUXSEL_MASK     ((WM_REGVAL)(1U << 1))  /* RM: [1] */
#define WM8753_RIGHTMUXSEL_LINE2    ((WM_REGVAL)(0U << 1))  /* RM: LINE 2 */
#define WM8753_RIGHTMUXSEL_RX       ((WM_REGVAL)(1U << 1))  /* RM: Rx Mix Output (RXP +/- RXN) */

#define WM8753_LEFTMUXSEL_MASK      ((WM_REGVAL)(1U << 0))  /* LM: [0] */
#define WM8753_LEFTMUXSEL_LINE1     ((WM_REGVAL)(0U << 0))  /* LM: LINE 1 */
#define WM8753_LEFTMUXSEL_RX        ((WM_REGVAL)(1U << 0))  /* LM: Rx Mix Output (RXP +/- RXN) */

/* 
 * Input Control 2 (0x30) 
 */
#define WM8753_RXMSEL_MASK          ((WM_REGVAL)(3U << 6))  /* RXMSEL - [7:6] */
#define WM8753_RXMSEL_RXP_MINUS_RXN ((WM_REGVAL)(0U << 6))  /* 00: RXP - RXN */
#define WM8753_RXMSEL_RXP_PLUS_RXN  ((WM_REGVAL)(1U << 6))  /* 01: RXP + RXN */
#define WM8753_RXMSEL_RXP           ((WM_REGVAL)(2U << 6))  /* 10: RXP (RXN disconnected) */
#define WM8753_RXMSEL_RXN           ((WM_REGVAL)(3U << 6))  /* 11: RXN (RXP disconnected) */
#define WM8753_MICMUX_MASK          ((WM_REGVAL)(3U << 4))  /* MICMUX - [5:4] */
#define WM8753_MICMUX_LEFT_PGA      ((WM_REGVAL)(0U << 4))  /* 00: Sidetone = Left PGA output */
#define WM8753_MICMUX_MIC1          ((WM_REGVAL)(1U << 4))  /* 01: Sidetone = Mic 1 preamp output */
#define WM8753_MICMUX_MIC2          ((WM_REGVAL)(2U << 4))  /* 10: Sidetone = Mic 2 preamp output */
#define WM8753_MICMUX_RIGHT_PGA     ((WM_REGVAL)(3U << 4))  /* 11: Sidetone = Right PGA output */
#define WM8753_LINEALC              ((WM_REGVAL)(1U << 3))  /* LINEALC: Line mix selected into ALC mix */
#define WM8753_MIC2ALC              ((WM_REGVAL)(1U << 2))  /* MIC2ALC: Mic 2 selected into ALC mix */
#define WM8753_MIC1ALC              ((WM_REGVAL)(1U << 1))  /* MIC1ALC: Mic 1 selected into ALC mix */
#define WM8753_RXALC                ((WM_REGVAL)(1U << 0))  /* RXALC: RX selected into ALC mix */

/*
 * IN volumes (0x31/0x32)
 * 
 * 11_1111 = +30dB
 * ... (0.75dB steps)
 * 00_0000 = -17.25dB
 * 
 */
#define WM8753_INVOL_MUTE           ((WM_REGVAL)(1U << 7))  /* LINMUTE/RINMUTE */
#define WM8753_INVOL_ZEROCROSS      ((WM_REGVAL)(1U << 6))  /* LZCEN/RZCEN */
#define WM8753_INVOL_MASK           0x03F                   /* LINVOL/RINVOL */
#define WM8753_INVOL_MAX            0x3F
#define WM8753_INVOL_MIN            0x00
#define WM8753_INVOL_RANGE          (WM8753_INVOL_MAX - WM8753_INVOL_MIN)
#define WM8753_INVOL_0DB            0x17
#define WM8753_INVOL(_dB)           (WM8753_INVOL_0DB + ( (4*(_dB)) / 3 ) )

/* 
 * Mic Bias comp control ( 0x33 ) 
 */
 
/*
 * CLOCK control (0x34)
 */
#define WM8753_VXCLK_DIV_MASK       ((WM_REGVAL)(7U << 6))   /* PCMDIV - [8:6] */
#define WM8753_VXCLK_DIV_1          ((WM_REGVAL)(0U << 6))   /* 000: divide by 1 */
#define WM8753_VXCLK_DIV_2          ((WM_REGVAL)(4U << 6))   /* 100: divide by 2 */
#define WM8753_VXCLK_DIV_3          ((WM_REGVAL)(2U << 6))   /* 010: divide by 3 */
#define WM8753_VXCLK_DIV_4          ((WM_REGVAL)(5U << 6))   /* 101: divide by 4 */
#define WM8753_VXCLK_DIV_5_5        ((WM_REGVAL)(3U << 6))   /* 011: divide by 5.5 */
#define WM8753_VXCLK_DIV_6          ((WM_REGVAL)(6U << 6))   /* 110: divide by 6 */
#define WM8753_VXCLK_DIV_8          ((WM_REGVAL)(7U << 6))   /* 111: divide by 8 */

#define WM8753_SWITCH_MCLK          ((WM_REGVAL)(0U << 5))   /* SLWCLK - timeout and headphone switch from MCLK */
#define WM8753_SWITCH_PCMCLK        ((WM_REGVAL)(1U << 5))   /* SLWCLK - timeout and headphone switch from PCMCLK */

#define WM8753_MCLKSEL_MASK         ((WM_REGVAL)(1U << 4))   /* MCLKSEL: [4] */
#define WM8753_MCLKSEL_PCMCLK       ((WM_REGVAL)(0U << 4))   /* MCLKSEL: Master clock for HIFI from MCLK pin */
#define WM8753_MCLKSEL_PLL1         ((WM_REGVAL)(1U << 4))   /* MCLKSEL: Master clock for HIFI from PLL1 (instead of MCLK pin) */
#define WM8753_PCMCLKSEL_MASK       ((WM_REGVAL)(1U << 3))   /* PCMCLKSEL: [3] */
#define WM8753_PCMCLKSEL_PCMCLK     ((WM_REGVAL)(0U << 3))   /* PCMCLKSEL: Master clock for Voice from MCLK pin */
#define WM8753_PCMCLKSEL_PLL2       ((WM_REGVAL)(1U << 3))   /* PCMCLKSEL: Master clock for Voice from PLL2 (instead of MCLK pin) */
#define WM8753_VXCLOCK_MASK         ((WM_REGVAL)(1U << 2))   /* CLKEQ: [2] */
#define WM8753_VXCLOCK_PLL2         ((WM_REGVAL)(0U << 2))   /* CLKEQ: Voice clock from PCMCLK or PLL2 */
#define WM8753_VXCLOCK_PCM          ((WM_REGVAL)(0U << 2))   /* CLKEQ: Voice clock from PCMCLK or PLL2 */
#define WM8753_VXCLOCK_HIFI         ((WM_REGVAL)(1U << 2))   /* CLKEQ: Voice clock same as HiFi clock */
#define WM8753_GP1CLK1_MASK         ((WM_REGVAL)(1U << 1))   /* GP1CLK1SEL: [1] */
#define WM8753_GP1CLK1_CLOCK        ((WM_REGVAL)(1U << 1))   /* GP1CLK1SEL: 0 = GP1, 1 = CLK1 */
#define WM8753_GP1CLK1_GPIO         ((WM_REGVAL)(0U << 1))   /* GP1CLK1SEL: 0 = GP1, 1 = CLK1 */
#define WM8753_GP2CLK2_MASK         ((WM_REGVAL)(1U << 0))   /* GP2CLK2SEL: [0] */
#define WM8753_GP2CLK2_CLOCK        ((WM_REGVAL)(1U << 0))   /* GP2CLK2SEL: 0 = GP1, 1 = CLK1 */
#define WM8753_GP2CLK2_GPIO         ((WM_REGVAL)(0U << 0))   /* GP2CLK2SEL: 0 = GP1, 1 = CLK1 */

/*
 * PLL CONTROL1 (PLL1:0x35/PLL2:0x39)
 */
#define WM8753_CLOCKOUT_MCLK        ((WM_REGVAL)(0U << 5))   /* CLK1SEL/CLK2SEL: CLKOUT from MCLK */
#define WM8753_CLOCKOUT_PLL         ((WM_REGVAL)(1U << 5))   /* CLK1SEL/CLK2SEL: CLKOUT from PLL */
#define WM8753_PLLCLOCK_DIV2        ((WM_REGVAL)(1U << 4))   /* CLK1DIV2/CLK2DIV2: CLKOUT divide by 2 */
#define WM8753_MCLK_DIV2            ((WM_REGVAL)(1U << 3))   /* MCLK1DIV2/MCLK2DIV2: MCLK divide by 2 */
#define WM8753_PLLOUT_DIV2          ((WM_REGVAL)(1U << 2))   /* PLL1DIV2/PLL2DIV2: PLL output divide by 2 */
#define WM8753_PLL_ACTIVE           ((WM_REGVAL)(1U << 1))   /* PLL1RB/PLL2RB: "reset bar" = PLL active */
#define WM8753_PLL_ENABLE           ((WM_REGVAL)(1U << 0))   /* PLL1EN/PLL2EN: PLL enabled */

/*
 * PLL CONTROL2/3/4 (PLL1: 0x36/7/8 & PLL2: 0x3A/B/C)
 */
#define WM8753_PLL_N_MASK           ((WM_REGVAL)(0xFU << 5)) /* PLL1N/PLL2N - [8:5] - in reg 2*/
#define WM8753_PLL_N(_n)            ((WM_REGVAL)((_n) << 5))
#define WM8753_PLL_K2_MASK          0x00F       /* PLL1K/PLL2K[21:18] - in reg 2 */
#define WM8753_PLL_K2(_k)           (((_k) & 0x3C0000) >> 18) /* reg 2 bits - [21:18] */
#define WM8753_PLL_K3(_k)           (((_k) & 0x03FE00) >> 9)  /* reg 3 bits - [17:9] */
#define WM8753_PLL_K4(_k)           (((_k) & 0x0001FF))       /* reg 4 bits - [8:0] */
#define WM8753_PLL_R2VAL(_n, _k)    (WM8753_PLL_N(_n) | WM8753_PLL_K2(_k))
#define WM8753_PLL_R3VAL(_n, _k)    (WM8753_PLL_K3(_k))
#define WM8753_PLL_R4VAL(_n, _k)    (WM8753_PLL_K4(_k))

/*
 * 0x3D
#define WM8753_BIAS_CONTROL                         0x3D
 */

/*
 * 0x3E is undefined
 */
 
/*
 * ADD_CONTROL_2 (0x3F)
 */
#define WM8753_OUT4SEL_MASK         ((WM_REGVAL)(3U << 7))   /* OUT4SW - [8:7] */
#define WM8753_OUT4SEL_VREF         ((WM_REGVAL)(0U << 7))   /* 00: VREF */
#define WM8753_OUT4SEL_RECMIX       ((WM_REGVAL)(1U << 7))   /* 01: Record Mixer */
#define WM8753_OUT4SEL_LOUT2        ((WM_REGVAL)(2U << 7))   /* 10: LOUT2 */

#define WM8753_THERMALSHUT_OUTPUTS  ((WM_REGVAL)(1U << 6))   /* TSDADEN: Thermal shutdown shuts down   */
                                                /* speaker and headphone outputs */

#define WM8753_FULL_OUTPUT_BIAS     ((WM_REGVAL)(0U << 1))   /* OPBIASX0P5: 1x Analogue output bias current */
#define WM8753_HALF_OUTPUT_BIAS     ((WM_REGVAL)(1U << 1))   /* OPBIASX0P5: 0.5x Analogue output bias current */
#define WM8753_FULL_DAC_MIXER_BIAS  ((WM_REGVAL)(0U << 0))   /* DMBIASX0P5: 1x DAC/Mixer bias current */
#define WM8753_HALF_DAC_MIXER_BIAS  ((WM_REGVAL)(1U << 0))   /* DMBIASX0P5: 0.5x DAC/Mixer bias current */

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

⌨️ 快捷键说明

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