Go to the documentation of this file.
70 static int32_t
WM8994_ReadRegWrap(
void *handle, uint16_t Reg, uint8_t* Data, uint16_t Length);
71 static int32_t
WM8994_WriteRegWrap(
void *handle, uint16_t Reg, uint8_t* Data, uint16_t Length);
659 uint16_t tmp = 0x0001;
767 tmp = 0x3FU | 0x140U;
781 else if (Volume == 0U)
791 tmp = Volume | 0x140U;
808 tmp = Volume | 0x100U;
841 uint16_t invertedvol;
1113 uint16_t resolution = 0;
1180 *Protocol = protocol;
1372 while((pObj->
IO.
GetTick() - tickstart) < Delay)
#define WM8994_INPUT_MIXER_2
#define WM8994_SPK_RIGHT_VOL
int32_t WM8994_Reset(WM8994_Object_t *pObj)
Resets wm8994 registers.
#define WM8994_DAC2_RIGHT_VOL
static int32_t WM8994_ReadRegWrap(void *handle, uint16_t Reg, uint8_t *Data, uint16_t Length)
Function.
#define WM8994_FREQUENCY_8K
static int32_t WM8994_WriteRegWrap(void *handle, uint16_t Reg, uint8_t *Data, uint16_t Length)
Function.
#define WM8994_WRITE_SEQ_CTRL1
#define WM8994_FREQUENCY_16K
int32_t wm8994_lo_hpout1l_vol_r(wm8994_ctx_t *ctx, uint16_t *value)
int32_t WM8994_Resume(WM8994_Object_t *pObj)
Resumes playing on the audio codec.
#define WM8994_PWR_MANAGEMENT_4
#define WM8994_AIF1_ADC1_LMR
#define WM8994_IN_MIC1_MIC2
#define WM8994_AIF1_DAC2_LMR
int32_t wm8994_aif1_control1_wl_r(wm8994_ctx_t *ctx, uint16_t *value)
#define WM8994_AIF1_DAC1_RMR
#define VOLUME_IN_INVERT(Volume)
WM8994_ReadReg_Func ReadReg
WM8994_GetTick_Func GetTick
#define WM8994_AIF1_ADC1_RMR
#define WM8994_FREQUENCY_22K
#define WM8994_RIGHT_OUTPUT_VOL
#define WM8994_AIF1_ADC1_FILTERS
#define WM8994_LEFT_OUTPUT_VOL
#define WM8994_AIF1_DAC1_LMR
int32_t WM8994_Stop(WM8994_Object_t *pObj, uint32_t CodecPdwnMode)
Stops audio Codec playing. It powers down the codec.
#define VOLUME_OUT_INVERT(Volume)
#define WM8994_PWR_MANAGEMENT_1
int32_t WM8994_DeInit(WM8994_Object_t *pObj)
Deinitializes the audio codec.
#define WM8994_CHARGE_PUMP1
int32_t wm8994_sw_reset_r(wm8994_ctx_t *ctx, uint16_t *value)
#define WM8994_DAC1_LEFT_VOL
int32_t WM8994_SetFrequency(WM8994_Object_t *pObj, uint32_t AudioFreq)
Sets new frequency.
#define WM8994_PROTOCOL_DSP
int32_t wm8994_write_reg(wm8994_ctx_t *ctx, uint16_t reg, uint16_t *data, uint16_t length)
int32_t wm8994_aif1_control1_adcr_src(wm8994_ctx_t *ctx, uint16_t value)
int32_t WM8994_SetMute(WM8994_Object_t *pObj, uint32_t Cmd)
Enables or disables the mute feature on the audio codec.
#define WM8994_INPUT_MIXER_3
#define WM8994_AIF1_ADC2_FILTERS
#define WM8994_OUT_SPEAKER
#define WM8994_FREQUENCY_11K
WM8994_Write_Func WriteReg
int32_t wm8994_aif1_control1_fmt(wm8994_ctx_t *ctx, uint16_t value)
#define WM8994_AIF1_DAC1_FILTER1
int32_t WM8994_SetProtocol(WM8994_Object_t *pObj, uint32_t Protocol)
Set Audio Protocol.
int32_t WM8994_GetVolume(WM8994_Object_t *pObj, uint32_t InputOutput, uint8_t *Volume)
Get higher or lower the codec volume level.
int32_t WM8994_Init(WM8994_Object_t *pObj, WM8994_Init_t *pInit)
Initializes the audio codec and the control interface.
#define WM8994_AIF1_DAC2_RMR
#define WM8994_AIF1_ADC1_LEFT_VOL
#define WM8994_PROTOCOL_I2S
WM8994_WriteReg_Func WriteReg
int32_t WM8994_SetResolution(WM8994_Object_t *pObj, uint32_t Resolution)
Set Audio resolution.
WM8994_DeInit_Func DeInit
#define WM8994_OUTPUT_MIXER_2
#define WM8994_OUTPUT_MIXER_1
int32_t WM8994_Pause(WM8994_Object_t *pObj)
Pauses playing on the audio codec.
int32_t WM8994_ReadID(WM8994_Object_t *pObj, uint32_t *Id)
Get the WM8994 ID.
#define WM8994_DAC2_LEFT_VOL
#define WM8994_LEFT_LINE_IN12_VOL
#define WM8994_FREQUENCY_32K
#define WM8994_AIF1_ADC2_LMR
#define WM8994_PWR_MANAGEMENT_3
WM8994_Drv_t WM8994_Driver
#define WM8994_RESOLUTION_24b
#define WM8994_RESOLUTION_16b
static uint8_t ColdStartup
#define WM8994_OVERSAMPLING
int32_t wm8994_aif1_control1_fmt_r(wm8994_ctx_t *ctx, uint16_t *value)
int32_t WM8994_SetOutputMode(WM8994_Object_t *pObj, uint32_t Output)
Switch dynamically (while audio file is played) the output target (speaker or headphone).
#define WM8994_RESOLUTION_20b
#define WM8994_RESOLUTION_32b
int32_t WM8994_SetVolume(WM8994_Object_t *pObj, uint32_t InputOutput, uint8_t Volume)
Set higher or lower the codec volume level.
int32_t WM8994_GetResolution(WM8994_Object_t *pObj, uint32_t *Resolution)
Get Audio resolution.
#define WM8994_INPUT_MIXER_4
int32_t wm8994_aif1_control1_wl(wm8994_ctx_t *ctx, uint16_t value)
#define WM8994_FREQUENCY_96K
#define WM8994_PWR_MANAGEMENT_2
#define WM8994_AIF1_ADC2_RMR
#define WM8994_FREQUENCY_44K
#define WM8994_SPKMIXR_ATT
#define WM8994_SPK_LEFT_VOL
#define WM8994_AIF1_CLOCKING1
#define WM8994_SPEAKER_MIXER
#define WM8994_AIF1_MASTER_SLAVE
#define WM8994_AIF1_ADC2_RIGHT_VOL
int32_t WM8994_RegisterBusIO(WM8994_Object_t *pObj, WM8994_IO_t *pIO)
Function.
int32_t wm8994_sw_reset_w(wm8994_ctx_t *ctx, uint16_t value)
#define WM8994_SPKMIXL_ATT
This file contains all the functions prototypes for the wm8994.c driver.
#define WM8994_DAC1_RIGHT_VOL
int32_t WM8994_GetProtocol(WM8994_Object_t *pObj, uint32_t *Protocol)
Get Audio Protocol.
#define WM8994_AIF1_DAC2_FILTER1
#define WM8994_RIGHT_LINE_IN12_VOL
static int32_t WM8994_Delay(WM8994_Object_t *pObj, uint32_t Delay)
This function provides accurate delay (in milliseconds)
int32_t WM8994_Play(WM8994_Object_t *pObj)
Start the audio Codec play feature.
#define WM8994_PWR_MANAGEMENT_5
#define WM8994_AIF1_ADC1_RIGHT_VOL
int32_t wm8994_aif1_adc1_left_vol_adc1l_r(wm8994_ctx_t *ctx, uint16_t *value)
int32_t wm8994_aif1_sr_r(wm8994_ctx_t *ctx, uint16_t *value)
#define WM8994_OUT_HEADPHONE
#define WM8994_AIF1_ADC2_LEFT_VOL
int32_t WM8994_GetFrequency(WM8994_Object_t *pObj, uint32_t *AudioFreq)
Get frequency.
#define WM8994_FREQUENCY_48K