// SPDX-License-Identifier: GPL-2.0 | |
/* | |
* Driver for Audio DSP. | |
* | |
* Copyright (C) 2022 ASRMicro | |
* | |
* Author: Yjg Wang <yjgwang@asrmicro.com> | |
*/ | |
/****************************************************************************** | |
* MODULE IMPLEMENTATION FILE | |
******************************************************************************* | |
* Title: Header for ADSP in AP subsystem | |
* | |
* Filename: adsp_ve.h | |
* | |
* Authors: Yjg Wang | |
* | |
* Description: Header file for ADSP VE. | |
* | |
* Last Updated: | |
* | |
* Notes: | |
******************************************************************************/ | |
#ifndef _ADSP_VE_H_ | |
#define _ADSP_VE_H_ | |
#define MAX_MUSIC_STREAM_NUM 6 | |
typedef signed short Word16; | |
typedef unsigned short UWord16; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 SampleDelay; // reference delay to echo | |
Word16 EchoLenInMs; // Fir filter length | |
Word16 ConvergenceSpeed; // slowdown | |
Word16 Ref2EchoPowerRatio; // ratio of ref to echo, [-12 ~30]db, decimal number | |
} EcParamsStruct; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 BoostGainDb; // | |
Word16 PeakGainDb; | |
Word16 BoostNoiseGainDb; | |
Word16 BoostRelease; | |
Word16 Reserved0; | |
Word16 Reserved1; | |
} AgcParametersT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
UWord16 MASK; | |
Word16 EqCoff[7][6]; // a[0], a[1], a[2], b[0], b[1], b[2] | |
} BiQuadCoeffT; | |
// following is ns parametes typedef | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 MaxSuppressDb; // [-40 0)db. | |
Word16 PeakNoiseDb; // [-70 -12)db. | |
Word16 NoiseMatrix; // following is expert parameters | |
Word16 RnnParm; | |
} NsParamsT; //noise suppression para, for both TX&RX | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 Enabled; | |
NsParamsT NsParams; | |
}NSConfigT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 Enabled; | |
BiQuadCoeffT EqParams; | |
}EQCongfigT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 Enabled; | |
AgcParametersT AgcParams; | |
}AgcCongT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 Enabled; | |
EcParamsStruct EcParams; | |
}EcConfigT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
Word16 Rnn0; | |
Word16 Rnn1; | |
Word16 Rnn2; | |
Word16 Rnn3; | |
} RnnParamsT; //noise suppression para, for both TX&RX | |
//ICAT EXPORTED STRUCT | |
typedef struct { // res parameters | |
Word16 ResMode; | |
Word16 DtGainDb; | |
Word16 FestGainDb; | |
Word16 NoiseFloorDbov; | |
Word16 CnGaindb; | |
Word16 DtThresh; | |
Word16 Gamma; | |
//following is expert paramters | |
Word16 AuditoryMasking; | |
Word16 NonlinearModel; | |
Word16 WinitCntThresh; | |
Word16 EstResMatrix; | |
Word16 reserved; | |
} NsResParamsT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
NsParamsT NsParams; | |
RnnParamsT NNParams; | |
NsResParamsT ResParams; | |
} NsTxParamsT; //TX only | |
//ICAT EXPORTED STRUCT | |
typedef struct | |
{ Word16 Enabled; | |
NsTxParamsT NsParamsTx; }NsTxConfigT; | |
//VoiceStreamRX Parameters | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
NSConfigT NSRxConfig; | |
EQCongfigT EqConfig; | |
AgcCongT AgcConfig; | |
Word16 Gain; //need tool to compute 0x2000 is 0dB, 0x4000 6dB, | |
Word16 Reserved[4]; | |
}VeRxControlT; | |
//VoiceStreamTX & Record Stream parameters | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
short DCFactor; | |
EcConfigT EcConfig; | |
NsTxConfigT NsTxConfig; | |
EQCongfigT EqConfig; | |
AgcCongT AgcConfig; | |
Word16 Gain; //need tool to compute 0x2000 is 0dB, 0x4000 6dB, | |
Word16 Reserved[4]; | |
}VeTxControlT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
EQCongfigT EqConfig; | |
AgcCongT AgcConfig; | |
Word16 Gain; //need tool to compute 0x2000 is 0dB, 0x4000 6dB, | |
Word16 Reserved[4]; | |
}MusicStreamControlT; | |
/*important notes: | |
EnhanceParmsT reside in shared memory | |
*/ | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
short Profile; //Handset, headset, handfree, BT | |
VeRxControlT VoiceParmRX[3]; //VoiceStreamRx 8k,16, 32k rate | |
VeTxControlT VoiceParmTX[3]; //VoiceStreamTx 8k,16, 32k rate | |
}VoiceParmsT; | |
//ICAT EXPORTED STRUCT | |
typedef struct { | |
MusicStreamControlT MusicParms[MAX_MUSIC_STREAM_NUM]; //musicstream parms | |
VoiceParmsT VoiceParms; | |
VeTxControlT RecordParms; //RecordStream, need only one rate | |
VeRxControlT FmStreamParm; // reserved for future usage ,need ns, drc, eq@32k | |
}EnhanceParmsT; | |
#endif //#define _ADSP_VE_H_ |