From cba85a7238faca83eefcd977c61eecb56ba10330 Mon Sep 17 00:00:00 2001 From: dylancaowugang Date: Sat, 3 Sep 2022 11:23:40 +0800 Subject: [PATCH] add base 2300_open source on it --- apps/main/apps.cpp | 134 +- config/2300_open_source/target.mk | 419 +++++++ config/2300_open_source/tgt_hardware.c | 1090 +++++++++++++++++ config/2300_open_source/tgt_hardware.h | 120 ++ config/best2300p_ibrt/tgt_hardware.h | 2 - config/mic_alg/target.mk | 2 +- config/mic_alg/tgt_hardware.c | 4 +- config/mic_alg/tgt_hardware.h | 2 - .../drivers/ana/best2300p/analog_best2300p.c | 2 - services/app_ibrt/src/app_ibrt_ui_test.cpp | 123 +- services/app_tws/src/app_tws_if.cpp | 10 +- services/bt_app/app_bt_stream.cpp | 9 + 12 files changed, 1717 insertions(+), 200 deletions(-) create mode 100644 config/2300_open_source/target.mk create mode 100644 config/2300_open_source/tgt_hardware.c create mode 100644 config/2300_open_source/tgt_hardware.h diff --git a/apps/main/apps.cpp b/apps/main/apps.cpp index c994e72..3ed6924 100644 --- a/apps/main/apps.cpp +++ b/apps/main/apps.cpp @@ -604,6 +604,8 @@ extern "C" int app_voice_stop(APP_STATUS_INDICATION_T status, uint8_t device_id) } #endif +#if 1//!defined(BLE_ONLY_ENABLED) + static void app_poweron_normal(APP_KEY_STATUS *status, void *param) { TRACE(3,"%s %d,%d",__func__, status->code, status->event); @@ -611,7 +613,6 @@ static void app_poweron_normal(APP_KEY_STATUS *status, void *param) signal_send_to_main_thread(0x2); } -#if 1//!defined(BLE_ONLY_ENABLED) static void app_poweron_scan(APP_KEY_STATUS *status, void *param) { TRACE(3,"%s %d,%d",__func__, status->code, status->event); @@ -658,6 +659,7 @@ const APP_KEY_HANDLE pwron_key_handle_cfg[] = { {{APP_KEY_CODE_PWR,APP_KEY_EVENT_UP}, "power on: shutdown" , app_bt_key_shutdown, NULL}, }; #elif defined(__ENGINEER_MODE_SUPPORT__) +s const APP_KEY_HANDLE pwron_key_handle_cfg[] = { {{APP_KEY_CODE_PWR,APP_KEY_EVENT_INITUP}, "power on: normal" , app_poweron_normal, NULL}, #if !defined(BLE_ONLY_ENABLED) @@ -687,11 +689,12 @@ static void app_poweron_key_init(void) static uint8_t app_poweron_wait_case(void) { - uint32_t stime = 0, etime = 0; #ifdef __POWERKEY_CTRL_ONOFF_ONLY__ g_pwron_case = APP_POWERON_CASE_NORMAL; #else + uint32_t stime = 0, etime = 0; + TRACE(1,"poweron_wait_case enter:%d", g_pwron_case); if (g_pwron_case == APP_POWERON_CASE_INVALID){ stime = hal_sys_timer_get(); @@ -1671,7 +1674,6 @@ static void once_delay_event_Timer_fun(const void *) app_ibrt_sync_volume_info(); break; case 9: - touch_reset(); break; default: break; @@ -1697,39 +1699,7 @@ void stoponce_delay_event_Timer_(void) #include "tgt_hardware.h" extern struct BT_DEVICE_T app_bt_device; extern void hal_gpio_pin_set(enum HAL_GPIO_PIN_T pin); -osTimerId app_mute_timer = NULL; -static void app_mute_timehandler(void const *n); -osTimerDef (APP_MUTE_TIMER, app_mute_timehandler); -/* -static void app_mute_ctrl_init(void) -{ - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&MuteOutPwl, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)MuteOutPwl.pin, HAL_GPIO_DIR_OUT, 0); - app_mute_timer = osTimerCreate (osTimer(APP_MUTE_TIMER), osTimerOnce, NULL); -} -*/ - -void app_mute_ctrl(bool Status) -{ - if(Status == true) - { - hal_gpio_pin_set((enum HAL_GPIO_PIN_T)MuteOutPwl.pin); - } - else - { - hal_gpio_pin_clr((enum HAL_GPIO_PIN_T)MuteOutPwl.pin); - } -} - -void app_mutetimer_start() -{ - osTimerStart(app_mute_timer, 190); -} -static void app_mute_timehandler(void const *n) -{ - app_mute_ctrl(true); -} bool Curr_Is_Master(void) { @@ -2111,38 +2081,6 @@ void touch_evt_handler(enum HAL_GPIO_PIN_T pin) } -void touch_evt_handler_sda(enum HAL_GPIO_PIN_T pin) -{ - TRACE(3,"SDA_TOUCH!!!"); -} - -void tou_io_init(void) -{ - TRACE(3,"%s!!!",__func__); - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SCL, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SCL.pin, HAL_GPIO_DIR_IN, 1); - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SDA, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SDA.pin, HAL_GPIO_DIR_IN, 1); - - struct HAL_GPIO_IRQ_CFG_T gpiocfg_sda; - gpiocfg_sda.irq_enable = true; - gpiocfg_sda.irq_debounce = true; - gpiocfg_sda.irq_type = HAL_GPIO_IRQ_TYPE_EDGE_SENSITIVE; - gpiocfg_sda.irq_polarity=HAL_GPIO_IRQ_POLARITY_LOW_FALLING ; - gpiocfg_sda.irq_handler = touch_evt_handler; - hal_gpio_setup_irq((enum HAL_GPIO_PIN_T)TOUCH_I2C_SCL.pin, &gpiocfg_sda); - - struct HAL_GPIO_IRQ_CFG_T gpiocfg; - gpiocfg.irq_enable = true; - gpiocfg.irq_debounce = true; - gpiocfg.irq_type = HAL_GPIO_IRQ_TYPE_EDGE_SENSITIVE; - gpiocfg.irq_polarity=HAL_GPIO_IRQ_POLARITY_LOW_FALLING ; - gpiocfg.irq_handler = touch_evt_handler_sda; - hal_gpio_setup_irq((enum HAL_GPIO_PIN_T)TOUCH_I2C_SDA.pin, &gpiocfg); - - -} - /******************************LED_status_timer*********************************************************/ osTimerId LED_statusid = NULL; void startLED_status(int ms); @@ -2183,50 +2121,6 @@ void stopLED_status(void) /********************************LED_status_timer*******************************************************/ -/******************************TOUCH_INT_TEST_timer*********************************************************/ -void touch_reset(void); -osTimerId TOUCH_INT_TESTid = NULL; -void startTOUCH_INT_TEST(int ms); -void stopTOUCH_INT_TEST(void); -static void TOUCH_INT_TESTfun(const void *); -osTimerDef(defTOUCH_INT_TEST,TOUCH_INT_TESTfun); -void TOUCH_INT_TESTinit(void) -{ - TOUCH_INT_TESTid = osTimerCreate(osTimer(defTOUCH_INT_TEST),osTimerOnce,(void *)0); - - //startTOUCH_INT_TEST(100); - //touch_reset(); -} -static void TOUCH_INT_TESTfun(const void *) -{ - TRACE(3,"\n!!!!!!enter %s\n",__func__); - //app_i2c_demo_init(); - //hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_INT, 1); - //hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_INT.pin, HAL_GPIO_DIR_IN, 0); - tou_io_init(); -} - -void startTOUCH_INT_TEST(int ms) -{ - TRACE(3,"\n !!!!!!!!!!start %s\n",__func__); - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SCL, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SCL.pin, HAL_GPIO_DIR_OUT, 0); - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SDA, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SDA.pin, HAL_GPIO_DIR_OUT, 0); - //hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_INT, 1); - //hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_INT.pin, HAL_GPIO_DIR_OUT, 0); - - osTimerStart(TOUCH_INT_TESTid,ms); -} -void stopTOUCH_INT_TEST(void) -{ - osTimerStop(TOUCH_INT_TESTid); -} - -void touch_reset(void) -{ - startTOUCH_INT_TEST(50); -} /********************************TOUCH_INT_TEST_timer*******************************************************/ @@ -2238,7 +2132,6 @@ void user_io_timer_init(void) Auto_Shutdowm_Timerinit(); delay_report_toneinit(); once_delay_event_Timer_init(); - TOUCH_INT_TESTinit(); //app_i2c_demo_init(); //tou_io_init(); } @@ -2466,17 +2359,14 @@ extern int rpc_service_setup(void); nv_record_env_init(); nvrec_dev_data_open(); factory_section_open(); - /******************************************************************************/ - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SCL, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SCL.pin, HAL_GPIO_DIR_OUT, 1); - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&TOUCH_I2C_SDA, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)TOUCH_I2C_SDA.pin, HAL_GPIO_DIR_OUT, 1); + /*****************************************************************************/ // app_bt_connect2tester_init(); nv_record_env_get(&nvrecord_env); #ifdef AUDIO_LOOPBACK + #ifdef WL_DET app_mic_alg_audioloop(true,APP_SYSFREQ_78M); #endif @@ -2558,7 +2448,7 @@ extern int rpc_service_setup(void); if (pwron_case == APP_POWERON_CASE_REBOOT){ app_status_indication_init(); - user_io_timer_init(); + //user_io_timer_init(); app_status_indication_set(APP_STATUS_INDICATION_POWERON); #ifdef MEDIA_PLAYER_SUPPORT app_voice_report(APP_STATUS_INDICATION_POWERON, 0); @@ -2589,10 +2479,10 @@ extern int rpc_service_setup(void); TRACE(1,"ibrt_ui_log:power on %d fetch out", nvrecord_env->ibrt_mode.mode); app_ibrt_ui_event_entry(IBRT_FETCH_OUT_EVENT); } - startLED_status(1000); + //startLED_status(1000); once_event_case = 9; startonce_delay_event_Timer_(1000); - startpwrkey_det(200); + //startpwrkey_det(200); } #elif defined(IS_MULTI_AI_ENABLED) //when ama and bisto switch, earphone need reconnect with peer, master need reconnect with phone @@ -2654,7 +2544,7 @@ extern int rpc_service_setup(void); } #endif else{ - user_io_timer_init(); + //user_io_timer_init(); app_status_indication_init(); app_status_indication_set(APP_STATUS_INDICATION_POWERON); #ifdef MEDIA_PLAYER_SUPPORT @@ -2757,7 +2647,7 @@ extern int rpc_service_setup(void); // app_status_indication_set(APP_STATUS_INDICATION_CHARGING); //break; } - startpwrkey_det(200); + //startpwrkey_det(200); } #elif defined(IS_MULTI_AI_ENABLED) //when ama and bisto switch, earphone need reconnect with peer, master need reconnect with phone diff --git a/config/2300_open_source/target.mk b/config/2300_open_source/target.mk new file mode 100644 index 0000000..8420e26 --- /dev/null +++ b/config/2300_open_source/target.mk @@ -0,0 +1,419 @@ +CHIP ?= best2300p + +DEBUG ?= 1 + +FPGA ?= 0 + +MBED ?= 0 + +RTOS ?= 1 + +#KERNEL ?= FREERTOS + +LIBC_ROM ?= 1 + +export USER_SECURE_BOOT ?= 0 +# enable:1 +# disable:0 + +WATCHER_DOG ?= 1 + +DEBUG_PORT ?= 1 +# 0: usb +# 1: uart0 +# 2: uart1 + +FLASH_CHIP ?= ALL +# GD25Q80C +# GD25Q32C +# ALL + +export NO_TRACE_TIME_STAMP ?=1 + +export FORCE_SIGNALINGMODE ?= 0 + +export FORCE_NOSIGNALINGMODE ?= 0 + +export FORCE_SCO_MAX_RETX ?= 0 + +export FA_RX_GAIN_CTRL ?= 1 + +export BT_FA_ECC ?= 0 +export CONTROLLER_DUMP_ENABLE ?= 0 +export CONTROLLER_MEM_LOG_ENABLE ?= 0 + +export INTERSYS_DEBUG ?= 1 + +export PROFILE_DEBUG ?= 0 + +export BTDUMP_ENABLE ?= 0 + +export BT_DEBUG_TPORTS ?= 0 + +TPORTS_KEY_COEXIST ?= 0 + +export SNIFF_MODE_CHECK ?= 0 + +AUDIO_OUTPUT_MONO ?= 0 + +AUDIO_OUTPUT_DIFF ?= 0 + +#### ANC DEFINE START ###### +export ANC_APP ?= 0 +export ANC_FF_ENABLED ?= 0 +export ANC_FB_ENABLED ?= 0 +export AUDIO_ANC_FB_MC ?= 0 +export AUDIO_SECTION_SUPPT ?= 0 +export AUD_SECTION_STRUCT_VERSION ?= 2 +export AUDIO_ANC_FB_MC_HW ?=0 +export APP_ANC_KEY ?= 0 +export ANC_FB_CHECK ?= 0 +##### ANC DEFINE END ###### + +APP_ANC_TEST ?= 0 + +TEST_OVER_THE_AIR ?= 0 + +HW_FIR_EQ_PROCESS ?= 0 + +SW_IIR_EQ_PROCESS ?= 1 + +HW_DAC_IIR_EQ_PROCESS ?= 0 + +HW_IIR_EQ_PROCESS ?= 0 + +HW_DC_FILTER_WITH_IIR ?= 0 + +AUDIO_DRC ?= 0 + +AUDIO_DRC2 ?= 0 + +PC_CMD_UART ?= 0 + +AUDIO_SECTION_ENABLE ?= 0 + +AUDIO_RESAMPLE ?= 1 + +RESAMPLE_ANY_SAMPLE_RATE ?= 1 + +OSC_26M_X4_AUD2BB ?= 1 + +AUDIO_OUTPUT_VOLUME_DEFAULT ?= 17 +# range:1~16 + +AUDIO_INPUT_CAPLESSMODE ?= 0 + +AUDIO_INPUT_LARGEGAIN ?= 0 + +AUDIO_CODEC_ASYNC_CLOSE ?= 0 + +AUDIO_SCO_BTPCM_CHANNEL ?= 1 + +export A2DP_CP_ACCEL ?= 1 + +export SCO_CP_ACCEL ?= 1 + +export SCO_TRACE_CP_ACCEL ?= 0 + +# For TWS SCO DMA snapshot and low delay +export PCM_FAST_MODE ?= 1 + +export CVSD_BYPASS ?= 1 + +export LOW_DELAY_SCO ?= 0 + +SPEECH_TX_DC_FILTER ?= 1 + +SPEECH_TX_AEC2FLOAT ?= 1 + +SPEECH_TX_NS3 ?= 0 + +SPEECH_TX_2MIC_NS2 ?= 0 + +SPEECH_TX_COMPEXP ?= 1 + +SPEECH_TX_EQ ?= 0 + +SPEECH_TX_POST_GAIN ?= 0 + +SPEECH_RX_NS2FLOAT ?= 0 + +SPEECH_RX_EQ ?= 0 + +SPEECH_RX_POST_GAIN ?= 0 + +LARGE_RAM ?= 1 + +HSP_ENABLE ?= 0 + +HFP_1_6_ENABLE ?= 1 + +BTIF_HID_DEVICE ?= 1 + +MSBC_PLC_ENABLE ?= 1 + +MSBC_PLC_ENCODER ?= 1 + +MSBC_16K_SAMPLE_RATE ?= 1 + +SBC_FUNC_IN_ROM ?= 0 + +ROM_UTILS_ON ?= 0 + +APP_LINEIN_A2DP_SOURCE ?= 0 + +APP_I2S_A2DP_SOURCE ?= 0 + +VOICE_PROMPT ?= 1 + +#### Google related feature #### +# the overall google service switch +# currently, google service includes BISTO and GFPS +export GOOGLE_SERVICE_ENABLE ?= 0 + +# BISTO is a GVA service on Bluetooth audio device +# BISTO is an isolated service relative to GFPS +export BISTO_ENABLE ?= 0 + +# GSOUND_HOTWORD is a hotword library running on Bluetooth audio device +# GSOUND_HOTWORD is a subset of BISTO +export GSOUND_HOTWORD_ENABLE ?= 0 + +# GFPS is google fastpair service +# GFPS is an isolated service relative to BISTO +export GFPS_ENABLE ?= 0 +#### Google related feature #### + +export BTIF_HID_DEVICE ?= 1 +ifeq ($(BTIF_HID_DEVICE),1) +KBUILD_CPPFLAGS += -DBTIF_HID_DEVICE +endif + +BLE ?= 0 + +TOTA ?= 0 + +OTA_ENABLE ?= 1 + +TILE_DATAPATH_ENABLED ?= 0 + +CUSTOM_INFORMATION_TILE_ENABLE ?= 0 + +INTERCONNECTION ?= 0 + +INTERACTION ?= 0 + +INTERACTION_FASTPAIR ?= 0 + +BT_ONE_BRING_TWO ?= 0 + +DSD_SUPPORT ?= 0 + +A2DP_EQ_24BIT ?= 1 + +A2DP_AAC_ON ?= 1 + +A2DP_SCALABLE_ON ?= 0 + +A2DP_LHDC_ON ?= 0 +ifeq ($(A2DP_LHDC_ON),1) +A2DP_LHDC_V3 ?= 1 +A2DP_LHDC_LARC ?= 0 +export FLASH_UNIQUE_ID ?= 1 +endif + +A2DP_LDAC_ON ?= 0 + +export TX_RX_PCM_MASK ?= 0 + +A2DP_SCALABLE_ON ?= 0 + +FACTORY_MODE ?= 1 + +ENGINEER_MODE ?= 0 + +ULTRA_LOW_POWER ?= 1 + +DAC_CLASSG_ENABLE ?= 1 + +NO_SLEEP ?= 0 + +CORE_DUMP ?= 1 + +CORE_DUMP_TO_FLASH ?= 0 + +ENHANCED_STACK ?= 1 + +export SYNC_BT_CTLR_PROFILE ?= 0 + +export A2DP_DECODER_VER := 2 + +export IBRT ?= 1 + +export IBRT_SEARCH_UI ?= 1 + +export BES_AUD ?= 1 + +export POWER_MODE ?= DIG_DCDC + +export BT_RF_PREFER ?= 2M + +export SPEECH_CODEC ?= 1 + +export TWS_PROMPT_SYNC ?= 0 +export MIX_AUDIO_PROMPT_WITH_A2DP_MEDIA_ENABLED ?= 0 + +export FLASH_SIZE ?= 0x400000 +export FLASH_SUSPEND ?= 1 + +ifeq ($(DSD_SUPPORT),1) +export BTUSB_AUDIO_MODE ?= 1 +export AUDIO_INPUT_MONO ?= 1 +export USB_ISO ?= 1 +export USB_AUDIO_DYN_CFG ?= 1 +export DELAY_STREAM_OPEN ?= 0 +export KEEP_SAME_LATENCY ?= 1 +export HW_FIR_DSD_PROCESS ?= 1 +ifeq ($(HW_FIR_DSD_PROCESS),1) +ifeq ($(CHIP),best2300) +export HW_FIR_DSD_BUF_MID_ADDR ?= 0x200A0000 +export DATA_BUF_START ?= 0x20040000 +endif +endif +export USB_AUDIO_UAC2 ?= 1 +export USB_HIGH_SPEED ?= 1 +KBUILD_CPPFLAGS += \ + -DHW_FIR_DSD_BUF_MID_ADDR=$(HW_FIR_DSD_BUF_MID_ADDR) \ + -DDATA_BUF_START=$(DATA_BUF_START) +endif + +USE_THIRDPARTY ?= 0 +export USE_KNOWLES ?= 0 +export USE_CYBERON ?= 0 + +ifeq ($(CURRENT_TEST),1) +export VCODEC_VOLT ?= 1.6V +export VANA_VOLT ?= 1.35V +else +endif + +export LAURENT_ALGORITHM ?= 0 + +export TX_IQ_CAL ?= 0 + +export BT_XTAL_SYNC ?= 1 + +export BTADDR_FOR_DEBUG ?= 1 + +export POWERKEY_I2C_SWITCH ?=0 + +AUTO_TEST ?= 0 + +export DUMP_NORMAL_LOG ?= 0 + +SUPPORT_BATTERY_REPORT ?= 1 + +SUPPORT_HF_INDICATORS ?= 0 + +SUPPORT_SIRI ?= 1 + +BES_AUDIO_DEV_Main_Board_9v0 ?= 0 + +APP_USE_LED_INDICATE_IBRT_STATUS ?= 0 + +export BT_EXT_LNA_PA ?=0 +export BT_EXT_LNA ?=0 +export BT_EXT_PA ?=0 + +ifeq ($(A2DP_LHDC_ON),1) +AUDIO_BUFFER_SIZE := 140*1024 +else +AUDIO_BUFFER_SIZE := 100*1024 +endif + +export TRACE_BUF_SIZE := 16*1024 +export TRACE_BAUD_RATE := 10*115200 + +init-y := +core-y := platform/ services/ apps/ utils/cqueue/ utils/list/ services/multimedia/ utils/intersyshci/ + +KBUILD_CPPFLAGS += -Iplatform/cmsis/inc \ + -Iservices/audioflinger \ + -Iplatform/hal \ + -Iservices/fs/ \ + -Iservices/fs/sd \ + -Iservices/fs/fat \ + -Iservices/fs/fat/ChaN + +KBUILD_CPPFLAGS += \ + -DAPP_AUDIO_BUFFER_SIZE=$(AUDIO_BUFFER_SIZE) \ + -DCHARGER_PLUGINOUT_RESET=0 \ +# -D__A2DP_AVDTP_CP__ \ + +ifeq ($(BES_AUDIO_DEV_Main_Board_9v0),1) +KBUILD_CPPFLAGS += -DBES_AUDIO_DEV_Main_Board_9v0 +endif + +ifeq ($(TPORTS_KEY_COEXIST),1) +KBUILD_CPPFLAGS += -DTPORTS_KEY_COEXIST +endif + +#-DIBRT_LINK_LOWLAYER_MONITOR + +#-D_AUTO_SWITCH_POWER_MODE__ +#-D__APP_KEY_FN_STYLE_A__ +#-D__APP_KEY_FN_STYLE_B__ +#-D__EARPHONE_STAY_BOTH_SCAN__ +#-D__POWERKEY_CTRL_ONOFF_ONLY__ +#-DAUDIO_LINEIN + +ifeq ($(CURRENT_TEST),1) +INTSRAM_RUN ?= 1 +endif +ifeq ($(INTSRAM_RUN),1) +LDS_FILE := best1000_intsram.lds +else +LDS_FILE := best1000.lds +endif + +ifeq ($(TOTA),1) +ifeq ($(BLE),1) +KBUILD_CPPFLAGS += -DBLE_TOTA_ENABLED +endif +KBUILD_CPPFLAGS += -DSHOW_RSSI +KBUILD_CPPFLAGS += -DTEST_OVER_THE_AIR_ENANBLED +export TEST_OVER_THE_AIR ?= 1 +endif + +ifneq ($(A2DP_DECODER_VER), ) +KBUILD_CPPFLAGS += -DA2DP_DECODER_VER=$(A2DP_DECODER_VER) +endif + +ifeq ($(ANC_APP),1) +KBUILD_CPPFLAGS += -DANC_APP +endif + +ifeq ($(USE_CYBERON),1) + +export THIRDPARTY_LIB ?= cyberon +KBUILD_CPPFLAGS += -D__CYBERON + +export KWS_IN_RAM := 1 +ifeq ($(KWS_IN_RAM),1) +CPPFLAGS_${LDS_FILE} += -DKWS_IN_RAM +endif #KWS_IN_RAM + +endif #USE_CYBERON + +KBUILD_CFLAGS += + +LIB_LDFLAGS += -lstdc++ -lsupc++ + +#CFLAGS_IMAGE += -u _printf_float -u _scanf_float + +#LDFLAGS_IMAGE += --wrap main + +export BTIF_HID_DEVICE ?= 1 +ifeq ($(BTIF_HID_DEVICE),1) +KBUILD_CPPFLAGS += -DBTIF_HID_DEVICE +endif diff --git a/config/2300_open_source/tgt_hardware.c b/config/2300_open_source/tgt_hardware.c new file mode 100644 index 0000000..5df04da --- /dev/null +++ b/config/2300_open_source/tgt_hardware.c @@ -0,0 +1,1090 @@ +/*************************************************************************** + * + * Copyright 2015-2019 BES. + * All rights reserved. All unpublished rights reserved. + * + * No part of this work may be used or reproduced in any form or by any + * means, or stored in a database or retrieval system, without prior written + * permission of BES. + * + * Use of this work is governed by a license granted by BES. + * This work contains confidential and proprietary information of + * BES. which is protected by copyright, trade secret, + * trademark and other intellectual property rights. + * + ****************************************************************************/ +#include "tgt_hardware.h" +#include "aud_section.h" +#include "iir_process.h" +#include "fir_process.h" +#include "drc.h" +#include "limiter.h" +#include "spectrum_fix.h" + +const struct HAL_IOMUX_PIN_FUNCTION_MAP cfg_hw_pinmux_pwl[CFG_HW_PLW_NUM] = { +#if (CFG_HW_PLW_NUM > 0) + {HAL_IOMUX_PIN_P1_5, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}, + {HAL_IOMUX_PIN_P1_4, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}, +#endif +}; + +//adckey define +const uint16_t CFG_HW_ADCKEY_MAP_TABLE[CFG_HW_ADCKEY_NUMBER] = { +#if (CFG_HW_ADCKEY_NUMBER > 0) + HAL_KEY_CODE_FN9,HAL_KEY_CODE_FN8,HAL_KEY_CODE_FN7, + HAL_KEY_CODE_FN6,HAL_KEY_CODE_FN5,HAL_KEY_CODE_FN4, + HAL_KEY_CODE_FN3,HAL_KEY_CODE_FN2,HAL_KEY_CODE_FN1, +#endif +}; + +//gpiokey define +#define CFG_HW_GPIOKEY_DOWN_LEVEL (0) +#define CFG_HW_GPIOKEY_UP_LEVEL (1) +const struct HAL_KEY_GPIOKEY_CFG_T cfg_hw_gpio_key_cfg[CFG_HW_GPIOKEY_NUM] = { +#if (CFG_HW_GPIOKEY_NUM > 0) +#ifdef BES_AUDIO_DEV_Main_Board_9v0 + {HAL_KEY_CODE_FN1,{HAL_IOMUX_PIN_P0_3, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN2,{HAL_IOMUX_PIN_P0_0, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN3,{HAL_IOMUX_PIN_P0_1, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN4,{HAL_IOMUX_PIN_P0_2, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN5,{HAL_IOMUX_PIN_P2_0, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN6,{HAL_IOMUX_PIN_P2_1, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, +#else +#ifndef TPORTS_KEY_COEXIST + {HAL_KEY_CODE_FN1,{HAL_IOMUX_PIN_P1_3, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN2,{HAL_IOMUX_PIN_P1_0, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + // {HAL_KEY_CODE_FN3,{HAL_IOMUX_PIN_P1_2, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN15,{HAL_IOMUX_PIN_P1_2, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, +#else + {HAL_KEY_CODE_FN1,{HAL_IOMUX_PIN_P1_3, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + {HAL_KEY_CODE_FN15,{HAL_IOMUX_PIN_P1_0, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, +#endif +#endif +#ifdef IS_MULTI_AI_ENABLED + //{HAL_KEY_CODE_FN13,{HAL_IOMUX_PIN_P1_3, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, + //{HAL_KEY_CODE_FN14,{HAL_IOMUX_PIN_P1_2, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE}}, +#endif +#endif +}; + +//bt config +//const char *BT_LOCAL_NAME = TO_STRING(BT_DEV_NAME) "\0"; +const char *BT_LOCAL_NAME = "PineBuds Pro"; +const char *BLE_DEFAULT_NAME = "BES_BLE"; +uint8_t ble_addr[6] = { +#ifdef BLE_DEV_ADDR + BLE_DEV_ADDR +#else + 0xBE,0x99,0x34,0x45,0x56,0x67 +#endif +}; +uint8_t bt_addr[6] = { +#ifdef BT_DEV_ADDR + BT_DEV_ADDR +#else + 0x1e,0x57,0x34,0x45,0x56,0x67 +#endif +}; + +//audio config +//freq bands range {[0k:2.5K], [2.5k:5K], [5k:7.5K], [7.5K:10K], [10K:12.5K], [12.5K:15K], [15K:17.5K], [17.5K:20K]} +//gain range -12~+12 +const int8_t cfg_aud_eq_sbc_band_settings[CFG_HW_AUD_EQ_NUM_BANDS] = {0, 0, 0, 0, 0, 0, 0, 0}; + +#define TX_PA_GAIN CODEC_TX_PA_GAIN_DEFAULT + +const struct CODEC_DAC_VOL_T codec_dac_vol[TGT_VOLUME_LEVEL_QTY] = { + {TX_PA_GAIN,0x03,-11}, + {TX_PA_GAIN,0x03,-99}, + {TX_PA_GAIN,0x03,-45}, + {TX_PA_GAIN,0x03,-42}, + {TX_PA_GAIN,0x03,-39}, + {TX_PA_GAIN,0x03,-36}, + {TX_PA_GAIN,0x03,-33}, + {TX_PA_GAIN,0x03,-30}, + {TX_PA_GAIN,0x03,-27}, + {TX_PA_GAIN,0x03,-24}, + {TX_PA_GAIN,0x03,-21}, + {TX_PA_GAIN,0x03,-18}, + {TX_PA_GAIN,0x03,-15}, + {TX_PA_GAIN,0x03,-12}, + {TX_PA_GAIN,0x03, -9}, + {TX_PA_GAIN,0x03, -6}, + {TX_PA_GAIN,0x03, -3}, + {TX_PA_GAIN,0x03, 0}, //0dBm +}; + +#if SPEECH_CODEC_CAPTURE_CHANNEL_NUM == 2 +#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_CHANNEL_MAP_CH1 | AUD_VMIC_MAP_VMIC1) +#elif SPEECH_CODEC_CAPTURE_CHANNEL_NUM == 3 +#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_CHANNEL_MAP_CH1 | AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC1) +#else +#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_VMIC_MAP_VMIC1) +#endif +#define CFG_HW_AUD_INPUT_PATH_LINEIN_DEV (AUD_CHANNEL_MAP_CH0 | AUD_CHANNEL_MAP_CH1) +#define CFG_HW_AUD_INPUT_PATH_VADMIC_DEV (AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC1) +#define CFG_HW_AUD_INPUT_PATH_ASRMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_VMIC_MAP_VMIC1) + +const struct AUD_IO_PATH_CFG_T cfg_audio_input_path_cfg[CFG_HW_AUD_INPUT_PATH_NUM] = { +#if defined(SPEECH_TX_AEC_CODEC_REF) + // NOTE: If enable Ch5 and CH6, need to add channel_num when setup audioflinger stream + { AUD_INPUT_PATH_MAINMIC, CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV | AUD_CHANNEL_MAP_ECMIC_CH0, }, +#else + { AUD_INPUT_PATH_MAINMIC, CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV, }, +#endif + { AUD_INPUT_PATH_LINEIN, CFG_HW_AUD_INPUT_PATH_LINEIN_DEV, }, + { AUD_INPUT_PATH_VADMIC, CFG_HW_AUD_INPUT_PATH_VADMIC_DEV, }, + { AUD_INPUT_PATH_ASRMIC, CFG_HW_AUD_INPUT_PATH_ASRMIC_DEV, }, +}; + +const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_enable_cfg = { + HAL_IOMUX_PIN_NUM, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE +}; + +const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_detecter_cfg = { + HAL_IOMUX_PIN_P1_1, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE +}; + +const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_indicator_cfg = { + HAL_IOMUX_PIN_NUM, HAL_IOMUX_FUNC_AS_GPIO, HAL_IOMUX_PIN_VOLTAGE_VIO, HAL_IOMUX_PIN_PULLUP_ENABLE +}; + + +/* + +//ff + + +Filter1_B=[ 42462788, -84862242, 42399478]; +Filter1_A=[ 134217728, -268358003, 134140286]; + +Filter2_B=[ 135905569, -267224817, 131334465]; +Filter2_A=[ 134217728, -267224817, 133022306]; + +Filter3_B=[ 132936489, -263935268, 131067941]; +Filter3_A=[ 134217728, -263935268, 129786702]; + +Filter4_B=[ 131758190, -257297054, 126191415]; +Filter4_A=[ 134217728, -257297054, 123731878]; + + + +*/ + +#define IIR_COUNTER_FF_L (6) +#define IIR_COUNTER_FF_R (6) +#define IIR_COUNTER_FB_L (5) +#define IIR_COUNTER_FB_R (5) + + +static const struct_anc_cfg POSSIBLY_UNUSED AncFirCoef_50p7k_mode0 = { + .anc_cfg_ff_l = { + // .total_gain = 440, + .total_gain = 350, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_L, + + .iir_coef[0].coef_b={42462788, -84862242, 42399478}, + .iir_coef[0].coef_a={134217728, -268358003, 134140286}, + + .iir_coef[1].coef_b={135905569, -267224817, 131334465}, + .iir_coef[1].coef_a={134217728, -267224817, 133022306}, + + .iir_coef[2].coef_b={132936489, -263935268, 131067941}, + .iir_coef[2].coef_a={134217728, -263935268, 129786702}, + + .iir_coef[3].coef_b={131758190, -257297054, 126191415}, + .iir_coef[3].coef_a={134217728, -257297054, 123731878}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_ff_r = { + // .total_gain = 382, + .total_gain = 350, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_R, + + .iir_coef[0].coef_b={42462788, -84862242, 42399478}, + .iir_coef[0].coef_a={134217728, -268358003, 134140286}, + + .iir_coef[1].coef_b={135905569, -267224817, 131334465}, + .iir_coef[1].coef_a={134217728, -267224817, 133022306}, + + .iir_coef[2].coef_b={132936489, -263935268, 131067941}, + .iir_coef[2].coef_a={134217728, -263935268, 129786702}, + + .iir_coef[3].coef_b={131758190, -257297054, 126191415}, + .iir_coef[3].coef_a={134217728, -257297054, 123731878}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + + +/* + +Filter1_B=[ 27461831, -54408898, 27001841]; +Filter1_A=[ 134217728, -216605724, 82606056]; + +Filter2_B=[ 138294078, -267600712, 129323227]; +Filter2_A=[ 134217728, -267600712, 133399577]; + +Filter3_B=[ 134500015, -268177932, 133678688]; +Filter3_A=[ 134217728, -268177932, 133960975]; + +Filter4_B=[ 133629164, -264794659, 131257050]; +Filter4_A=[ 134217728, -264794659, 130668486]; + + +*/ + + .anc_cfg_fb_l = { + .total_gain = 350, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_L, + + .iir_coef[0].coef_b={ 27461831, -54408898, 27001841}, + .iir_coef[0].coef_a={134217728, -216605724, 82606056}, + + .iir_coef[1].coef_b={138294078, -267600712, 129323227}, + .iir_coef[1].coef_a={134217728, -267600712, 133399577}, + + .iir_coef[2].coef_b={134500015, -268177932, 133678688}, + .iir_coef[2].coef_a={134217728, -268177932, 133960975}, + + .iir_coef[3].coef_b={133629164, -264794659, 131257050}, + .iir_coef[3].coef_a={134217728, -264794659, 130668486}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + + + + + + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_fb_r = { + .total_gain = 350, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_R, + + .iir_coef[0].coef_b={ 27461831, -54408898, 27001841}, + .iir_coef[0].coef_a={134217728, -216605724, 82606056}, + + .iir_coef[1].coef_b={138294078, -267600712, 129323227}, + .iir_coef[1].coef_a={134217728, -267600712, 133399577}, + + .iir_coef[2].coef_b={134500015, -268177932, 133678688}, + .iir_coef[2].coef_a={134217728, -268177932, 133960975}, + + .iir_coef[3].coef_b={133629164, -264794659, 131257050}, + .iir_coef[3].coef_a={134217728, -264794659, 130668486}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + + + +}; + + +/* + +//ff + + +Filter1_B=[ 42463913, -84860822, 42396935]; +Filter1_A=[ 134217728, -268353516, 134135801]; + +Filter2_B=[ 136002894, -267154076, 131168209]; +Filter2_A=[ 134217728, -267154076, 132953376]; + +Filter3_B=[ 132863566, -263674901, 130888668]; +Filter3_A=[ 134217728, -263674901, 129534506]; + +Filter4_B=[ 131621817, -256639526, 125746382]; +Filter4_A=[ 134217728, -256639526, 123150471]; + + + +*/ + +static const struct_anc_cfg POSSIBLY_UNUSED AncFirCoef_48k_mode0 = { + .anc_cfg_ff_l = { + // .total_gain = 440, + .total_gain = 312, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_L, + + .iir_coef[0].coef_b={42463913, -84860822, 42396935}, + .iir_coef[0].coef_a={134217728, -268353516, 134135801}, + + .iir_coef[1].coef_b={136002894, -267154076, 131168209}, + .iir_coef[1].coef_a={134217728, -267154076, 132953376}, + + .iir_coef[2].coef_b={132863566, -263674901, 130888668}, + .iir_coef[2].coef_a={134217728, -263674901, 129534506}, + + .iir_coef[3].coef_b={131621817, -256639526, 125746382}, + .iir_coef[3].coef_a={134217728, -256639526, 123150471}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_ff_r = { + // .total_gain = 382, + .total_gain = 288, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_R, + + .iir_coef[0].coef_b={42463913, -84860822, 42396935}, + .iir_coef[0].coef_a={134217728, -268353516, 134135801}, + + .iir_coef[1].coef_b={136002894, -267154076, 131168209}, + .iir_coef[1].coef_a={134217728, -267154076, 132953376}, + + .iir_coef[2].coef_b={132863566, -263674901, 130888668}, + .iir_coef[2].coef_a={134217728, -263674901, 129534506}, + + .iir_coef[3].coef_b={131621817, -256639526, 125746382}, + .iir_coef[3].coef_a={134217728, -256639526, 123150471}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + + +/* + +Filter1_B=[ 27172676, -53803459, 26691412]; +Filter1_A=[ 134217728, -214195429, 80219070]; + +Filter2_B=[ 138529480, -267551490, 129040578]; +Filter2_A=[ 134217728, -267551490, 133352330]; + +Filter3_B=[ 134516353, -268162980, 133647489]; +Filter3_A=[ 134217728, -268162980, 133946114]; + +Filter4_B=[ 133595549, -264581113, 131087955]; +Filter4_A=[ 134217728, -264581113, 130465777]; + + +*/ + + .anc_cfg_fb_l = { + .total_gain = 511, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_L, + + .iir_coef[0].coef_b={ 27172676, -53803459, 26691412}, + .iir_coef[0].coef_a={134217728, -214195429, 80219070}, + + .iir_coef[1].coef_b={138529480, -267551490, 129040578}, + .iir_coef[1].coef_a={134217728, -267551490, 133352330}, + + .iir_coef[2].coef_b={134516353, -268162980, 133647489}, + .iir_coef[2].coef_a={134217728, -268162980, 133946114}, + + .iir_coef[3].coef_b={133595549, -264581113, 131087955}, + .iir_coef[3].coef_a={134217728, -264581113, 130465777}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_fb_r = { + .total_gain = 511, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_R, + + .iir_coef[0].coef_b={ 27172676, -53803459, 26691412}, + .iir_coef[0].coef_a={134217728, -214195429, 80219070}, + + .iir_coef[1].coef_b={138529480, -267551490, 129040578}, + .iir_coef[1].coef_a={134217728, -267551490, 133352330}, + + .iir_coef[2].coef_b={134516353, -268162980, 133647489}, + .iir_coef[2].coef_a={134217728, -268162980, 133946114}, + + .iir_coef[3].coef_b={133595549, -264581113, 131087955}, + .iir_coef[3].coef_a={134217728, -264581113, 130465777}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + +#if (AUD_SECTION_STRUCT_VERSION == 2) + + +/* +1.0000000000000000,-1.5858874672928407,0.6974239598044429,0.2832267077115959,-0.3117526885614825,0.1400624733614886, +Filter1_B=[ 4751756, -5230342, 2349858]; +Filter1_A=[ 16777216, -26606777, 11700832]; + + +1.0000000000000000,-1.7971697583202608,0.8159624512785459,0.9540998606028980,-1.7971697583202608,0.8618625906756480, +Filter2_B=[ 16007139, -30151505, 14459655]; +Filter2_A=[ 16777216, -30151505, 13689578]; + + +1.0000000000000000,-1.9694050640918992,0.9705681145972464,0.3200483744622364,-0.6223829329788905,0.3034976090220014, +Filter3_B=[ 5369521, -10441853, 5091845]; +Filter3_A=[ 16777216, -33041134, 16283431]; + + +1.0000000000000000,-1.9921619776276678,0.9921812243512138,0.9968660174712476,-1.9921712178765081,0.9953059666311256, +Filter4_B=[ 16724636, -33423087, 16698463]; +Filter4_A=[ 16777216, -33422932, 16646039]; +*/ + +/* + +1.0000000000000000,-1.9868580074509832,0.9869011854430232,1.1834688902733632,-2.3614075958038656,1.1779451659756268, +Filter1_B=[ 19855313, -39617845, 19762640]; +Filter1_A=[ 16777216, -33333946, 16557454]; + + +1.0000000000000000,-1.0329261527674278,0.0418392318218667,0.5812322628931170,-1.0329261527674278,0.4606069689287498, +Filter2_B=[ 9751459, -17329625, 7727703]; +Filter2_A=[ 16777216, -17329625, 701946]; + + +1.0000000000000000,-1.9576081396140492,0.9591185490154677,1.0729914166044796,-1.9576081396140492,0.8861271324109881, +Filter3_B=[ 18001809, -32843215, 14866746]; +Filter3_A=[ 16777216, -32843215, 16091339]; + + +1.0000000000000000,-1.9197071583239940,0.9219883336398085,0.7545642546264146,-1.4392920140632206,0.6870089347526202, +Filter4_B=[ 12659487, -24147313, 11526097]; +Filter4_A=[ 16777216, -32207342, 15468397]; + + +1.0000000000000000,-1.9102108535747602,0.9139876710346515,0.9829076121866517,-1.9102108535747602,0.9310800588479999, +Filter5_B=[ 16490453, -32048020, 15620931]; +Filter5_A=[ 16777216, -32048020, 15334169]; +*/ + + + + + .anc_cfg_mc_l = { + .total_gain = 1228, + + .iir_bypass_flag=0, + .iir_counter=5, + + .iir_coef[0].coef_b={19855313, -39617845, 19762640}, + .iir_coef[0].coef_a={16777216, -33333946, 16557454}, + + .iir_coef[1].coef_b={9751459, -17329625, 7727703}, + .iir_coef[1].coef_a={16777216, -17329625, 701946}, + + .iir_coef[2].coef_b={18001809, -32843215, 14866746}, + .iir_coef[2].coef_a={16777216, -32843215, 16091339}, + + .iir_coef[3].coef_b={12659487, -24147313, 11526097}, + .iir_coef[3].coef_a={16777216, -32207342, 15468397}, + + .iir_coef[4].coef_b={16490453, -32048020, 15620931}, + .iir_coef[4].coef_a={16777216, -32048020, 15334169}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_mc_r = { + .total_gain = 1331, + + .iir_bypass_flag=0, + .iir_counter=5, + + .iir_coef[0].coef_b={19855313, -39617845, 19762640}, + .iir_coef[0].coef_a={16777216, -33333946, 16557454}, + + .iir_coef[1].coef_b={9751459, -17329625, 7727703}, + .iir_coef[1].coef_a={16777216, -17329625, 701946}, + + .iir_coef[2].coef_b={18001809, -32843215, 14866746}, + .iir_coef[2].coef_a={16777216, -32843215, 16091339}, + + .iir_coef[3].coef_b={12659487, -24147313, 11526097}, + .iir_coef[3].coef_a={16777216, -32207342, 15468397}, + + .iir_coef[4].coef_b={16490453, -32048020, 15620931}, + .iir_coef[4].coef_a={16777216, -32048020, 15334169}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, +#endif +}; + +/* +//ff + + +Filter1_B=[ 42465729, -84858529, 42392831]; +Filter1_A=[ 134217728, -268346271, 134128558]; + +Filter2_B=[ 136159949, -267039705, 130899919]; +Filter2_A=[ 134217728, -267039705, 132842140]; + +Filter3_B=[ 132746107, -263254540, 130599907]; +Filter3_A=[ 134217728, -263254540, 129128286]; + +Filter4_B=[ 131402980, -255575175, 125032243]; +Filter4_A=[ 134217728, -255575175, 122217496]; + + + +*/ + + + +static const struct_anc_cfg POSSIBLY_UNUSED AncFirCoef_44p1k_mode0 = { + .anc_cfg_ff_l = { + // .total_gain = 440, + .total_gain =312, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_L, + + .iir_coef[0].coef_b={42465729, -84858529, 42392831}, + .iir_coef[0].coef_a={134217728, -268346271, 134128558}, + + .iir_coef[1].coef_b={136159949, -267039705, 130899919}, + .iir_coef[1].coef_a={134217728, -267039705, 132842140}, + + .iir_coef[2].coef_b={132746107, -263254540, 130599907}, + .iir_coef[2].coef_a={134217728, -263254540, 129128286}, + + .iir_coef[3].coef_b={131402980, -255575175, 125032243}, + .iir_coef[3].coef_a={ 134217728, -255575175, 122217496}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_ff_r = { + // .total_gain = 382, + .total_gain = 288, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FF_R, + + .iir_coef[0].coef_b={42465729, -84858529, 42392831}, + .iir_coef[0].coef_a={134217728, -268346271, 134128558}, + + .iir_coef[1].coef_b={136159949, -267039705, 130899919}, + .iir_coef[1].coef_a={134217728, -267039705, 132842140}, + + .iir_coef[2].coef_b={132746107, -263254540, 130599907}, + .iir_coef[2].coef_a={134217728, -263254540, 129128286}, + + .iir_coef[3].coef_b={131402980, -255575175, 125032243}, + .iir_coef[3].coef_a={ 134217728, -255575175, 122217496}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + +/* + +Filter1_B=[ 26719020, -52852829, 26204379]; +Filter1_A=[ 134217728, -210410903, 76474119]; + +Filter2_B=[ 138909433, -267471808, 128584365]; +Filter2_A=[ 134217728, -267471808, 133276071]; + +Filter3_B=[ 134542733, -268138827, 133597115]; +Filter3_A=[ 134217728, -268138827, 133922120]; + +Filter4_B=[ 133541379, -264235686, 130815458]; +Filter4_A=[ 134217728, -264235686, 130139109]; + +*/ + + + .anc_cfg_fb_l = { + .total_gain = 511, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_L, + + .iir_coef[0].coef_b={26719020, -52852829, 26204379}, + .iir_coef[0].coef_a={134217728, -210410903, 76474119}, + + .iir_coef[1].coef_b={138909433, -267471808, 128584365}, + .iir_coef[1].coef_a={134217728, -267471808, 133276071}, + + .iir_coef[2].coef_b={134542733, -268138827, 133597115}, + .iir_coef[2].coef_a={134217728, -268138827, 133922120}, + + .iir_coef[3].coef_b={133541379, -264235686, 130815458}, + .iir_coef[3].coef_a={134217728, -264235686, 130139109}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_fb_r = { + .total_gain = 511, + + .iir_bypass_flag=0, + .iir_counter=IIR_COUNTER_FB_R, + + .iir_coef[0].coef_b={26719020, -52852829, 26204379}, + .iir_coef[0].coef_a={134217728, -210410903, 76474119}, + + .iir_coef[1].coef_b={138909433, -267471808, 128584365}, + .iir_coef[1].coef_a={134217728, -267471808, 133276071}, + + .iir_coef[2].coef_b={134542733, -268138827, 133597115}, + .iir_coef[2].coef_a={134217728, -268138827, 133922120}, + + .iir_coef[3].coef_b={133541379, -264235686, 130815458}, + .iir_coef[3].coef_a={134217728, -264235686, 130139109}, + + .iir_coef[4].coef_b={0x8000000,0,0}, + .iir_coef[4].coef_a={0x8000000,0,0}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + +/* .fir_bypass_flag=1, + .fir_len = AUD_COEF_LEN, + .fir_coef = + { + 32767, + }, +*/ + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, +#if (AUD_SECTION_STRUCT_VERSION == 2) + + + +/* + +Filter1_B=[ 19847881, -39594823, 19747071]; +Filter1_A=[ 16777216, -33314517, 16538159]; + +Filter2_B=[ 9442890, -16603187, 7330251]; +Filter2_A=[ 16777216, -16603187, -4075]; + +Filter3_B=[ 18107639, -32779315, 14701642]; +Filter3_A=[ 16777216, -32779315, 16032065]; + +Filter4_B=[ 12666347, -24058210, 11437046]; +Filter4_A=[ 16777216, -32089673, 15357640]; + +Filter5_B=[ 16466312, -31915122, 15523589]; +Filter5_A=[ 16777216, -31915122, 15212684]; +*/ + + + + + .anc_cfg_mc_l = { + .total_gain = 1228, + + .iir_bypass_flag=0, + .iir_counter=5, + + .iir_coef[0].coef_b={19847881, -39594823, 19747071}, + .iir_coef[0].coef_a={16777216, -33314517, 16538159}, + + .iir_coef[1].coef_b={9442890, -16603187, 7330251}, + .iir_coef[1].coef_a={16777216, -16603187, -4075}, + + .iir_coef[2].coef_b={18107639, -32779315, 14701642}, + .iir_coef[2].coef_a={16777216, -32779315, 16032065}, + + .iir_coef[3].coef_b={12666347, -24058210, 11437046}, + .iir_coef[3].coef_a={16777216, -32089673, 15357640}, + + .iir_coef[4].coef_b={16466312, -31915122, 15523589}, + .iir_coef[4].coef_a={16777216, -31915122, 15212684}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, + .anc_cfg_mc_r = { + .total_gain = 1331, + + .iir_bypass_flag=0, + .iir_counter=5, + + .iir_coef[0].coef_b={19847881, -39594823, 19747071}, + .iir_coef[0].coef_a={16777216, -33314517, 16538159}, + + .iir_coef[1].coef_b={9442890, -16603187, 7330251}, + .iir_coef[1].coef_a={16777216, -16603187, -4075}, + + .iir_coef[2].coef_b={18107639, -32779315, 14701642}, + .iir_coef[2].coef_a={16777216, -32779315, 16032065}, + + .iir_coef[3].coef_b={12666347, -24058210, 11437046}, + .iir_coef[3].coef_a={16777216, -32089673, 15357640}, + + .iir_coef[4].coef_b={16466312, -31915122, 15523589}, + .iir_coef[4].coef_a={16777216, -31915122, 15212684}, + + .iir_coef[5].coef_b={0x8000000,0,0}, + .iir_coef[5].coef_a={0x8000000,0,0}, + + + .dac_gain_offset=0, + .adc_gain_offset=(0)*4, + }, +#endif + +}; + +const struct_anc_cfg * anc_coef_list_50p7k[ANC_COEF_LIST_NUM] = { + &AncFirCoef_50p7k_mode0, +#if (ANC_COEF_LIST_NUM == 2) + &AncFirCoef_50p7k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 3) + &AncFirCoef_50p7k_mode0, + &AncFirCoef_50p7k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 4) + &AncFirCoef_50p7k_mode0, + &AncFirCoef_50p7k_mode0, + &AncFirCoef_50p7k_mode0, +#endif +}; + +const struct_anc_cfg * anc_coef_list_48k[ANC_COEF_LIST_NUM] = { + &AncFirCoef_48k_mode0, +#if (ANC_COEF_LIST_NUM == 2) + &AncFirCoef_48k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 3) + &AncFirCoef_48k_mode0, + &AncFirCoef_48k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 4) + &AncFirCoef_48k_mode0, + &AncFirCoef_48k_mode0, + &AncFirCoef_48k_mode0, +#endif +}; + +const struct_anc_cfg * anc_coef_list_44p1k[ANC_COEF_LIST_NUM] = { + &AncFirCoef_44p1k_mode0, +#if (ANC_COEF_LIST_NUM == 2) + &AncFirCoef_44p1k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 3) + &AncFirCoef_44p1k_mode0, + &AncFirCoef_44p1k_mode0, +#endif +#if(ANC_COEF_LIST_NUM == 4) + &AncFirCoef_44p1k_mode0, + &AncFirCoef_44p1k_mode0, + &AncFirCoef_44p1k_mode0, +#endif +}; + +const IIR_CFG_T audio_eq_sw_iir_cfg = { + .gain0 = 0, + .gain1 = 0, + .num = 5, + .param = { + {IIR_TYPE_PEAK, .0, 200, 2}, + {IIR_TYPE_PEAK, .0, 600, 2}, + {IIR_TYPE_PEAK, .0, 2000.0, 2}, + {IIR_TYPE_PEAK, .0, 6000.0, 2}, + {IIR_TYPE_PEAK, .0, 12000.0, 2} + } +}; + +const IIR_CFG_T * const audio_eq_sw_iir_cfg_list[EQ_SW_IIR_LIST_NUM]={ + &audio_eq_sw_iir_cfg, +}; + +const FIR_CFG_T audio_eq_hw_fir_cfg_44p1k = { + .gain = 0.0f, + .len = 384, + .coef = + { + (1<<23)-1, + } +}; + +const FIR_CFG_T audio_eq_hw_fir_cfg_48k = { + .gain = 0.0f, + .len = 384, + .coef = + { + (1<<23)-1, + } +}; + + +const FIR_CFG_T audio_eq_hw_fir_cfg_96k = { + .gain = 0.0f, + .len = 384, + .coef = + { + (1<<23)-1, + } +}; + +const FIR_CFG_T * const audio_eq_hw_fir_cfg_list[EQ_HW_FIR_LIST_NUM]={ + &audio_eq_hw_fir_cfg_44p1k, + &audio_eq_hw_fir_cfg_48k, + &audio_eq_hw_fir_cfg_96k, +}; + +//hardware dac iir eq +const IIR_CFG_T audio_eq_hw_dac_iir_cfg = { + .gain0 = 0, + .gain1 = 0, + .num = 8, + .param = { + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + {IIR_TYPE_PEAK, 0, 1000.0, 0.7}, + } +}; + +const IIR_CFG_T * const POSSIBLY_UNUSED audio_eq_hw_dac_iir_cfg_list[EQ_HW_DAC_IIR_LIST_NUM]={ + &audio_eq_hw_dac_iir_cfg, +}; + +//hardware dac iir eq +const IIR_CFG_T audio_eq_hw_adc_iir_adc_cfg = { + .gain0 = 0, + .gain1 = 0, + .num = 1, + .param = { + {IIR_TYPE_PEAK, 0.0, 1000.0, 0.7}, + } +}; + +const IIR_CFG_T * const POSSIBLY_UNUSED audio_eq_hw_adc_iir_cfg_list[EQ_HW_ADC_IIR_LIST_NUM]={ + &audio_eq_hw_adc_iir_adc_cfg, +}; + + + +//hardware iir eq +const IIR_CFG_T audio_eq_hw_iir_cfg = { + .gain0 = 0, + .gain1 = 0, + .num = 8, + .param = { + {IIR_TYPE_PEAK, -10.1, 100.0, 7}, + {IIR_TYPE_PEAK, -10.1, 400.0, 7}, + {IIR_TYPE_PEAK, -10.1, 700.0, 7}, + {IIR_TYPE_PEAK, -10.1, 1000.0, 7}, + {IIR_TYPE_PEAK, -10.1, 3000.0, 7}, + {IIR_TYPE_PEAK, -10.1, 5000.0, 7}, + {IIR_TYPE_PEAK, -10.1, 7000.0, 7}, + {IIR_TYPE_PEAK, -10.1, 9000.0, 7}, + + } +}; + +const IIR_CFG_T * const POSSIBLY_UNUSED audio_eq_hw_iir_cfg_list[EQ_HW_IIR_LIST_NUM]={ + &audio_eq_hw_iir_cfg, +}; + +const DrcConfig audio_drc_cfg = { + .knee = 3, + .filter_type = {14, -1}, + .band_num = 2, + .look_ahead_time = 10, + .band_settings = { + {-20, 0, 2, 3, 3000, 1}, + {-20, 0, 2, 3, 3000, 1}, + } + }; + +const LimiterConfig audio_drc2_cfg = { + .knee = 2, + .look_ahead_time = 10, + .threshold = -20, + .makeup_gain = 19, + .ratio = 1000, + .attack_time = 3, + .release_time = 3000, +}; + +const SpectrumFixConfig audio_spectrum_cfg = { + .freq_num = 9, + .freq_list = {200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800}, +}; + diff --git a/config/2300_open_source/tgt_hardware.h b/config/2300_open_source/tgt_hardware.h new file mode 100644 index 0000000..e9e3555 --- /dev/null +++ b/config/2300_open_source/tgt_hardware.h @@ -0,0 +1,120 @@ +/*************************************************************************** + * + * Copyright 2015-2019 BES. + * All rights reserved. All unpublished rights reserved. + * + * No part of this work may be used or reproduced in any form or by any + * means, or stored in a database or retrieval system, without prior written + * permission of BES. + * + * Use of this work is governed by a license granted by BES. + * This work contains confidential and proprietary information of + * BES. which is protected by copyright, trade secret, + * trademark and other intellectual property rights. + * + ****************************************************************************/ +#ifndef __TGT_HARDWARE__ +#define __TGT_HARDWARE__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "hal_iomux.h" +#include "hal_gpio.h" +#include "hal_key.h" +#include "hal_aud.h" + +//config hwardware codec iir. +#define EQ_HW_DAC_IIR_LIST_NUM 1 +#define EQ_HW_ADC_IIR_LIST_NUM 1 +#define EQ_HW_IIR_LIST_NUM 1 +#define EQ_SW_IIR_LIST_NUM 1 +#define EQ_HW_FIR_LIST_NUM 3 + +//pwl +#define CFG_HW_PLW_NUM (2) +extern const struct HAL_IOMUX_PIN_FUNCTION_MAP cfg_hw_pinmux_pwl[CFG_HW_PLW_NUM]; + +//adckey define +#define CFG_HW_ADCKEY_NUMBER 0 +#define CFG_HW_ADCKEY_BASE 0 +#define CFG_HW_ADCKEY_ADC_MAXVOLT 1000 +#define CFG_HW_ADCKEY_ADC_MINVOLT 0 +#define CFG_HW_ADCKEY_ADC_KEYVOLT_BASE 130 +extern const uint16_t CFG_HW_ADCKEY_MAP_TABLE[CFG_HW_ADCKEY_NUMBER]; + +#define BTA_AV_CO_SBC_MAX_BITPOOL 52 + +//gpiokey define +#ifdef IS_MULTI_AI_ENABLED +#define CFG_HW_GPIOKEY_NUM (3) +#elif BES_AUDIO_DEV_Main_Board_9v0 +#define CFG_HW_GPIOKEY_NUM (6) +#else +#define CFG_HW_GPIOKEY_NUM (3) +#endif + + +extern const struct HAL_KEY_GPIOKEY_CFG_T cfg_hw_gpio_key_cfg[CFG_HW_GPIOKEY_NUM]; + +// ANC function key +#define ANC_FUNCTION_KEY HAL_KEY_CODE_PWR + +// ANC coefficient curve number +#define ANC_COEF_NUM (1) + +//#define ANC_TALK_THROUGH + +#ifdef ANC_TALK_THROUGH +#define ANC_COEF_LIST_NUM (ANC_COEF_NUM + 1) +#else +#define ANC_COEF_LIST_NUM (ANC_COEF_NUM) +#endif + +#define ANC_FF_MIC_CH_L AUD_CHANNEL_MAP_CH0 +#define ANC_FF_MIC_CH_R 0 +#define ANC_FB_MIC_CH_L AUD_CHANNEL_MAP_CH2 +#define ANC_FB_MIC_CH_R 0 + +#define ANC_VMIC_CFG (AUD_VMIC_MAP_VMIC3) + +// audio codec +#define CFG_HW_AUD_INPUT_PATH_NUM 4 +extern const struct AUD_IO_PATH_CFG_T cfg_audio_input_path_cfg[CFG_HW_AUD_INPUT_PATH_NUM]; + +#define CFG_HW_AUD_OUTPUT_PATH_SPEAKER_DEV (AUD_CHANNEL_MAP_CH0) + +#define CFG_HW_AUD_SIDETONE_MIC_DEV (AUD_CHANNEL_MAP_CH0) +#define CFG_HW_AUD_SIDETONE_GAIN_DBVAL (-20) + +//bt config +extern const char *BT_LOCAL_NAME; +extern const char *BLE_DEFAULT_NAME; +extern uint8_t ble_addr[6]; +extern uint8_t bt_addr[6]; + +#define CODEC_SADC_VOL (12) + +extern const struct CODEC_DAC_VOL_T codec_dac_vol[TGT_VOLUME_LEVEL_QTY]; + +//range -12~+12 +#define CFG_HW_AUD_EQ_NUM_BANDS (8) +extern const int8_t cfg_aud_eq_sbc_band_settings[CFG_HW_AUD_EQ_NUM_BANDS]; +#define CFG_AUD_EQ_IIR_NUM_BANDS (4) + +//battery info +#define APP_BATTERY_MIN_MV (3200) +#define APP_BATTERY_PD_MV (3100) + +#define APP_BATTERY_MAX_MV (4200) + +extern const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_enable_cfg; +extern const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_detecter_cfg; +extern const struct HAL_IOMUX_PIN_FUNCTION_MAP app_battery_ext_charger_indicator_cfg; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/config/best2300p_ibrt/tgt_hardware.h b/config/best2300p_ibrt/tgt_hardware.h index e89a615..1162d5c 100644 --- a/config/best2300p_ibrt/tgt_hardware.h +++ b/config/best2300p_ibrt/tgt_hardware.h @@ -140,8 +140,6 @@ extern const struct HAL_IOMUX_PIN_FUNCTION_MAP cfg_hw_tws_channel_cfg; //extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_INT; extern bool tgt_tws_get_channel_is_right(void); -extern void app_mute_ctrl(bool Status); -extern void app_mutetimer_start(); extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_I2C_SDA; extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_I2C_SCL; diff --git a/config/mic_alg/target.mk b/config/mic_alg/target.mk index 821bf1d..e935b7c 100644 --- a/config/mic_alg/target.mk +++ b/config/mic_alg/target.mk @@ -301,7 +301,7 @@ export BTADDR_FOR_DEBUG ?= 1 export POWERKEY_I2C_SWITCH ?=0 -export WL_DET ?= 1 +export WL_DET ?= 0 export AUDIO_LOOPBACK ?= 0 diff --git a/config/mic_alg/tgt_hardware.c b/config/mic_alg/tgt_hardware.c index d34cdda..5fefb88 100644 --- a/config/mic_alg/tgt_hardware.c +++ b/config/mic_alg/tgt_hardware.c @@ -135,14 +135,14 @@ const struct CODEC_DAC_VOL_T codec_dac_vol[TGT_VOLUME_LEVEL_QTY] = { #elif SPEECH_CODEC_CAPTURE_CHANNEL_NUM == 3 #define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_CHANNEL_MAP_CH1 | AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC1) #else -#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH3 | AUD_VMIC_MAP_VMIC4) +#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC3) #endif #define CFG_HW_AUD_INPUT_PATH_LINEIN_DEV (AUD_CHANNEL_MAP_CH0 | AUD_CHANNEL_MAP_CH1) #ifdef VOICE_DETECTOR_EN #define CFG_HW_AUD_INPUT_PATH_VADMIC_DEV (AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC1) #else -#define CFG_HW_AUD_INPUT_PATH_ASRMIC_DEV (AUD_CHANNEL_MAP_CH0 | AUD_VMIC_MAP_VMIC1) +#define CFG_HW_AUD_INPUT_PATH_ASRMIC_DEV (AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC3) #endif const struct AUD_IO_PATH_CFG_T cfg_audio_input_path_cfg[CFG_HW_AUD_INPUT_PATH_NUM] = { diff --git a/config/mic_alg/tgt_hardware.h b/config/mic_alg/tgt_hardware.h index e89a615..1162d5c 100644 --- a/config/mic_alg/tgt_hardware.h +++ b/config/mic_alg/tgt_hardware.h @@ -140,8 +140,6 @@ extern const struct HAL_IOMUX_PIN_FUNCTION_MAP cfg_hw_tws_channel_cfg; //extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_INT; extern bool tgt_tws_get_channel_is_right(void); -extern void app_mute_ctrl(bool Status); -extern void app_mutetimer_start(); extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_I2C_SDA; extern const struct HAL_IOMUX_PIN_FUNCTION_MAP TOUCH_I2C_SCL; diff --git a/platform/drivers/ana/best2300p/analog_best2300p.c b/platform/drivers/ana/best2300p/analog_best2300p.c index 3dda018..86e0dfb 100644 --- a/platform/drivers/ana/best2300p/analog_best2300p.c +++ b/platform/drivers/ana/best2300p/analog_best2300p.c @@ -1985,10 +1985,8 @@ static void analog_aud_codec_config_speaker(void) ana_spk_enabled = en; if (en) { analog_aud_enable_dac_pa(CFG_HW_AUD_OUTPUT_PATH_SPEAKER_DEV); - app_mutetimer_start(); } else { analog_aud_enable_dac_pa(0); - app_mute_ctrl(false); } } } diff --git a/services/app_ibrt/src/app_ibrt_ui_test.cpp b/services/app_ibrt/src/app_ibrt_ui_test.cpp index e3e759e..37bc7af 100644 --- a/services/app_ibrt/src/app_ibrt_ui_test.cpp +++ b/services/app_ibrt/src/app_ibrt_ui_test.cpp @@ -629,12 +629,12 @@ const APP_KEY_HANDLE app_ibrt_ui_test_key_cfg[] = //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_CLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, #endif - // {{APP_KEY_CODE_PWR,APP_KEY_EVENT_UP},"app_ibrt_ui_test_key", app_bt_sleep, NULL}, - //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_LONGLONGPRESS},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, - //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_DOUBLECLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, - //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_TRIPLECLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, - //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_ULTRACLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, - // {{APP_KEY_CODE_PWR,APP_KEY_EVENT_DOWN},"app_ibrt_ui_test_key", app_wakeup_sleep, NULL}, + {{APP_KEY_CODE_PWR,APP_KEY_EVENT_UP},"app_ibrt_ui_test_key", app_bt_sleep, NULL}, + {{APP_KEY_CODE_PWR,APP_KEY_EVENT_LONGLONGPRESS},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, + {{APP_KEY_CODE_PWR,APP_KEY_EVENT_DOUBLECLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, + {{APP_KEY_CODE_PWR,APP_KEY_EVENT_TRIPLECLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, + {{APP_KEY_CODE_PWR,APP_KEY_EVENT_ULTRACLICK},"app_ibrt_ui_test_key", app_ibrt_ui_test_key, NULL}, + //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_DOWN},"app_ibrt_ui_test_key", app_wakeup_sleep, NULL}, //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_LONGPRESS},"app_ibrt_ui_test_key", app_test_key, NULL}, //{{APP_KEY_CODE_PWR,APP_KEY_EVENT_DOUBLECLICK},"app_ibrt_ui_test_key", app_test_key, NULL}, // {{APP_KEY_CODE_PWR,APP_KEY_EVENT_NONE},"app_ibrt_ui_test_key", app_test_key, NULL}, @@ -732,64 +732,67 @@ ibrt_pairing_info_t g_ibrt_pairing_info[] = }; -/******************************pwrkey_det_timer*********************************************************/ -osTimerId pwrkey_detid = NULL; -void startpwrkey_det(int ms); -void stoppwrkey_det(void); -static void pwrkey_detfun(const void *); -osTimerDef(defpwrkey_det,pwrkey_detfun); -void pwrkey_detinit(void) -{ - TRACE(3,"%s",__func__); - pwrkey_detid = osTimerCreate(osTimer(defpwrkey_det),osTimerOnce,(void *)0); -} +// /******************************pwrkey_det_timer*********************************************************/ +// osTimerId pwrkey_detid = NULL; +// void startpwrkey_det(int ms); +// void stoppwrkey_det(void); +// static void pwrkey_detfun(const void *); +// osTimerDef(defpwrkey_det,pwrkey_detfun); +// void pwrkey_detinit(void) +// { +// TRACE(3,"%s",__func__); +// pwrkey_detid = osTimerCreate(osTimer(defpwrkey_det),osTimerOnce,(void *)0); +// } -extern void app_ibrt_customif_test1_cmd_send(uint8_t *p_buff, uint16_t length); -static void pwrkey_detfun(const void *) -{ +// extern void app_ibrt_customif_test1_cmd_send(uint8_t *p_buff, uint16_t length); +// static void pwrkey_detfun(const void *) +// { - static ibrt_ctrl_t *p_ibrt_ctrl = app_tws_ibrt_get_bt_ctrl_ctx(); - static bool last_pwrkey = false; - bool curr_pwrkey_sta; - curr_pwrkey_sta = hal_pwrkey_pressed(); - APP_KEY_STATUS inear_status[] = {APP_KEY_CODE_FN3,HAL_KEY_EVENT_CLICK}; - APP_KEY_STATUS outear_status[] = {APP_KEY_CODE_FN4,HAL_KEY_EVENT_CLICK}; - //TRACE(3,"pwrkey = %d",curr_pwrkey_sta); - if(curr_pwrkey_sta != last_pwrkey){ - if(curr_pwrkey_sta == true){ - //app_wakeup_sleep(NULL,NULL); - TRACE(3,"%s PLAY",__func__); - if (IBRT_SLAVE == p_ibrt_ctrl->current_role){ - app_ibrt_customif_test1_cmd_send((uint8_t *)inear_status, sizeof(APP_KEY_STATUS)); - }else{ - a2dp_handleKey(AVRCP_KEY_PLAY); - } - }else{ - //app_bt_sleep(NULL,NULL); - TRACE(3,"%s PAUSE",__func__); - //a2dp_handleKey(AVRCP_KEY_PAUSE); - if (IBRT_SLAVE == p_ibrt_ctrl->current_role){ - app_ibrt_customif_test1_cmd_send((uint8_t *)outear_status, sizeof(APP_KEY_STATUS)); - }else{ - a2dp_handleKey(AVRCP_KEY_PAUSE); - } - } - last_pwrkey = curr_pwrkey_sta; - } - startpwrkey_det(200); -} +// static ibrt_ctrl_t *p_ibrt_ctrl = app_tws_ibrt_get_bt_ctrl_ctx(); +// static bool last_pwrkey = false; +// bool curr_pwrkey_sta; +// curr_pwrkey_sta = hal_pwrkey_pressed(); +// APP_KEY_STATUS inear_status[] = {APP_KEY_CODE_FN3,HAL_KEY_EVENT_CLICK}; +// APP_KEY_STATUS outear_status[] = {APP_KEY_CODE_FN4,HAL_KEY_EVENT_CLICK}; +// //TRACE(3,"pwrkey = %d",curr_pwrkey_sta); +// if(curr_pwrkey_sta != last_pwrkey){ +// if(curr_pwrkey_sta == true){ +// //app_wakeup_sleep(NULL,NULL); +// TRACE(3,"%s PLAY",__func__); +// app_bt_accessmode_set(BTIF_BT_DEFAULT_ACCESS_MODE_PAIR); +// app_voice_report(APP_STATUS_INDICATION_BOTHSCAN,0); -void startpwrkey_det(int ms) -{ - //TRACE(3,"\n\n !!!!!!!!!!start %s\n\n",__func__); - osTimerStart(pwrkey_detid,ms); -} +// if (IBRT_SLAVE == p_ibrt_ctrl->current_role){ +// app_ibrt_customif_test1_cmd_send((uint8_t *)inear_status, sizeof(APP_KEY_STATUS)); +// }else{ +// a2dp_handleKey(AVRCP_KEY_PLAY); +// } +// }else{ +// //app_bt_sleep(NULL,NULL); +// TRACE(3,"%s PAUSE",__func__); +// //a2dp_handleKey(AVRCP_KEY_PAUSE); +// if (IBRT_SLAVE == p_ibrt_ctrl->current_role){ +// app_ibrt_customif_test1_cmd_send((uint8_t *)outear_status, sizeof(APP_KEY_STATUS)); +// }else{ +// a2dp_handleKey(AVRCP_KEY_PAUSE); +// } +// } +// last_pwrkey = curr_pwrkey_sta; +// } +// startpwrkey_det(200); +// } -void stoppwrkey_det(void) -{ - //TRACE("\n\n!!!!!!!!!! stop %s\n\n",__func__); - osTimerStop(pwrkey_detid); -} +// void startpwrkey_det(int ms) +// { +// //TRACE(3,"\n\n !!!!!!!!!!start %s\n\n",__func__); +// osTimerStart(pwrkey_detid,ms); +// } + +// void stoppwrkey_det(void) +// { +// //TRACE("\n\n!!!!!!!!!! stop %s\n\n",__func__); +// osTimerStop(pwrkey_detid); +// } diff --git a/services/app_tws/src/app_tws_if.cpp b/services/app_tws/src/app_tws_if.cpp index 12ae076..5d6d388 100644 --- a/services/app_tws/src/app_tws_if.cpp +++ b/services/app_tws/src/app_tws_if.cpp @@ -695,15 +695,7 @@ void app_tws_set_side_from_addr(uint8_t *addr) void app_tws_set_side_from_gpio(void) { - hal_iomux_init((struct HAL_IOMUX_PIN_FUNCTION_MAP *)&cfg_hw_tws_channel_cfg, 1); - hal_gpio_pin_set_dir((enum HAL_GPIO_PIN_T)cfg_hw_tws_channel_cfg.pin, HAL_GPIO_DIR_IN, 1); - if (tgt_tws_get_channel_is_right()) { - app_tws_set_side(EAR_SIDE_RIGHT); - TRACE(0, "Right earbud"); - } else { - app_tws_set_side(EAR_SIDE_LEFT); - TRACE(0, "Left earbud"); - } + } #endif diff --git a/services/bt_app/app_bt_stream.cpp b/services/bt_app/app_bt_stream.cpp index ae8f792..3620689 100644 --- a/services/bt_app/app_bt_stream.cpp +++ b/services/bt_app/app_bt_stream.cpp @@ -3434,6 +3434,11 @@ int bt_sbc_player(enum PLAYER_OPER_T on, enum APP_SYSFREQ_FREQ_T freq) start_by_sbc = false; #endif + +#ifdef WL_DET + app_mic_alg_audioloop(false,APP_SYSFREQ_78M); +#endif + #ifdef PLAYBACK_USE_I2S hal_cmu_audio_resample_enable(); #endif @@ -4307,6 +4312,10 @@ int bt_sbc_player(enum PLAYER_OPER_T on, enum APP_SYSFREQ_FREQ_T freq) #endif #endif +#ifdef WL_DET + app_mic_alg_audioloop(true,APP_SYSFREQ_78M); +#endif + #ifdef __THIRDPARTY //app_thirdparty_specific_lib_event_handle(THIRDPARTY_ID_NO1,THIRDPARTY_OTHER_EVENT); #endif