Files
banban/ql-kernel/threadx/common/include/AudioHAL.h

906 lines
25 KiB
C

/*--------------------------------------------------------------------------------------------------------------------
(C) Copyright 2018 ASR Ltd. All Rights Reserved
-------------------------------------------------------------------------------------------------------------------*/
/******************************************************************************
* MODULE IMPLEMENTATION FILE
*******************************************************************************
* Title: Header for Audio HAL
*
* Filename: AudioHAL.h
*
* Authors: Jackie Fan
*
* Description: Header file for Audio HAL.
*
* Last Updated:
*
* Notes:
******************************************************************************/
#ifndef _AUDIOHAL_H_
#define _AUDIOHAL_H_
#ifdef __cplusplus
extern "C"{
#endif
#include "gbl_types.h"
#include "audio_def.h"
/******************************************************************
CP audio local enumerations
*******************************************************************/
//ICAT EXPORTED ENUM
typedef enum{
HEAD_PHONE_INIT = 0,
HEAD_PHONE_OUT, // 1
HEAD_TYPE_UNKNOWN, // 2
HEAD_PHONE_TYPE3, // 3
HEAD_PHONE_TYPE4, // 4
HEAD_PHONE_TYPE_C_REVERSE, // 5
HEAD_PHONE_TYPE_C, // 6
HEAD_PHONE_ERROR = 0xFFFF
}HEADPHONE_STATE;
//ICAT EXPORTED ENUM
typedef enum{
HOOK_KEY_EVENT_NULL = 0,
VOL_UP_PRESS, // 1
VOL_DOWN_PRESS, // 2
HOOK_KEY_PRESS, // 3
VOL_UP_RELEASE, // 4
VOL_DOWN_RELEASE, // 5
HOOK_KEY_RELEASE, // 6
HEADPHONE_EVENT_ERROR = 0xFFFF
}HEADPHONE_EVENT;
#define AUDIOHAL_STREAM_SUPPORT
#if FEATURE_AUDIO_HAL_STREAM == 0
#undef AUDIOHAL_STREAM_SUPPORT
#endif
//AudioHAL task flags:
#define AUDIO_RESAMPLE_FLAGS_PLAYBACK (0x01)
#define AUDIO_RESAMPLE_FLAGS_RECORD (0x02)
#define AUDIO_HEADSET_FLAG (0x04)
#define AUDIO_CODEC_UPDATE_EVENT (0x08)
#define AUDIO_VOICE_CALL_START (0x10)
#define AUDIO_VOICE_CALL_END (0x20)
#define AUDIO_MEDIA_STOP (0x40)
#define AUDIO_MEDIA_START (0x80)
#define AUDIO_GETVOICE_EVENT (0x100)
#define AUDIO_PMIC_CHECK (0x200)
#define AUDIO_POC_DATA_EVENT (0x400)
#define AUDIO_DTMFDETECTION_EVENT (0x800)
#define AUDIO_EXTRA_EVENT (0x1000)
#define AUDIOHAL_FLAGS_MASK (AUDIO_RESAMPLE_FLAGS_PLAYBACK\
| AUDIO_RESAMPLE_FLAGS_RECORD\
| AUDIO_HEADSET_FLAG\
| AUDIO_CODEC_UPDATE_EVENT\
| AUDIO_VOICE_CALL_END\
| AUDIO_VOICE_CALL_START\
| AUDIO_MEDIA_START\
| AUDIO_MEDIA_STOP\
| AUDIO_PMIC_CHECK\
| AUDIO_POC_DATA_EVENT\
| AUDIO_DTMFDETECTION_EVENT\
| AUDIO_GETVOICE_EVENT\
| AUDIO_EXTRA_EVENT)
/******************************************************************
Enumerations shared with upper layer
*******************************************************************/
#define AUDIOHAL_VOLCNT 9 //0~8
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_ERR_NO = 0, //No error
AUDIOHAL_ERR_RESOURCE_RESET,
AUDIOHAL_ERR_RESOURCE_BUSY,
AUDIOHAL_ERR_RESOURCE_TIMEOUT,
AUDIOHAL_ERR_RESOURCE_NOT_ENABLED,
AUDIOHAL_ERR_BAD_PARAMETER,
AUDIOHAL_ERR_UART_RX_OVERFLOW,
AUDIOHAL_ERR_UART_TX_OVERFLOW,
AUDIOHAL_ERR_UART_PARITY,
AUDIOHAL_ERR_UART_FRAMING,
AUDIOHAL_ERR_UART_BREAK_INT,
AUDIOHAL_ERR_TIM_RTC_NOT_VALID,
AUDIOHAL_ERR_TIM_RTC_ALARM_NOT_ENABLED,
AUDIOHAL_ERR_TIM_RTC_ALARM_NOT_DISABLED,
AUDIOHAL_ERR_COMMUNICATION_FAILED,
/* Must be at the end */
AUDIOHAL_ERR_QTY,
AUDIOHAL_ERR_ENUM_32_BIT = 0x7FFFFFFF //32bit enum compiling enforcement
} AUDIOHAL_ERR_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_ITF_RECEIVER = 0,
AUDIOHAL_ITF_EARPIECE,
AUDIOHAL_ITF_HEADPHONE = AUDIOHAL_ITF_EARPIECE,
AUDIOHAL_ITF_LOUDSPEAKER,
AUDIOHAL_ITF_LOUDSPEAKER_AND_HEADPHONE,
//AUDIOHAL_ITF_LOUDSPEAKER_AND_HEADPHONE = AUDIOHAL_ITF_LOUDSPEAKER_AND_EARPIECE,
AUDIOHAL_ITF_BLUETOOTH,
AUDIOHAL_ITF_FM,
AUDIOHAL_ITF_FM2SPK,
AUDIOHAL_ITF_TV,
AUDIOHAL_ITF_BLUETOOTH_WB,
AUDIOHAL_ITF_HS_LEFT,
AUDIOHAL_ITF_HS_RIGHT,
AUDIOHAL_ITF_VAD,
AUDIOHAL_ITF_FM2RCV,
AUDIOHAL_ITF_QTY,
AUDIOHAL_ITF_NONE = 255,
} AUDIOHAL_ITF_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_SPK_RECEIVER = 0,
AUDIOHAL_SPK_EARPIECE,
AUDIOHAL_SPK_LOUDSPEAKER,
AUDIOHAL_SPK_LOUDSPEAKER_EARPIECE, //Output on both hands-free loud speaker and earpiece
AUDIOHAL_SPK_QTY,
AUDIOHAL_SPK_DISABLE = 255,
} AUDIOHAL_SPK_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_SPEAKER_STEREO = 0,
AUDIOHAL_SPEAKER_MONO_RIGHT,
AUDIOHAL_SPEAKER_MONO_LEFT,
AUDIOHAL_SPEAKER_STEREO_NA, //Output is mono only
AUDIOHAL_SPEAKER_QTY,
AUDIOHAL_SPEAKER_DISABLE = 255,
} AUDIOHAL_SPEAKER_TYPE_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_MIC_RECEIVER = 0,
AUDIOHAL_MIC_EARPIECE,
AUDIOHAL_MIC_LOUDSPEAKER,
AUDIOHAL_MIC_QTY,
AUDIOHAL_MIC_DISABLE = 255,
} AUDIOHAL_MIC_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_SPK_MUTE = 0,
AUDIOHAL_SPK_VOL_1,
AUDIOHAL_SPK_VOL_2,
AUDIOHAL_SPK_VOL_3,
AUDIOHAL_SPK_VOL_4,
AUDIOHAL_SPK_VOL_5,
AUDIOHAL_SPK_VOL_6,
AUDIOHAL_SPK_VOL_7,
AUDIOHAL_SPK_VOL_8,
AUDIOHAL_SPK_VOL_9,
AUDIOHAL_SPK_VOL_10,
AUDIOHAL_SPK_VOL_11, // 11
AUDIOHAL_SPK_VOL_QTY // 12
} AUDIOHAL_SPK_LEVEL_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_MIC_MUTE = 0,
AUDIOHAL_MIC_ENABLE,
AUDIOHAL_MIC_VOL_QTY,
} AUDIOHAL_MIC_LEVEL_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_SIDE_MUTE = 0,
AUDIOHAL_SIDE_VOL_1,
AUDIOHAL_SIDE_VOL_2,
AUDIOHAL_SIDE_VOL_3,
AUDIOHAL_SIDE_VOL_4,
AUDIOHAL_SIDE_VOL_5,
AUDIOHAL_SIDE_VOL_6,
AUDIOHAL_SIDE_VOL_7,
AUDIOHAL_SIDE_VOL_TEST,
AUDIOHAL_SIDE_VOL_QTY,
} AUDIOHAL_SIDE_LEVEL_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_FREQ_8000HZ = 8000,
AUDIOHAL_FREQ_11025HZ = 11025,
AUDIOHAL_FREQ_12000HZ = 12000,
AUDIOHAL_FREQ_16000HZ = 16000,
AUDIOHAL_FREQ_22050HZ = 22050,
AUDIOHAL_FREQ_24000HZ = 24000,
AUDIOHAL_FREQ_32000HZ = 32000,
AUDIOHAL_FREQ_44100HZ = 44100,
AUDIOHAL_FREQ_48000HZ = 48000,
AUDIOHAL_FREQ_64000HZ = 64000,
AUDIOHAL_FREQ_88200HZ = 88200,
AUDIOHAL_FREQ_96000HZ = 96000,
} AUDIOHAL_FREQ_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_MONO = 1,
AUDIOHAL_STEREO = 2,
} AUDIOHAL_CH_NB_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_DTMF_0 = 0,
AUDIOHAL_DTMF_1,
AUDIOHAL_DTMF_2,
AUDIOHAL_DTMF_3,
AUDIOHAL_DTMF_4,
AUDIOHAL_DTMF_5,
AUDIOHAL_DTMF_6,
AUDIOHAL_DTMF_7,
AUDIOHAL_DTMF_8,
AUDIOHAL_DTMF_9,
AUDIOHAL_DTMF_A,
AUDIOHAL_DTMF_B,
AUDIOHAL_DTMF_C,
AUDIOHAL_DTMF_D,
AUDIOHAL_DTMF_S, //* key
AUDIOHAL_DTMF_P, //# key
AUDIOHAL_COMFORT_425,
AUDIOHAL_COMFORT_950,
AUDIOHAL_COMFORT_1400,
AUDIOHAL_COMFORT_1800,
} AUDIOHAL_TONE_TYPE_T;
//ICAT EXPORTED ENUM
typedef enum
{
AUDIOHAL_TONE_0DB = 0,
AUDIOHAL_TONE_M3DB, // -3 dB
AUDIOHAL_TONE_M9DB, // -9 dB
AUDIOHAL_TONE_M15DB, // -15 dB
AUDIOHAL_TONE_QTY
} AUDIOHAL_TONE_ATTENUATION_T;
//ICAT EXPORTED ENUM
typedef enum{
AUDIOHAL_HEADPHONE_PLUG_OUT = 0,
AUDIOHAL_HEADPHONE_PLUG_IN = 1
}AUDIOHAL_HEADPHONE_PLUG_T;
//ICAT EXPORTED ENUM
typedef enum{
AUDIOHAL_HEADPHONE_TYPE_NULL = 0,
AUDIOHAL_HEADPHONE_TYPE_UNKNOWN = 1,
AUDIOHAL_HEADPHONE_TYPE_3 = 3, //HEAD_PHONE_TYPE3
AUDIOHAL_HEADPHONE_TYPE_4 = 4 //HEAD_PHONE_TYPE4
}AUDIOHAL_HEADPHONE_TYPE_T;
//ICAT EXPORTED ENUM
typedef enum{
AUDIOHAL_HEADPHONE_EVENT_NULL = 0,
AUDIOHAL_HEADPHONE_EVENT_VOLUME_UP = 1,
AUDIOHAL_HEADPHONE_EVENT_VOLUME_DOWN= 2,
AUDIOHAL_HEADPHONE_EVENT_HOOK_KEY = 3,
AUDIOHAL_HEADPHONE_EVENT_TYPE_C_REVERSE = 7
}AUDIOHAL_HEADPHONE_EVENT_T;
//ICAT EXPORTED ENUM
typedef enum {
AUDIOHAL_PORT_VOICE = 0,
AUDIOHAL_PORT_SSPA = AUDIOHAL_PORT_VOICE,
AUDIOHAL_PORT_HW_SSP0 = 1,
AUDIOHAL_PORT_SSP1 = AUDIOHAL_PORT_HW_SSP0,
AUDIOHAL_PORT_HW_SSP1 = 2,
AUDIOHAL_PORT_SSP2 = AUDIOHAL_PORT_HW_SSP1,
AUDIOHAL_PORT_HW_SSP2 = 3,
AUDIOHAL_PORT_SSP3 = AUDIOHAL_PORT_HW_SSP2,
AUDIOHAL_PORT_QTY
}AUDIOHAL_DEVICE_PORT_T;
typedef void (*AUDIOHAL_HANDLER_T) (void);
typedef void (*AUDIOHAL_HeadsetReport_T) (UINT32 plug, UINT32 type, UINT32 event);
typedef void (*AUDIOHAL_SpeakerPA_T) (UINT32 on);
typedef void (*AUDIOHAL_Codec_T) (UINT32 on);
typedef void (*AUDIOHAL_BT_CALLBACK_T) (UINT32 on);
typedef void (*AUDIOHAL_KWS_CB_T)(unsigned int key);
typedef int (*AUDIO_EXTRA_CB)(short* dataPtr, UINT16 dataSize);
//ICAT EXPORTED STRUCT
typedef struct {
UINT32 * startAddress;
UINT16 length;
AUDIOHAL_FREQ_T sampleRate;
AUDIOHAL_CH_NB_T channelNb;
//BOOL voiceQuality;
//BOOL playSyncWithRecord;
INT voiceQuality;
INT playSyncWithRecord;
AUDIOHAL_HANDLER_T halfHandler;
AUDIOHAL_HANDLER_T endHandler;
} AUDIOHAL_STREAM_T;
typedef struct {
BOOL isVoice;
BOOL isMaster;
AUDIOHAL_FREQ_T samplerate;
AUDIOHAL_CH_NB_T channelNb;
} AUDIOHAL_AIF_CONFIG;
typedef struct {
AUDIOHAL_SPK_LEVEL_T spkLevel;
AUDIOHAL_MIC_LEVEL_T micLevel;
AUDIOHAL_SIDE_LEVEL_T sideLevel;
AUDIOHAL_TONE_ATTENUATION_T toneLevel;
} AUDIOHAL_AIF_LEVEL_T;
typedef struct {
AUDIOHAL_SPK_T spkSel;
AUDIOHAL_SPEAKER_TYPE_T spkType; //Kind of speaker(stereo/mono/etc)
AUDIOHAL_MIC_T micSel;
AUDIOHAL_AIF_LEVEL_T * level;
} AUDIOHAL_AIF_DEVICE_CFG_T;
///////////////////////Control API for MMI///////////////////////////
#if 0
typedef union
{
UINT32 reg;
struct
{
BOOL auxMicSel:1;
BOOL spkSel:1;
BOOL spkmonoSel:1;
BOOL rcvSel:1;
BOOL headSel:1;
BOOL fmSel:1;
};
} AUDIOHAL_AUD_SEL_T;
typedef union
{
UINT32 reg;
struct
{
UINT32 MicGain:4;
BOOL MicMute:1;
};
} AUDIOHAL_MIC_CFG_T;
typedef union
{
UINT32 reg;
struct
{
UINT32 SpkGain:4;
BOOL SpkMute:1;
};
} AUDIOHAL_SPK_CFG_T;
BOOL AudioHAL_AudOpen(unsigned int user);
BOOL AudioHAL_AudClose(void);
BOOL AudioHAL_AudEarpieceDetectInit(void);
void AudioHAL_AudForceReceiverMicSelection(BOOL on);
void AudioHAL_AudForcePowerDown(void);
void AudioHAL_AudSetVoiceMode(BOOL isVoiceMode);
void AudioHAL_AudSetAdcVolume(UINT32 vol);
void AudioHAL_AudSetDacVolume(UINT32 vol);
void AudioHAL_AudSetHeadGain(UINT32 gain);
void AudioHAL_AudSetRcvGain(UINT32 gain);
void AudioHAL_AudSetMicCfg(UINT32 cfg);
void AudioHAL_AudSetSpkCfg(UINT32 cfg);
void AudioHAL_AudSetSelcfg(UINT32 selCfg);
AUDIOHAL_SPK_CFG_T AudioHAL_AudGetSpkCfg(void);
UINT32 AudioHAL_AudGetHeadGain(void);
UINT32 AudioHAL_AudGetRcvGain(void);
BOOL AudioHAL_AudMuteOutput(BOOL mute);
void AudioHAL_AudLcdPowerOnCallback(void);
void AudioHAL_AudLcdPowerOffCallback(void);
#endif
///////////////////////Control API for CP Audio///////////////////////////
int AudioHAL_Init(void);
void AudioHAL_TaskInit(void);
void AudioHAL_ReloadFDI(void);
int AudioHAL_UpdateCodecGain(void);
void AudioHAL_HeadsetOps(UINT16 plug, UINT16 state, UINT16 event);
void AudioHAL_StreamStart(BOOL onoff);
///////////////////////Control API for MMI///////////////////////////
AUDIOHAL_ERR_T AudioHAL_AifLoopBack(unsigned char loop);
AUDIOHAL_ERR_T AudioHAL_AifConfigure(AUDIOHAL_AIF_CONFIG * config);
AUDIOHAL_ERR_T AudioHAL_AifOpen(AUDIOHAL_ITF_T itf, AUDIOHAL_AIF_DEVICE_CFG_T *config);
AUDIOHAL_ERR_T AudioHAL_AifTone(AUDIOHAL_TONE_TYPE_T tone, AUDIOHAL_TONE_ATTENUATION_T attenuation, BOOL start);
AUDIOHAL_ERR_T AudioHAL_AifTonePause(BOOL pause);
AUDIOHAL_ERR_T AudioHAL_AifDTMF(BOOL start, int f1, int f2);
void AudioHAL_AifClose(void);
void AudioHAL_AifHeadsetDetection(unsigned char input);
void AudioHAL_AifBindHeadsetDetectionCB(AUDIOHAL_HeadsetReport_T cb);
void AudioHAL_AifBindSpeakerPA_CB(AUDIOHAL_SpeakerPA_T cb);
void AudioHAL_AifBindCodec_CB(AUDIOHAL_SpeakerPA_T cb);
void AudioHAL_AifGetHeadsetInfo(UINT32* plug, UINT32* type);
void AudioHAL_AifSetVolume(UINT32 vol);
void AudioHAL_AifSetMute(BOOL onoff);
void AudioHAL_AifSetDspRxMute(BOOL onoff);
void AudioHAL_AifSetSideTone(UINT32 vol);
void AudioHAL_AifSwitch(AUDIOHAL_ITF_T itf);
#ifdef QUECTEL_OPEN_CPU //add loudspk pa cb
// august add 20221104, add receiver callback
void AudioHAL_AifBindReceiver_CB(AUDIOHAL_SpeakerPA_T cb);
#endif
UINT32 AudioHAL_AifGetVolume(void);
AUDIOHAL_ITF_T AudioHAL_AifGetOpenedDevice(void);
///////////////////////Stream API for MMI///////////////////////////
AUDIOHAL_ERR_T AUDIOHAL_GetBufferSize(AUDIOHAL_FREQ_T rate, AUDIOHAL_CH_NB_T chan, int* min, int* max);
AUDIOHAL_ERR_T AudioHAL_AifPlayStream(AUDIOHAL_STREAM_T *playedStream);
AUDIOHAL_ERR_T AudioHAL_AifRecordStream(AUDIOHAL_STREAM_T *recordedStream);
AUDIOHAL_ERR_T AudioHAL_AifPause(BOOL pause);
void AudioHAL_AifStopPlay(void);
void AudioHAL_AifStopRecord(void);
AUDIOHAL_ERR_T AudioHAL_AifDrain(void);
AUDIOHAL_ERR_T AudioHAL_SetResBufCnt(unsigned int bufCnt);
UINT16 AudioHAL_vibration_setGain(UINT16 gain);
void AudioHAL_vibration_control(UINT16 onoff);
void AudioHAL_spkProSet(void);
int AudioHal_AifPlay2Farend(int farend);
/**********************************************************************
*
* Function: AudioHAL_DRCReset
*
* Description: set media stream drc and cutoff freq
*
* gain:
index:
0: cutoff freq - 200Hz
1: cutoff freq - 400Hz
2: cutoff freq - 500Hz
3: cutoff freq - 700Hz
n(n>3, n <= 1500): cutoff freq - n
N(N>1500): cutoff freq - 1500
* return value: commit gain
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 12-Jul-2020 ChaoLiu Initial version
**********************************************************************/
UINT16 AudioHAL_DRCReset(UINT16 gain, UINT16 index);
void AudioHAL_set_close_delay(unsigned int cnt);
void AudioHAL_FadingControl(int on);
signed short AudioHAL_SetFadingStep(signed short step);
/**********************************************************************
*
* Function: AudioHAL_AifSetPhoneStatus
*
* Description: set phone voice call status
*
* status:
0: let audio hal decide Voice Call status
1: in Media Audio play status
2: in Voice Call status
* return value:
AUDIOHAL_ERR_NO: success
AUDIOHAL_ERR_BAD_PARAMETER: status large than 2
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 22-Oct-2004 yg Initial version
**********************************************************************/
AUDIOHAL_ERR_T AudioHAL_AifSetPhoneStatus(unsigned int status);
/**********************************************************************
*
* Function: AudioHAL_SetUsedMIC
*
* Description: set used mic
*
* status:
0(default): let audio hal decide which mic to use
1: use mic1
2: use mic2
* return value:
0: success
-1:large than 2
* NOTE: need to disable Headset detection
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_SetUsedMIC(int mic);
int AudioHAL_sspaSetFormat(unsigned short pcmFormat) ;
int AudioHAL_sspaSetFormat2(unsigned short pcmFormat2) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetDelay
*
* Description: set PCM interface SSPA's data delay
*
* status:
0: no delay;
1: 1 bitclk delay; (default)
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetDelay(unsigned int delay) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetSampleRate
*
* Description: set PCM interface SSPA's sample Rate
*
* status:
1: 8k;
2: 16k;
6: 48k
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetSampleRate(unsigned int rate);
/**********************************************************************
*
* Function: AudioHAL_sspaSetBCLKType
*
* Description: set PCM interface SSPA's bitclk frequency
*
* status:
0: 32fs;
1: 64fs;
2: 128fs;
3: 256fs;
4: 512fs;
5: 1024fs;
6: 2048fs;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetBCLKType(unsigned int type) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetBCLKInvert
*
* Description: set PCM interface SSPA's bitclk INVERT
*
* status:
0: keep default;
1: invert;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/;
int AudioHAL_sspaSetBCLKInvert(unsigned int invert) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetI2S
*
* Description: set PCM interface SSPA's PCM/I2S format
*
* status:
0: PCM;
1: I2S;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetI2S(unsigned int i2s) ;
/**********************************************************************
*
* Function: AudioHAL_btsco_formatSet
*
* Description: set PCM format for BT SCO (PCM)
*
* slave:
0: sspa as master;
1: sspa as slave;
* delay:
0: no delay;
1: 1 bitclk delay; (default)
* invert:
0: keep default;
1: invert;
* rsv: for future usage
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
int AudioHAL_btsco_formatSet(unsigned int slave, unsigned int delay, unsigned int invert, void* rsv);
/**********************************************************************
*
* Function: AudioHAL_sspaSetSlave
*
* Description: set PCM interface SSPA's slave mode
*
* slave:
0: sspa as master(default)
1: sspa as slave
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 29-NOV-2021 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetSlave(unsigned int slave) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetSyncClkInvert
*
* Description: set PCM interface SSPA's Sync Clock INVERT
*
* invert:
0: keep default;
1: invert;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 29-NOV-2021 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetFrameClkInvert(unsigned int invert) ;
/**********************************************************************
*
* Function: AudioHAL_sspaSetSyncClkWidth
*
* Description: set PCM interface SSPA's sync clock width
*
* length: 1~0x10
1: sync frame width is 1 bitclk;
2: sync frame width is 2 bitclk;
..........................
0x10: sync frame width is 16 bitclk;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 29-NOV-2021 Chaoliu Initial version
**********************************************************************/
int AudioHAL_sspaSetFrameClkWidth(unsigned int width);
void AudioHAL_AifSetTxDSPGain(signed char db);
char AudioHAL_AifGetTxDSPGain(void);
void AudioHAL_AifSetTxCodecGain(short pgaStage1, short pgaStage2);
short AudioHAL_AifGetTxCodecGainStage1(void);
short AudioHAL_AifGetTxCodecGainStage2(void);
void AudioHAL_NeedChargePump(int need);
int AudioHAL_EnableHSDetect(int isNormalClosed);
int AudioHAL_AifSet_VAD(int on);
int AudioHAL_AifGet_VAD(void);
int AudioHAL_AifBindKWS_CB(AUDIOHAL_KWS_CB_T cb);
int AudioHAL_AifControlMCLK(unsigned int type, unsigned int on);
/**********************************************************************
*
* Function: AudioHAL_AifSetFMCodecGain
*
* Description: set FM codec DAC gain
*
* gainIdx:
0: 6db;
1: 3db;
2: 0db;
3: -3db;
4: -6db;
typedef enum
{
ACMCODEC_DAC_GAIN_6dB = 0,
ACMCODEC_DAC_GAIN_3dB,
ACMCODEC_DAC_GAIN_0dB,
ACMCODEC_DAC_GAIN_M3dB,
ACMCODEC_DAC_GAIN_M6dB,
ACMCODEC_DAC_GAIN_CNT,
ACMCODEC_DAC_GAIN_ENUM_16_BIT = 0x7FFF //16bit enum compiling enforcement
} ACMCODEC_DAC_GAIN;
* return value:
0: success
-1:fail
* NOTE:
*
* --------------------------------------------------------------------
* Revision History
*
* Date Who Version Description
* --------------------------------------------------------------------
* 7-April-2020 Chaoliu Initial version
**********************************************************************/
void AudioHAL_AifSetFMCodecGain(unsigned char gainIdx);
AUDIOHAL_ERR_T AudioHAL_AifSetDevicePort(AUDIOHAL_DEVICE_PORT_T port);
AUDIOHAL_DEVICE_PORT_T AudioHAL_AifGetDevicePort(void);
int AudioHAL_start_bt_hfp_hfMode(int start);
#ifdef __cplusplus
}
#endif
#endif /* _AUDIOHAL_H_ */