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_