blob: e2595dd35d7d05adc8a8f1e7a60defce49c4ffad [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001#ifndef SAL_DEF_H
2#define SAL_DEF_H
3
4#include "l1aud_common_def.h"
5#include "audio_dsp_d2c_def.h"
6
7//For Gen93, all project support 2-Mic/3-Mic(ER), not support 4-Mic
8#define _SAL_DUALMIC_SUPPORT_ 1
9#define _SAL_MIC3_SUPPORT_ 1
10#define _SAL_MIC4_SUPPORT_ 1
11#define _SAL_ANC_SUPPORT_ 0
12
13#define SAL_BIT0 0x0001
14#define SAL_BIT1 0x0002
15#define SAL_BIT2 0x0004
16#define SAL_BIT3 0x0008
17#define SAL_BIT4 0x0010
18#define SAL_BIT5 0x0020
19#define SAL_BIT6 0x0040
20#define SAL_BIT7 0x0080
21#define SAL_BIT8 0x0100
22#define SAL_BIT9 0x0200
23#define SAL_BIT10 0x0400
24#define SAL_BIT11 0x0800
25#define SAL_BIT12 0x1000
26#define SAL_BIT13 0x2000
27#define SAL_BIT14 0x4000
28#define SAL_BIT15 0x8000
29
30#define SAL_NB 0
31#define SAL_WB 1
32#define SAL_SWB 2
33#define SAL_FB 3
34
35#define SAL_NB_PCM_SIZE 160
36#define SAL_WB_PCM_SIZE 320
37#define SAL_SWB_PCM_SIZE 640
38#define SAL_FB_PCM_SIZE 960
39
40#define SAL_DEV_NORMAL 0
41#define SAL_DEV_EARPHONE 1
42#define SAL_DEV_LOUDSPK 2
43#define SAL_DEV_BT_EARPHONE_NB 3
44#define SAL_DEV_BT_EARPHONE_WB 4
45#define SAL_DEV_BT_CORDLESS 5
46#define SAL_DEV_MAX_NUM 6
47
48#define SAL_APP_TYPE_2GCall 0
49#define SAL_APP_TYPE_3GCall 1
50#define SAL_APP_TYPE_4GCall 2
51#define SAL_APP_TYPE_PCM_Router 3
52#define SAL_APP_TYPE_C2KCall 4
53#define SAL_APP_TYPE_Standby 5
54
55#define SAL_ENH_AEC 0
56#define SAL_ENH_NR_UL 1
57#define SAL_ENH_NR_DL 2
58#define SAL_ENH_TDNC 3
59#define SAL_ENH_DMNR 4
60#define SAL_ENH_MAGICCONFERENCE 5
61#define SAL_ENH_EXTECHOREF 6
62
63#define SAL_ENH_DYN_STA_PAR_INIT 0xFFF0
64#define SAL_ENH_DYN_STA_PAR_SET SAL_BIT0
65#define SAL_ENH_DYN_STA_PAR_SET_RDY SAL_BIT1
66#define SAL_ENH_DYN_STA_DDL_SET SAL_BIT4
67#define SAL_ENH_DYN_STA_DDL_SET_RDY SAL_BIT5
68#define SAL_ENH_DYN_STA_DDL_DONE SAL_BIT6
69#define SAL_ENH_DYN_STA_DDL_DONE_CHK (SAL_ENH_DYN_STA_DDL_SET + SAL_ENH_DYN_STA_DDL_SET_RDY + SAL_ENH_DYN_STA_DDL_DONE)
70
71#define SAL_ENH_FLAG_PAR_UL SAL_BIT0
72#define SAL_ENH_FLAG_PAR_DL SAL_BIT1
73#define SAL_ENH_FLAG_PAR_NB_BKF_UL SAL_BIT2
74#define SAL_ENH_FLAG_PAR_NB_BKF_DL SAL_BIT3
75#define SAL_ENH_FLAG_PAR_NB_MOD SAL_BIT4
76#define SAL_ENH_FLAG_PAR_WB_BKF_UL SAL_BIT5
77#define SAL_ENH_FLAG_PAR_WB_BKF_DL SAL_BIT6
78#define SAL_ENH_FLAG_PAR_WB_MOD SAL_BIT7
79#define SAL_ENH_FLAG_PAR_SWB_BKF_UL SAL_BIT8
80#define SAL_ENH_FLAG_PAR_SWB_BKF_DL SAL_BIT9
81#define SAL_ENH_FLAG_PAR_SWB_MOD SAL_BIT10
82
83#define SAL_FLTCOEFLEN_SIDETONE 31
84#define SAL_FLTCOEFLEN_BKF_NB 90
85#define SAL_FLTCOEFLEN_BKF_WB 90
86#define SAL_FLTCOEFLEN_BKF_SWB 90
87#define SAL_FLTCOEFLEN_ENH_IIR 42
88#define SAL_FLTCOEFLEN_MIC_IIR 20
89
90#define SAL_FLTCOEFLEN_SRC 82
91#define SAL_FLTCOEFLEN_AGC 40
92#define SAL_FLTCOEFLEN_DMNR_NB 44
93#define SAL_FLTCOEFLEN_DMNR_WB 76
94#define SAL_FLTCOEFLEN_DMNR_SWB 120
95#define SAL_PARAMETERLEN_COMMON 12
96#define SAL_PARAMETERLEN_MODE_NB 16
97#define SAL_PARAMETERLEN_MODE_WB 16
98#define SAL_PARAMETERLEN_NOTCH 15
99#define SAL_PARAMETERLEN_INTERNAL 16
100#define SAL_FLTCOEFLEN_SRCPLUS 148
101#define SAL_FLTCOEFLEN_SRCPLUS_SWB 296
102#define SAL_FLTCOEFLEN_SRC_IIR 12
103
104#define SPH_SFE_SRC_UL_DS SAL_BIT1
105#define SPH_SFE_SRC_DL_US SAL_BIT2
106#define SPH_SFE_SRC_UL4_DS SAL_BIT4
107#define SPH_SFE_SRC_UL3_DS SAL_BIT5
108#define SPH_SFE_SRC_UL2_DS SAL_BIT6
109#define SPH_SFE_SRC_UL_US SAL_BIT7
110#define SPH_SFE_SRC_DL_DS SAL_BIT8
111#define SPH_SFE_SRC_PCM_RT_8K2SD_US SAL_BIT12
112#define SPH_SFE_SRC_PCM_RT_8K2SD_DS SAL_BIT13
113#define SPH_SFE_SRC_PCM_RT_SE28K_US SAL_BIT14
114#define SPH_SFE_SRC_PCM_RT_SE28K_DS SAL_BIT15
115
116#define SAL_3G_VALUE_TX_CODEC_MODE 0
117#define SAL_3G_VALUE_RX_CODEC_MODE 1
118#define SAL_3G_VALUE_TX_TYPE 2
119#define SAL_3G_VALUE_RX_TYPE 3
120
121#define SAL_3G_ADDR_TXHB 0
122#define SAL_3G_ADDR_RXHB 1
123
124#define SAL_3G_TX_SPEECH_GOOD 2
125#define SAL_3G_TX_SID_FIRST 1
126#define SAL_3G_TX_SID_UPDATE 3
127#define SAL_3G_TX_NO_DATA 0
128
129#define SAL_3G_RX_SPEECH_GOOD 0
130#define SAL_3G_RX_SPEECH_BAD 4
131#define SAL_3G_RX_SID_FIRST 6
132#define SAL_3G_RX_SID_UPDATE 8
133#define SAL_3G_RX_SID_BAD 10
134#define SAL_3G_RX_NO_DATA 14
135
136#define SAL_4G_RX_FIRST_FRM 0
137#define SAL_4G_RX_SECOND_FRM 1
138
139#define SAL_4G_RX_SPEECH_GOOD 0
140#define SAL_4G_RX_SPEECH_BAD 4
141#define SAL_4G_RX_SID_FIRST 6
142#define SAL_4G_RX_SID_UPDATE 8
143#define SAL_4G_RX_SID_BAD 10
144#define SAL_4G_RX_NO_DATA 14
145
146#define SAL_4G_VALUE_TX_CODEC_MODE 0
147#define SAL_4G_VALUE_RX_CODEC_MODE 1
148#define SAL_4G_VALUE_TX_TYPE 2
149#define SAL_4G_VALUE_RX_TYPE 3
150
151#define SAL_4G_ADDR_TXHB 0
152#define SAL_4G_ADDR_RXHB 1
153
154#define SAL_COD_FR 0
155#define SAL_COD_HR 1
156#define SAL_COD_EFR 2
157#define SAL_COD_AMR122 3
158#define SAL_COD_AMR102 4
159#define SAL_COD_AMR795 5
160#define SAL_COD_AMR74 6
161#define SAL_COD_AMR67 7
162#define SAL_COD_AMR59 8
163#define SAL_COD_AMR515 9
164#define SAL_COD_AMR475 10
165
166#define SAL_COD_AWB660 0x20
167#define SAL_COD_AWB885 0x21
168#define SAL_COD_AWB1265 0x22
169#define SAL_COD_AWB1425 0x23
170#define SAL_COD_AWB1585 0x24
171#define SAL_COD_AWB1825 0x25
172#define SAL_COD_AWB1985 0x26
173#define SAL_COD_AWB2305 0x27
174#define SAL_COD_AWB2385 0x28
175#define SAL_COD_QCELP8K 0x30
176#define SAL_COD_QCELP13K 0x31
177#define SAL_COD_EVRCA 0x32
178#define SAL_COD_EVRCB 0x33
179#define SAL_COD_EVRCNW_NB 0x34
180#define SAL_COD_EVRCNW_WB 0x35
181#define SAL_COD_UNDEF 0x39
182
183#define SAL_COD_EVSMIN 0x80
184#define SAL_COD_EVSMAX 0xDF
185
186#define SAL_DSPINT_PRIO_REC_EPL 1 //uplink
187#define SAL_DSPINT_PRIO_REC_PCM 2 //uplink
188#define SAL_DSPINT_PRIO_REC_VM 3 //downlink
189#define SAL_DSPINT_PRIO_3G_DL 4
190#define SAL_DSPINT_PRIO_3G_UL 5
191#define SAL_DSPINT_PRIO_EXTCOD_DL 6
192#define SAL_DSPINT_PRIO_EXTCOD_UL 7
193#define SAL_DSPINT_PRIO_PNW_DL 8
194#define SAL_DSPINT_PRIO_PNW_UL 9
195#define SAL_DSPINT_PRIO_DACA_DL 10
196#define SAL_DSPINT_PRIO_DACA_UL 11
197#define SAL_DSPINT_PRIO_BGS_DL 12 //downlink, ping pong
198#define SAL_DSPINT_PRIO_BGS_UL 13
199#define SAL_DSPINT_PRIO_AVBT 14
200#define SAL_DSPINT_PRIO_WARN_MSG_UL 15
201#define SAL_DSPINT_PRIO_WARN_MSG_DL 16
202#define SAL_DSPINT_PRIO_4G_DL 17
203#define SAL_DSPINT_PRIO_4G_UL 18
204#define SAL_DSPINT_PRIO_C2K_DL 19
205#define SAL_DSPINT_PRIO_C2K_UL 20
206#define SAL_DSPINT_PRIO_4G_AAMPLUS 21
207#define SAL_DSPINT_PRIO_RAMP_DONE 22
208#define SAL_DSPINT_PRIO_MIXER2_DL 23
209#define SAL_DSPINT_PRIO_MIXER3 24
210#define SAL_DSPINT_PRIO_DMF 25
211#define SAL_DSPINT_PRIO_4G_AAM 26
212#define SAL_DSPINT_PRIO_MAX 27
213
214#define SAL_DSPINT_ID_REC_EPL (1 << SAL_DSPINT_PRIO_REC_EPL)
215#define SAL_DSPINT_ID_REC_PCM (1 << SAL_DSPINT_PRIO_REC_PCM)
216#define SAL_DSPINT_ID_REC_VM (1 << SAL_DSPINT_PRIO_REC_VM)
217#define SAL_DSPINT_ID_3G_DL (1 << SAL_DSPINT_PRIO_3G_DL)
218#define SAL_DSPINT_ID_3G_UL (1 << SAL_DSPINT_PRIO_3G_UL)
219#define SAL_DSPINT_ID_EXTCOD_DL (1 << SAL_DSPINT_PRIO_EXTCOD_DL)
220#define SAL_DSPINT_ID_EXTCOD_UL (1 << SAL_DSPINT_PRIO_EXTCOD_UL)
221#define SAL_DSPINT_ID_PNW_DL (1 << SAL_DSPINT_PRIO_PNW_DL)
222#define SAL_DSPINT_ID_PNW_UL (1 << SAL_DSPINT_PRIO_PNW_UL)
223#define SAL_DSPINT_ID_DACA_DL (1 << SAL_DSPINT_PRIO_DACA_DL)
224#define SAL_DSPINT_ID_DACA_UL (1 << SAL_DSPINT_PRIO_DACA_UL)
225#define SAL_DSPINT_ID_BGS_DL (1 << SAL_DSPINT_PRIO_BGS_DL)
226#define SAL_DSPINT_ID_BGS_UL (1 << SAL_DSPINT_PRIO_BGS_UL)
227#define SAL_DSPINT_ID_AVBT (1 << SAL_DSPINT_PRIO_AVBT)
228#define SAL_DSPINT_ID_WARN_MSG_UL (1 << SAL_DSPINT_PRIO_WARN_MSG_UL)
229#define SAL_DSPINT_ID_WARN_MSG_DL (1 << SAL_DSPINT_PRIO_WARN_MSG_DL)
230#define SAL_DSPINT_ID_4G_DL (1 << SAL_DSPINT_PRIO_4G_DL)
231#define SAL_DSPINT_ID_4G_UL (1 << SAL_DSPINT_PRIO_4G_UL)
232#define SAL_DSPINT_ID_C2K_DL (1 << SAL_DSPINT_PRIO_C2K_DL)
233#define SAL_DSPINT_ID_C2K_UL (1 << SAL_DSPINT_PRIO_C2K_UL)
234#define SAL_DSPINT_ID_4G_AAMPLUS (1 << SAL_DSPINT_PRIO_4G_AAMPLUS)
235#define SAL_DSPINT_ID_RAMP_DONE (1 << SAL_DSPINT_PRIO_RAMP_DONE)
236#define SAL_DSPINT_ID_MIXER2_DL (1 << SAL_DSPINT_PRIO_MIXER2_DL)
237#define SAL_DSPINT_ID_MIXER3 (1 << SAL_DSPINT_PRIO_MIXER3)
238#define SAL_DSPINT_ID_4G_AAM (1 << SAL_DSPINT_PRIO_4G_AAM)
239#define SAL_DSPINT_ID_DMF (1 << SAL_DSPINT_PRIO_DMF)
240
241//C2K
242#define SAL_DSPINT_ID_C2K_DL (1 << SAL_DSPINT_PRIO_C2K_DL)
243#define SAL_DSPINT_ID_C2K_UL (1 << SAL_DSPINT_PRIO_C2K_UL)
244
245// C2K
246#define SAL_C2K_SO_NULL 0 /* Invalid service option */
247#define SAL_C2K_SO1 1 /* SO1. QCELP8. not supported */
248#define SAL_C2K_SO3 3 /* SO3. EVRC-A */
249#define SAL_C2K_SO17 17 /* SO17. QCELP13 */
250#define SAL_C2K_SO68 68 /* SO68. EVRC-B */
251#define SAL_C2K_SO73 73 /* SO73. EVRC-NB */
252#define SAL_C2K_SO73WB 173 /* SO73. EVRC-WB */
253
254//ToDo:
255//#define SAL_C2K_COD_QCELP8K C2K_COD_QCELP8K
256//#define SAL_C2K_COD_QCELP13K C2K_COD_QCELP13K
257//#define SAL_C2K_COD_EVRCA C2K_COD_EVRCA
258//#define SAL_C2K_COD_EVRCB C2K_COD_EVRCB
259//#define SAL_C2K_COD_EVRCNW_NB C2K_COD_EVRCNW_NB
260//#define SAL_C2K_COD_EVRCNW_WB C2K_COD_EVRCNW_WB
261//#define SAL_C2K_COD_MODE_UNDEF C2K_COD_UNDEF
262
263#define SAL_C2K_COD_QCELP8K 0x30
264#define SAL_C2K_COD_QCELP13K 0x31
265#define SAL_C2K_COD_EVRCA 0x32
266#define SAL_C2K_COD_EVRCB 0x33
267#define SAL_C2K_COD_EVRCNW_NB 0x34
268#define SAL_C2K_COD_EVRCNW_WB 0x35
269#define SAL_C2K_COD_MODE_UNDEF 0x39
270
271//ToDo:
272//#define SAL_C2K_RATE_BLANK IPC_SPCH_BLANK
273//#define SAL_C2K_RATE_EIGHTH IPC_SPCH_EIGHTH
274//#define SAL_C2K_RATE_QUARTER IPC_SPCH_QUARTER
275//#define SAL_C2K_RATE_HALF IPC_SPCH_HALF
276//#define SAL_C2K_RATE_FULL IPC_SPCH_FULL
277//#define SAL_C2K_RATE_ERASURE IPC_SPCH_ERASURE
278//#define SAL_C2K_RATE_FULL_LIKELY IPC_SPCH_FULL_LIKELY
279
280#define SAL_C2K_RATE_BLANK 0x0
281#define SAL_C2K_RATE_EIGHTH 0x1
282#define SAL_C2K_RATE_QUARTER 0x2
283#define SAL_C2K_RATE_HALF 0x3
284#define SAL_C2K_RATE_FULL 0x4
285#define SAL_C2K_RATE_ERASURE 0xE
286#define SAL_C2K_RATE_FULL_LIKELY 0xF
287
288#define SAL_C2K_VALUE_SO 0
289#define SAL_C2K_VALUE_UL_RATE 1
290#define SAL_C2K_VALUE_DL_RATE 2
291
292#define SAL_C2K_ADDR_TXHB 0
293#define SAL_C2K_ADDR_RXHB 1
294
295#define SAL_C2K_SOCM_QCELP13K 0
296#define SAL_C2K_SOCM_EVRCA 1
297#define SAL_C2K_SOCM_EVRCB 2
298#define SAL_C2K_SOCM_EVRCNW_NB 3
299#define SAL_C2K_SOCM_EVRCNW_WB 4
300#define SAL_C2K_ENC_MAX_RATE 5
301#define SAL_C2K_EBNT 6
302#define SAL_C2K_DL_RATE 7
303
304#define SAL_C2K_COD_FEATURE_HPF 0
305#define SAL_C2K_COD_FEATURE_POS_FLT 1
306#define SAL_C2K_COD_FEATURE_PITCH_PRE_FLT 2
307
308#define SAL_SCH_FEATURE_SDSP_CONFIG_DEL_RW 0
309#define SAL_SCH_FEATURE_C2K_SMR 1
310
311//Test mode
312#define SAL_DSP_TESTMODE_2G_FR 0x20
313#define SAL_DSP_TESTMODE_2G_HR 0x21
314#define SAL_DSP_TESTMODE_2G_EFR 0x22
315#define SAL_DSP_TESTMODE_2G_AMR 0x23
316#define SAL_DSP_TESTMODE_2G_AWB 0x24
317#define SAL_DSP_TESTMODE_3G_AMR 0x30
318#define SAL_DSP_TESTMODE_3G_AWB 0x31
319#define SAL_DSP_TESTMODE_4G_AMR 0x40
320#define SAL_DSP_TESTMODE_4G_AWB 0x41
321#define SAL_DSP_TESTMODE_4G_EVS 0x42
322#define SAL_DSP_TESTMODE_4G_EVSSWB 0x43
323#define SAL_DSP_TESTMODE_C2K_EVRCA 0x90
324#define SAL_DSP_TESTMODE_C2K_EVRCB 0x91
325
326//Test mode - AFE DVT
327#define SAL_DSP_TESTMODE_AFEDVT_UL_CH0 0
328#define SAL_DSP_TESTMODE_AFEDVT_UL_CH1 1
329#define SAL_DSP_TESTMODE_AFEDVT_UL_CH2 2
330#define SAL_DSP_TESTMODE_AFEDVT_UL_CH3 3
331#define SAL_DSP_TESTMODE_AFEDVT_UL_CH4 4
332#define SAL_DSP_TESTMODE_AFEDVT_UL_CH5 5
333
334#define SAL_DSP_TESTMODE_AFEDVT_DL_CH0 0
335#define SAL_DSP_TESTMODE_AFEDVT_DL_CH1 1
336
337//Debug mode
338#define SAL_DSP_DBGMODE_SSP_PCM_U2D_AFE SAL_BIT0
339#define SAL_DSP_DBGMODE_SSP_PCM_U2D_SFE SAL_BIT1
340#define SAL_DSP_DBGMODE_SSP_MUTE_UL SAL_BIT2
341#define SAL_DSP_DBGMODE_SSP_MUTE_DL SAL_BIT3
342#define SAL_DSP_DBGMODE_SSP_TONE_UL SAL_BIT4
343#define SAL_DSP_DBGMODE_SSP_TONE_DL SAL_BIT5
344#define SAL_DSP_DBGMODE_SFP_HB_U2D SAL_BIT6
345#define SAL_DSP_DBGMODE_SFP_PCM_U2D SAL_BIT7
346#define SAL_DSP_DBGMODE_SFP_MUTE_POSENHU SAL_BIT8
347#define SAL_DSP_DBGMODE_SFP_MUTE_PREENHD SAL_BIT9
348#define SAL_DSP_DBGMODE_SFP_MUTE_POSENHD SAL_BIT10
349#define SAL_DSP_DBGMODE_SFP_TONE_POSENHU SAL_BIT11
350#define SAL_DSP_DBGMODE_SFP_TONE_PREENHD SAL_BIT12
351#define SAL_DSP_DBGMODE_SFP_TONE_POSENHD SAL_BIT13
352#define SAL_DSP_DBGMODE_SFP_DISABLE_ENHU SAL_BIT14
353#define SAL_DSP_DBGMODE_SFP_DISABLE_ENHD SAL_BIT15
354
355//Debug mode 2
356#define SAL_DSP_DBGMODE2_SFP_PCM_D2U SAL_BIT0
357
358// SAL trace
359#define SAL_SPH_CALL_OPEN 0x3000
360#define SAL_SPH_CALL_CLOSE 0x3001
361#define SAL_SPH_SET_VALUE 0x3002
362#define SAL_SPH_SET_TTY 0x3003
363#define SAL_SPH_FEATURE_SWITCH 0x3004
364#define SAL_SPH_GET_ADDR 0x3005
365#define SAL_SPH_GET_VALUE 0x3006
366#define SAL_SPH_SET_COD_STATE 0x3007
367
368//DL gain smooth
369#define SAL_ATTACK_GAIN_DL_NB 47
370#define SAL_RELEASE_GAIN_DL_NB 32720
371#define SAL_ATTACK_GAIN_DL_WB 23
372#define SAL_RELEASE_GAIN_DL_WB 32744
373#define SAL_ATTACK_GAIN_DL_SWB 12
374#define SAL_RELEASE_GAIN_DL_SWB 32756
375
376//EVS
377#define SAL_EVS_SPEECH_GOOD_FRAME 0x6b21
378#define SAL_EVS_SPEECH_BAD_FRAME 0x6b20
379
380#define SAL_EVS_TX_CODEC_MODE 1
381#define SAL_EVS_RX_CODEC_MODE 2
382
383//3G mode
384#define SAL_3GLINK_MODE_NONE 0
385#define SAL_3GLINK_MODE_WCDMA 1
386#define SAL_3GLINK_MODE_TDSCDMA 2
387
388//PS mode
389#define SAL_PSRAN_TYPE_NONE 0
390#define SAL_PSRAN_TYPE_LTE 1
391#define SAL_PSRAN_TYPE_NR 2
392
393//LinkStatus
394#define SAL_LINKSTATUS_2G 2
395#define SAL_LINKSTATUS_3G 3
396#define SAL_LINKSTATUS_4G 4
397#define SAL_LINKSTATUS_C2K 10
398
399#define SAL_DELAY_NA (0xFFFF)
400//PCM Rec DL Position
401#define SAL_PCMREC_DL_POS_DL_END 0
402#define SAL_PCMREC_DL_POS_POS_ENH 1
403#define SAL_PCMREC_DL_POS_PRE_MIXER2 2
404#define SAL_PCMREC_DL_POS_MAX 2
405
406#define SAL_SVC_VERSION_NA (0xFF)
407
408//DMF
409#define SAL_DMF_SOURCE_SPH_UL SAL_BIT0
410#define SAL_DMF_SOURCE_SPH_DL SAL_BIT1
411#define SAL_DMF_SOURCE_ENH_UL SAL_BIT2
412
413#define SAL_DMF_RATE_NONE (0)
414#define SAL_DMF_RATE_C2K (1)
415#define SAL_DMF_RATE_2G (2)
416#define SAL_DMF_RATE_3G (3)
417#define SAL_DMF_RATE_4G (4)
418
419#define SAL_DMF_DL_STATUS_DISCON_NW SPH_BIT0
420#define SAL_DMF_DL_STATUS_DISCON_SPH SPH_BIT1
421#define SAL_DMF_DL_STATUS_SILENCE_NW SPH_BIT2
422#define SAL_DMF_DL_STATUS_SILENCE_SPH SPH_BIT3
423#define SAL_DMF_DL_STATUS_NOISE_NW SPH_BIT4
424#define SAL_DMF_DL_STATUS_NOISE_SPH SPH_BIT5
425
426#define SAL_DMF_BADFRM_ID_FR_BFI (0)
427#define SAL_DMF_BADFRM_ID_HR_BFI (1)
428#define SAL_DMF_BADFRM_ID_EFR_BFI (2)
429#define SAL_DMF_BADFRM_ID_AMR_DEG (3)
430#define SAL_DMF_BADFRM_ID_AMR_ONSET (4)
431#define SAL_DMF_BADFRM_ID_AMR_BAD (5)
432#define SAL_DMF_BADFRM_ID_AWB_BAD (6)
433#define SAL_DMF_BADFRM_ID_AWB_PRBLY_DEG (7)
434#define SAL_DMF_BADFRM_ID_EVA_ERASURE (8)
435#define SAL_DMF_BADFRM_ID_EVB_ERASURE (9)
436#define SAL_DMF_BADFRM_ID_EVS_BFI (10)
437#define SAL_DMF_BADFRM_ID_NUM (11)
438
439#define SAL_DMF_HOMFRM_ID_FR (0)
440#define SAL_DMF_HOMFRM_ID_HR (1)
441#define SAL_DMF_HOMFRM_ID_EFR (2)
442#define SAL_DMF_HOMFRM_ID_AMR (3)
443#define SAL_DMF_HOMFRM_ID_AWB (4)
444#define SAL_DMF_HOMFRM_ID_NUM (5)
445
446#define SAL_DMF_NODATA_ID_AMR (0)
447#define SAL_DMF_NODATA_ID_AWB (1)
448#define SAL_DMF_NODATA_ID_EVS (2)
449#define SAL_DMF_NODATA_ID_NUM (3)
450
451#define SAL_DMF_ENH_ROBUST_STATUS_NORMAL (0)
452#define SAL_DMF_ENH_ROBUST_STATUS_WA (1)
453#define SAL_DMF_ENH_ROBUST_STATUS_NORMAL_CLEAN (2)
454#define SAL_DMF_ENH_ROBUST_STATUS_WA_CLEAN (3)
455#define SAL_DMF_ENH_ROBUST_STATUS_MIC1_ONLY (4)
456#define SAL_DMF_ENH_ROBUST_STATUS_MIC2_ONLY (5)
457
458//TS
459typedef enum{
460 SAL_VM_TS_INFO_CTRL = 0,
461 SAL_VM_TS_INFO_TARGET_SCALE,
462 SAL_VM_TS_INFO_MAX_SCALE,
463 SAL_VM_TS_INFO_OUTPUT_SIZE_1,
464 SAL_VM_TS_INFO_OUTPUT_SIZE_2
465}Sal_VM_TS_Info_t;
466
467//AAMPlus
468typedef enum{
469 SAL_AAMPLUS_STA_SILENCE_SID_FIRST = 0,
470 SAL_AAMPLUS_STA_SILENCE_SID_UPDATE,
471 SAL_AAMPLUS_STA_TALK
472}Sal_AAMPlus_State_t;
473
474typedef enum{
475 SAL_PCM_NARROWBAND = 0,
476 SAL_PCM_WIDEBAND,
477 SAL_PCM_SUPERWIDEBAND,
478 SAL_PCM_FULLBAND,
479 SAL_PCM_DYNAMIC
480}Sal_PcmBand_Config_t;
481
482typedef enum{
483 SAL_PCMEX_OFF = 0,
484 SAL_PCMEX_ON,
485 SAL_PCMEX_RDY,
486}Sal_PcmEx_State_t;
487
488typedef enum{
489 SAL_GSERIES = 0,
490 SAL_EVS
491
492}Sal_ExtCod_t;
493
494typedef enum{
495 SAL_PCMEX_TYPE_PNW = 0,
496 SAL_PCMEX_TYPE_DACA,
497 SAL_PCMEX_TYPE_REC_NML,
498 SAL_PCMEX_TYPE_REC_EPL, //no actual dsp control before MT6589
499 SAL_PCMEX_TYPE_EXT_COD
500}Sal_PcmEx_Type_t;
501
502typedef enum{
503 SAL_PCMEX_SWITCH_OFF = 0,
504 SAL_PCMEX_SWITCH_ON
505}Sal_PcmEx_Switch_t;
506
507typedef enum{
508 SAL_PCMEX_PNW_BUF_M2D_UL1 = 0,//D2M
509 SAL_PCMEX_PNW_BUF_D2M_UL1,
510 SAL_PCMEX_PNW_BUF_M2D_UL2,
511 SAL_PCMEX_PNW_BUF_D2M_UL2,
512 SAL_PCMEX_PNW_BUF_M2D_UL3,
513 SAL_PCMEX_PNW_BUF_D2M_UL3,
514 SAL_PCMEX_PNW_BUF_M2D_UL4,
515 SAL_PCMEX_PNW_BUF_D2M_UL4,
516 SAL_PCMEX_PNW_BUF_M2D_DL1,
517 SAL_PCMEX_PNW_BUF_D2M_DL1,
518 SAL_PCMEX_DACA_BUF_UL,
519 SAL_PCMEX_DACA_BUF_DL,
520 SAL_PCMEX_BUF_SE,
521 SAL_PCMEX_BUF_SE2,//mic2
522 SAL_PCMEX_BUF_SD,
523 SAL_PCMEX_EXTCOD_BUF_UL,
524 SAL_PCMEX_EXTCOD_BUF_DL,
525 //For pcm4way.c build pass
526 SAL_PCMEX_PNW_BUF_UL1,//D2M
527 SAL_PCMEX_PNW_BUF_UL2,//M2D
528 SAL_PCMEX_PNW_BUF_UL3,
529 SAL_PCMEX_PNW_BUF_UL4,
530 SAL_PCMEX_PNW_BUF_DL1,//D2M
531 SAL_PCMEX_PNW_BUF_DL2,//M2D
532}Sal_PcmEx_BufId_t;
533
534typedef enum{
535 SAL_ENH_IIR_COEF_UL_NB,
536 SAL_ENH_IIR_COEF_DL_NB,
537 SAL_ENH_IIR_COEF_UL_WB,
538 SAL_ENH_IIR_COEF_DL_WB,
539 SAL_ENH_IIR_COEF_UL_SWB,
540 SAL_ENH_IIR_COEF_DL_SWB,
541 SAL_MIC1_IIR_COEF_UL_NB,
542 SAL_MIC2_IIR_COEF_UL_NB,
543 SAL_MIC1_IIR_COEF_UL_WB,
544 SAL_MIC2_IIR_COEF_UL_WB,
545 SAL_MIC1_IIR_COEF_UL_SWB,
546 SAL_MIC2_IIR_COEF_UL_SWB
547}Sal_IIR_Coef_t;
548
549typedef struct{
550 Sal_PcmEx_Switch_t swi;
551
552 Sal_PcmEx_Type_t type;
553
554 bool idle;//must be assinged
555 Sal_PcmBand_Config_t band;//taking effect only when idle is true
556 uint16 delR;
557 uint16 delW;
558 uint16 delM;
559
560 //for pcm n way
561 bool afterEnh_ul1;
562 bool D2M_ul1;
563 bool M2D_ul1;
564 bool afterEnh_ul2;
565 bool D2M_ul2;
566 bool M2D_ul2;
567 bool afterEnh_ul3;
568 bool D2M_ul3;
569 bool M2D_ul3;
570 bool afterEnh_ul4;
571 bool D2M_ul4;
572 bool M2D_ul4;
573 bool DMNR_cal;//dsp pnw ul will copy pcm to M2D buffer
574
575 bool afterEnh_dl; //position
576 bool D2M_dl; //dl position is different from daca on bgs and keytone
577 bool M2D_dl;
578
579 //for PCM Rec
580 uint16 PCMRec_DL_Pos;
581}Sal_PCMEx_Config_t;
582
583typedef enum{
584 SAL_VM_SWITCH_OFF = 0,
585 SAL_VM_SWITCH_ON
586}Sal_VM_Switch_t;
587
588typedef struct{
589 Sal_VM_Switch_t swi;
590 bool idle;
591
592 uint16 delR;
593 uint16 delW;
594 uint16 delM;
595 uint16 codec;
596}Sal_VM_Config_t;
597
598typedef struct{
599 uint16 enc_mode;
600 uint16 dec_mode;
601
602 uint16 dec_frm_num;
603
604 uint16 enc_hdr;
605 uint16 dec_hdr;
606 uint16 dec_hdr_1;
607
608 volatile uint16 *enc_hb_addr;
609 volatile uint16 *dec_hb_addr;
610 volatile uint16 *dec_hb_addr_1;
611
612 volatile uint16 *dbgInfo_addr;
613 volatile uint16 *enh_dbgInfo_addr;
614 volatile uint16 *svc_dbgInfo_addr;
615}Sal_VM_Frame;
616
617typedef struct{
618 uint16 ul_pre_len;
619 uint16 ul_pos_len;
620 uint16 dl_pre_len;
621 uint16 dl_pos_len;
622
623 uint16 ul2_pos_len;
624 uint16 ul3_pos_len;
625 uint16 ul4_pos_len;
626 uint16 ul5_pos_len;
627
628 volatile uint16 *ul_pre_buf;
629 volatile uint16 *ul_pos_buf;
630 volatile uint16 *dl_pre_buf;
631 volatile uint16 *dl_pos_buf;
632
633 volatile uint16 *ul2_pos_buf;
634 volatile uint16 *ul3_pos_buf;
635 volatile uint16 *ul4_pos_buf;
636 volatile uint16 *ul5_pos_buf;
637}Sal_EPL_Frame;
638
639typedef enum{
640 SAL_BT_MODE_LINEAR = 0,
641 SAL_BT_MODE_SIGNEXT,
642 SAL_BT_MODE_GAIN
643}Sal_BT_Mode_t;
644
645typedef enum{
646 SAL_BT_LINEAR_GAIN_FIXED = 0,//fixed to 18db
647 SAL_BT_LINEAR_ZPAD,//last 3 bits
648 SAL_BT_LINEAR_GAIN_CONFIG_ZPAD
649}Sal_BT_Linear_Ctrl_t;
650
651typedef struct{
652
653 bool feed_cfg;// false: clear bt config
654 Sal_BT_Mode_t mode;
655
656 //for linear mode
657 Sal_BT_Linear_Ctrl_t linear_ctrl;
658 bool linear_reverse;
659 uint8 linear_ul_gain;
660
661 //for gain mode
662 uint8 gainmode_dl_gain;
663
664}Sal_BT_Config;
665
666typedef enum{
667 SAL_MUTE_UL_POS_EN,
668 SAL_MUTE_UL_PRE_EN,
669 SAL_MUTE_UL_IN_EN,
670 SAL_MUTE_DL_PRE_SD,
671 SAL_MUTE_DL_PRE_EN,
672 SAL_MUTE_UL_8K,
673 SAL_MUTE_DL_8K,
674 SAL_MUTE_UL_PRE_EXTCOD,
675 SAL_MUTE_DL_POS_EXTCOD
676}Sal_Mute_Point_t;
677
678typedef enum{
679 SAL_RAMP_UL_POS_EN,
680 SAL_RAMP_UL_PRE_EN,
681 SAL_RAMP_UL_IN_EN,
682// SAL_RAMP_DL_PRE_SD,
683 SAL_RAMP_DL_PRE_EN,
684 SAL_RAMP_UL_8K,
685 SAL_RAMP_DL_8K,
686 SAL_RAMP_UL_PRE_EXTCOD,
687 SAL_RAMP_DL_POS_EXTCOD,
688 SAL_RAMP_DL_PRE_DACA,
689 SAL_RAMP_DL_PRE_MIXER2
690}Sal_Ramp_Point_t;
691
692typedef enum{
693 SAL_RAMP_IDLE = 0,
694 SAL_RAMP_DOWN_INIT,
695 SAL_RAMP_DOWN_RUN,
696 SAL_RAMP_DOWN_DONE,
697 SAL_RAMP_UP_INIT,
698 SAL_RAMP_UP_RUN,
699 SAL_RAMP_UP_DONE
700}Sal_Ramp_State_t;
701
702typedef enum{
703 SAL_DTMF_REMOVAL_UL_PRE_EN
704}Sal_DTMF_Removal_Point_t;
705
706typedef enum{
707 SAL_ENH_DYNAMIC_MUTE_UL,
708 SAL_ENH_DYNAMIC_DMNR_MUX,
709 SAL_ENH_DYNAMIC_VCE_MUX,
710 SAL_ENH_DYNAMIC_BWE_MUX,
711 SAL_ENH_DYNAMIC_UL_NR_MUX,
712 SAL_ENH_DYNAMIC_DL_NR_MUX,
713 SAL_ENH_DYNAMIC_DMNR_HF_MUX,
714 SAL_ENH_DYNAMIC_SIDEKEYCTRL_DGAIN_MUX,
715 SAL_ENH_DYNAMIC_DL_NR_INIT_CTRL_MUX,
716 SAL_ENH_DYNAMIC_AEC_MUX,
717 SAL_ENH_DYNAMIC_NUM //for salu using
718}Sal_Enh_Dynamic_t;
719
720typedef enum{
721 SAL_ENH_DYN_PAR,
722 SAL_ENH_DYN_DDL_SET,
723 SAL_ENH_DYN_DDL_DONE
724}Sal_Enh_Dyn_Sta_t;
725
726typedef enum{
727 SAL_ENH_FLAG_PAR_SET_UL,
728 SAL_ENH_FLAG_PAR_SET_DL,
729 SAL_ENH_FLAG_PAR_SET_UL_DL,
730 SAL_ENH_FLAG_PAR_SET_NB_BKF_UL,
731 SAL_ENH_FLAG_PAR_SET_NB_BKF_DL,
732 SAL_ENH_FLAG_PAR_SET_NB_MOD,
733 SAL_ENH_FLAG_PAR_SET_WB_BKF_UL,
734 SAL_ENH_FLAG_PAR_SET_WB_BKF_DL,
735 SAL_ENH_FLAG_PAR_SET_WB_MOD
736}Sal_Enh_Flag_Par_t;
737
738typedef enum{
739 SAL_DEVINFO_INT_NORMAL = 1,
740 SAL_DEVINFO_INT_BT_PCM,
741 SAL_DEVINFO_INT_CVSD_MSBC
742}Sal_DevInfo_Int_t;
743
744typedef enum{
745 SAL_DEVINFO_EXT_DEFAULT = 0,
746 SAL_DEVINFO_EXT_VIBRATION_RECEIVER,
747 SAL_DEVINFO_EXT_VIBRATION_SPEAKER,
748 SAL_DEVINFO_EXT_SMARTPA_SPEAKER,
749 SAL_DEVINFO_EXT_SMARTPA_VIBRATION_SPEAKER,
750 SAL_DEVINFO_EXT_USB_AUDIO,
751 SAL_DEVINFO_EXT_EARPHONE,
752 SAL_DEVINFO_EXT_DUALSMARTPA_SPEAKER,
753 SAL_DEVINFO_EXT_DUALSMARTPA_VIBRATION_SPEAKER
754}Sal_DevInfo_Ext_t;
755
756typedef enum{
757 SAL_SMARTPA_SINGLE = 0,
758 SAL_SMARTPA_DUAL
759}Sal_SmartPA_Config_t;
760
761typedef enum{
762 SAL_EXTAUIF_MEM_TYPE_SPHALL = 0,
763 SAL_EXTAUIF_MEM_TYPE_ENH,
764 SAL_EXTAUIF_MEM_TYPE_OD
765}Sal_ExtAUIF_Mem_Type_t;
766
767typedef struct{
768
769 bool main_switch;
770 bool gain_switch;//false->fixed_gain
771 bool hpiir_switch;
772 bool vad_switch;
773 bool cosim;
774 bool init_req;
775
776}Sal_AGC_Config_t;
777
778typedef enum{
779 SAL_VOLTE_INFO_JBM_OUT_SN,//for vm logging
780 SAL_VOLTE_INFO_NUM, //for salu using
781 SAL_VOLTE_INFO_JBM_NODATA_TYPE
782}Sal_VOLTE_info_t;
783
784typedef struct{
785
786 uint16 cod_band; //0: NB, 1: WB
787 uint16 dev_band; //0: NB, 1: WB
788 uint16 delR;
789 uint16 delW;
790 uint16 delM_DL;
791 uint16 delM_UL;
792
793}Sal_PCM_Router_t;
794
795typedef enum{
796 SAL_DEALY_2G = 0,
797 SAL_DEALY_3G_FDD,
798 SAL_DEALY_3G_TDD,
799 SAL_DEALY_4G,
800 SAL_DEALY_5G,
801 SAL_DEALY_C2K,
802 SAL_DEALY_AMR,
803 SAL_DEALY_NOTAMR,
804 SAL_DEALY_PCM8K_PB,
805 SAL_DEALY_PCM16K,
806 SAL_DEALY_KT,
807 SAL_DEALY_PCM8K_PB_VOIP,
808 SAL_DEALY_NONE = 99
809}Sal_Delay_Type_t;
810
811typedef enum{
812 SAL_SRST_TYPE_CALLON = 0,
813 SAL_SRST_TYPE_HO,
814 SAL_SRST_TYPE_UNSYNC,
815 SAL_SRST_TYPE_DEV
816}Sal_SRst_Type_t;
817
818typedef struct{
819 uint16 DMFRate;
820 uint16 DMFULMutePosENHCnt;
821
822}Sal_DMF_SPH_UL_Info_t;
823
824typedef struct{
825 uint16 DMFRate;
826 uint16 DMFDLStatus;
827 uint16 DMFDLVoice;
828 uint16 DMFCRCFailCnt;
829 uint16 DMFSphRstCnt;
830 uint16 DMFPktLossCnt;
831 uint16 DMFJitterLossCnt;
832 uint16 DMFBadFrmCnt[SAL_DMF_BADFRM_ID_NUM];
833 uint16 DMFHomFrmCnt[SAL_DMF_HOMFRM_ID_NUM];
834 uint16 DMFNoDataCnt[SAL_DMF_NODATA_ID_NUM];
835
836}Sal_DMF_SPH_DL_Info_t;
837
838typedef struct{
839 uint16 DMFRate;
840 uint16 DMFENHRobustStatusPre;
841 uint16 DMFENHRobustStatusPos;
842
843}Sal_DMF_ENH_UL_Info_t;
844
845#define SAL_CTM_VALUE_TYPE_FACCH_REPORT 0
846#define SAL_CTM_VALUE_TYPE_AMR_RX_RATE 1
847
848#define SAL_UNKNOWN 0xeeee
849
850#define DSP_IID_SPEECH_UL_ID 1
851#define DSP_IID_SPEECH_DL_ID 2
852#define DSP_IID_SPEECH_UL_ID2 3
853#define DSP_IID_SPEECH_DL_ID2 4
854#define DSP_IID_SPEECH_AUX_ID 5
855#define DSP_IID_SPEECH_MM_ID 6
856#define DSP_IID_SPEECH_UL_ID3 10
857#define DSP_IID_SPEECH_UL_ID4 11
858
859#endif