ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/services/audio/libacm/acm/inc/adsp_ve.h b/marvell/services/audio/libacm/acm/inc/adsp_ve.h
new file mode 100644
index 0000000..9a0e421
--- /dev/null
+++ b/marvell/services/audio/libacm/acm/inc/adsp_ve.h
@@ -0,0 +1,178 @@
+// 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_