123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #include "include.h"
- #if FUNC_AUX_EN
- /****************************** AUX NOTICE **************************************
- ///无模拟直通,通路保持audio->adc->dac,配置固定:
- * AUXL0_ADC0: 输入:PE6 输出:DACL\DACL&R
- * AUXR0_ADC1: 输入:PE7 输出:DACR\DACL&R
- * AUXL1_ADC0: 输入:PA6 输出:DACL\DACL&R
- * AUXR1_ADC1: 输入:PA7 输出:DACR\DACL&R
- ///模拟增益范围:
- * ANL_GAIN: AUX_P12DB~AUX_N12DB,-12dB~+12dB 共8级
- *****************************************************************************************/
- u8 aux_cfg_feature = -1;
- AT(.rodata.aux)
- static const u16 auxl_adc_tbl[3] = {
- 0, CH_AUXL0, CH_AUXL1,
- };
- AT(.rodata.aux)
- static const u16 auxr_adc_tbl[3] = {
- 0, CH_AUXR0, CH_AUXR1,
- };
- u16 bsp_aux_ch_getcfg(void)
- {
- #if FUNC_AUX_EN
- u16 aux_cfg = 0;
- if (aux_cfg_feature & BIT(0)) {
- aux_cfg = (ADC4 << 4 | AUXL1);
- } else if (aux_cfg_feature & BIT(1)) {
- aux_cfg = auxl_adc_tbl[xcfg_cb.auxl_sel] | (auxr_adc_tbl[xcfg_cb.auxr_sel] << 8);
- }
- return aux_cfg;
- #else
- return 0;
- #endif // FUNC_AUX_EN
- }
- AT(.text.bsp.aux)
- void bsp_aux_start(void)
- {
- // printf("%s\n", __func__);
- aux_cfg_feature = (xcfg_cb.aux_comb_en & 0x01) | ((xcfg_cb.aux_diff_en & 0x01) << 1) | (xcfg_cb.aux_comb_sel << 4);
- if (aux_cfg_feature <= 0) {
- printf("AUX setting null, aux feature %x\n", aux_cfg_feature);
- return;
- }
- dac_fade_out();
- dac_fade_wait(); //等待淡出完成
- audio_path_init(AUDIO_PATH_AUX);
- audio_path_start(AUDIO_PATH_AUX);
- dac_fade_in();
- }
- AT(.text.bsp.aux)
- void bsp_aux_stop(void)
- {
- // printf("%s\n", __func__);
- dac_fade_out();
- dac_fade_wait();
- audio_path_exit(AUDIO_PATH_AUX);
- dac_aubuf_clr();
- }
- AT(.text.bsp.aux)
- void bsp_aux_mute(u8 ch) //BIT(0)-AUXL; BIT(1)-AUXR
- {
- aux_channel_mute(ch);
- }
- AT(.text.bsp.aux)
- void bsp_aux_unmute(u8 ch) //BIT(0)-AUXL; BIT(1)-AUXR
- {
- aux_channel_unmute(ch);
- }
- // level: 0-AUX_N12DB; 1-AUX_N9DB; 2-AUX_N6DB; 3-AUX_N3DB; 4-AUX_p0DB; 5-AUX_P6DB; 6-AUX_P9DB; 7-AUX_P12DB;
- AT(.text.bsp.aux)
- void bsp_aux_set_vol(u8 level, u8 ch) //BIT(0)-AUXL; BIT(1)-AUXR
- {
- set_aux_analog_vol(level, ch);
- }
- #define ANA_ADC0 0x00
- #define ANA_ADC1 0x01
- #define ANA_ADC2 0x02
- #define ANA_ADC3 0x03
- #define ANA_ADC4 0x04
- //设置AUXL\AUXR ana_adc通路
- AT(.text.aux)
- u8 aux_ana_adc_ch_hook(void)
- {
- u8 auxl_adc = ANA_ADC4;
- u8 auxr_adc = ANA_ADC1;
- return (auxl_adc | (auxr_adc << 4));
- }
- #endif
|