hw_codec.h
2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
* hw_codec.h
*
* Created on: 2019-6-4
* Author: Windowns
* Maintiners: LGD and LeeLin
*/
#ifndef HW_CODEC
#define HW_CODEC
//#define AUDIO_ADC_24BIT
#define AUDIO_24_BIT_OUTPUT
enum
{
enAUX_CHANNEL,
enMIC_P_CHANL,
enMIC_P_CH_WITH_BIAS, //only for bias of micphone .
enADC_POWER_OFF
};
enum
{
enMIC_BOOST_0dB, //0dB
enMIC_BOOST_6dB, //6dB
enMIC_BOOST12dB, //12dB
enMIC_BOOST20dB //20dB
};
enum
{
enSINGLE_ENDED,
enDIFFERENTIAL
};
enum
{
enDAC_POWER_OFF,
enDAC_POWER_ON
};
enum
{
enVREF_PIN_HAVE_NO,
enVREF_PIN_HAVE,
};
enum
{
enALC_SEL_INVALID,
enALC_SEL_ACTIVE /*only left channel, havn't right channel.*/
};
enum
{
enALC_NORMAL_MOD,
enALC_LIMITER_MOD
};
enum
{
enALC_MAX_M12dB,
enALC_MAX_M6dB,
enALC_MAX_0dB,
enALC_MAX_6dB,
enALC_MAX_12dB,
enALC_MAX_18dB,
enALC_MAX_24dB,
enALC_MAX_35dB,
};
enum
{
enALC_MIN_M12dB,
enALC_MIN_M6dB,
enALC_MIN_0dB,
enALC_MIN_6dB,
enALC_MIN_12dB,
};
enum //for getting noise threshold value
{
enNOISE_THD_M36FS,
enNOISE_THD_M42FS,
enNOISE_THD_M48FS,
enNOISE_THD_M54FS,
enNOISE_THD_M60FS,
enNOISE_THD_M66FS,
enNOISE_THD_M72FS,
enNOISE_THD_M78FS,
};
/**********Mic Analog aduio_in as similar with aux_in*****/
/**********precision is 0.75dB/step, range from -12dB to +32.5dB ************/
//#define OTK5286_B_D // removed to "oem.h"
#define HW_CODEC_ADC_PGA_UNIT_dB(X) ( X > 0 ? ((X*100/75)+ 0x10) : ( 0x10 + X*100/75))
/**********precision is 0.75dB/step, range of -32.5 to +12dB ****************/
#define HW_CODEC_DAC_PGA_UNIT_dB(X) ( X > 0 ? ((X*100/75)+ 0x2F) : ( 0x2F + X*100/75))
/**********ALC Target Peak Level, 1.5dBFS per step: range of -1.5dBFS to -24dBFS ******************/
#define HW_CODEC_ADC_ALC_LEVEL_dBFS(X)((X+1.5 > 0 ) ? 0x0F :(0X10+ X*10/15))
/**************************************************************************************************/
void audio_code_init(void);
void hw_codec_adc_channel_with_gain(U8 channel,U8 mic_boost, U8 gain_dB, U8 diff);
void hw_codec_adc_ALC_Peak_Limiter(U8 alc_sel,U8 alc_mod,U8 maxgain,U8 mingain,U8 noise_threshold,U8 alc_lvl);
void hw_codec_dac_output_with_gain(U8 enable,U8 gain_dB, U8 sidetone );
void audio_code_ultra_consumpation(void);
#define HW_CODEC_ADC_CHANNEL_WITH_GAIN(channel,mic_boost,gain_dB,diff) hw_codec_adc_channel_with_gain(channel,mic_boost,gain_dB,diff)
#define HW_CODEC_DAC_OUTPUT_WITH_GAIN(enable,gain_dB,sidetone) hw_codec_dac_output_with_gain(enable,gain_dB,sidetone);
#define AUDIO_CODE_ULTRA_COMSUMPATON audio_code_ultra_consumpation();
#define HW_CODEC_ADC_INIT hw_codec_adc_init();
#endif /* */