From: SnickerSun Date: Tue, 17 Dec 2024 02:15:12 +0000 (+0800) Subject: 删除不用的代码 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=55e4e6104ab7f342fdd092d7da78ea9c6c77b72b;p=mirrors%2FFD230.git 删除不用的代码 --- diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 68189f026..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "files.associations": { - "*.def": "cpp", - "limits": "cpp", - "*.tcc": "cpp", - "type_traits": "cpp", - "iterator": "cpp", - "pm_core.h": "c", - "pm_veto.h": "c", - "chip_io.h": "c", - "pm.h": "c", - "tyhx_hrv_alg.h": "c", - "tyhx_hrs_custom.h": "c", - "osal_timer.h": "c", - "debug_print.h": "c", - "platform_core.h": "c", - "*.inc": "c", - "ohosfwk_at_process.h": "c", - "pm_clocks.h": "c", - "pmu_cmu.h": "c", - "pm_control.h": "c", - "__functional_base": "c", - "__functional_base_03": "c", - "__hash_table": "c", - "__tree": "c", - "__tuple": "c", - "algorithm": "c", - "array": "c", - "chrono": "c", - "cstddef": "c", - "filesystem": "c", - "forward_list": "c", - "functional": "c", - "memory": "c", - "random": "c", - "ratio": "c", - "tuple": "c", - "utility": "c", - "istream": "c", - "ostream": "c", - "soc_osal.h": "c", - "lis2doc_reg.h": "c", - "string.h": "c", - "clocks_config_priv.h": "c", - "lis2doc_at_cmd.h": "c", - "customer.h": "c", - "pinctrl.h": "c", - "at_cmd_api.h": "c", - "ios": "cpp", - "vibrator.h": "c", - "gpio_porting.h": "c", - "arch.h": "c", - "opt.h": "c", - "debug.h": "c", - "lwipopts.h": "c", - "cc.h": "c", - "sys_arch.h": "c", - "nv_key.h": "c", - "common.h": "c", - "custom_utils.h": "c", - "key_id.h": "c", - "custom_utils_cmd.h": "c", - "timer.h": "c", - "future": "cpp", - "__bit_reference": "c", - "bitset": "c", - "map": "c", - "set": "c", - "unordered_map": "c", - "unordered_set": "c", - "lis2doc_porting.h": "c", - "acc_service.h": "c", - "mmc5603.h": "c", - "mag_service.h": "c", - "mmc5603_hal.h": "c", - "clocks_config.h": "c", - "clocks_types.h": "c" - } -} \ No newline at end of file diff --git a/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/CMakeLists.txt b/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/CMakeLists.txt deleted file mode 100644 index c1c31962b..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -#[[ -Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved. -Description: CMake audio sample module. -Author: audio -Create: 2023-06-09 -]] - -set(SAP_TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../drivers/drivers/driver/audio/source) -#=================================================================================== -include(${SAP_TOP_DIR}/build/cmake/audio_config.cmake) -#=================================================================================== -set(COMPONENT_NAME audio_vendor) -set(MODULE_NAME "dsp") -set(AUTO_DEF_FILE_ID TRUE) -#=================================================================================== -set(COMPONENT_SRC ) -#=================================================================================== -set(COMPONENT_INC - ${SAP_UAPI_DIR} - ${SAP_TOP_DIR}/include - ${SAP_TOP_DIR}/drv/vendor - ${SAP_TOP_DIR}/drv/include - ${SAP_TOP_DIR}/drv/common/include - ${SAP_TOP_DIR}/drv/arch/include - ${SAP_TOP_DIR}/drv/arch/${CFG_SAP_CHIP_TYPE}/include - ${SAP_TOP_DIR}/core/include - ${SAP_TOP_DIR}/core/common/include - ${SAP_TOP_DIR}/core/arch/${CFG_SAP_CHIP_TYPE}/include - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/common -) -#=================================================================================== -if("${CFG_SAP_VENDOR_DRIVER_AW88262_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88262/aw88262.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88262 -) -endif() - -if("${CFG_SAP_VENDOR_DRIVER_AW88166_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw88166.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_calib.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_device.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166/aw883xx_pid_2066_init.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166 - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166 - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/config/aw88166/mono/16bit -) -endif() - -if("${CFG_SAP_VENDOR_DRIVER_ANC_CODEC_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/anc_codec.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/sai01_dac_32.768k -) -endif() -#=================================================================================== -set(COMPONENT_DEF - "SAP_PROC_SUPPORT" -) -#=================================================================================== -include(${SAP_TOP_DIR}/build/cmake/audio_common.cmake) -install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/aw88166 "*") diff --git a/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/aw88166/aw88166.c b/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/aw88166/aw88166.c deleted file mode 100644 index a0f2d29a3..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/application/audio/vendor/aw88166/aw88166.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved. - * Description: source file for aw88166 driver - */ - -#include -#include "soc_osal.h" -#include "audio_debug.h" -#include "gpio.h" -#include "hal_gpio.h" -#include "i2c.h" -#include "pinctrl.h" -#include "vendor_common.h" -#include "soc_uapi_vendor.h" - -#include "aw883xx_init.h" -#include "aw883xx.h" -#include "aw_params.h" - -static td_bool g_aw88166_i2c_inited = TD_FALSE; - -#define AW88166_PWR_ON_PIN S_AGPIO_L25 -#define AW88166_I2C_BUS_ID I2C_BUS_3 -#define AW88166_I2C_DEV_ADDR 0x34 - -static td_s32 aw_dev0_i2c_write_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -{ - td_s32 ret; - i2c_data_t data; - const td_u8 reg_addr_len = sizeof(reg_addr); /* data len of reg_addr */ - const td_u8 send_len = len + reg_addr_len; /* pdata bytes && reg_addr len */ - td_u8 *send_data = osal_kmalloc_align(send_len, 0, 8); /* 8 : Align up to 8 bytes */ - - if (send_data == TD_NULL) { - ret = -1; /* -1:FAILED ERR CODE */ - vendor_log_fun_err(malloc, ret); - return ret; - } - - /* pack reg addr & reg data */ - *send_data = reg_addr; /* reg_addr */ - ret = memcpy_s(send_data + reg_addr_len, (send_len - reg_addr_len), pdata, len); /* pdata */ - if (ret != EOK) { - vendor_log_fun_err(memcpy_s, ret); - goto out; - } - - data.send_buf = send_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - ret = (td_s32)uapi_i2c_master_write(AW88166_I2C_BUS_ID, dev_addr, &data); - if (ret != ERRCODE_SUCC) { - vendor_log_fun_err(uapi_i2c_master_write, ret); - goto out; - } - -out: - if (send_data != TD_NULL) { - osal_kfree(send_data); - } - return ret; -} - -static td_s32 aw_dev0_i2c_read_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -{ - td_s32 ret; - - i2c_data_t data; - - data.send_buf = ®_addr; - data.send_len = sizeof(reg_addr); - data.receive_buf = pdata; - data.receive_len = len; - ret = (td_s32)uapi_i2c_master_writeread(AW88166_I2C_BUS_ID, dev_addr, &data); - if (ret != ERRCODE_SUCC) { - vendor_log_fun_err(uapi_i2c_master_writeread, ret); - return ret; - } - - return AUDIO_SUCCESS; -} - -static td_void aw_dev0_reset_gpio_ctl(bool state) -{ - uapi_gpio_set_val(AW88166_PWR_ON_PIN, state); -} - -static td_void aw88166_pwr_on_pin_init(td_void) -{ - uapi_gpio_set_dir(AW88166_PWR_ON_PIN, GPIO_DIRECTION_OUTPUT); -} - -static td_s32 aw88166_i2c_init(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* init i2c */ - vendor_trace_log_u32(AW88166_I2C_BUS_ID); - ret = (td_s32)uapi_i2c_master_init(AW88166_I2C_BUS_ID, I2C_BAUDRATE, I2C_HIGH_SPEED_CODE); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(uapi_i2c_master_init, ret); - return ret; - } - - vendor_printf("aw88166 i2c init success\n"); - audio_func_exit(); - return AUDIO_SUCCESS; -} - -static td_s32 aw88166_i2c_deinit(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* deinit i2c */ - vendor_trace_log_u32(AW88166_I2C_BUS_ID); - ret = (td_s32)uapi_i2c_deinit(AW88166_I2C_BUS_ID); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(uapi_i2c_deinit, ret); - return ret; - } - - vendor_printf("aw88166 i2c deinit success\n"); - audio_func_exit(); - return AUDIO_SUCCESS; -} - -td_s32 aw883xx_pid_2066_dev_init(td_void *aw883xx); - -struct aw_init_info init_info[] = { - { - .dev = AW_DEV_0, - .i2c_addr = AW88166_I2C_DEV_ADDR, - .re_min = 2000, /* awinic:If the re_min(ohms) and re_max(ohms) are not set, the default value is used */ - .re_max = 39000, - .mix_chip_count = AW_DEV0_MIX_CHIP_NUM, - .prof_info = g_dev0_prof_info, - .i2c_read_func = aw_dev0_i2c_read_func, - .i2c_write_func = aw_dev0_i2c_write_func, - .reset_gpio_ctl = aw_dev0_reset_gpio_ctl, - .dev_init_ops = {aw883xx_pid_2066_dev_init}, - } -}; - -static td_s32 audio_aw88166_configuration(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - /* awinic:Control interface of dev0 */ - /* awinic:initialization */ - ret = aw883xx_smartpa_init((td_void *)&init_info[AW_DEV_0]); - if (ret != AUDIO_SUCCESS) { - vendor_printf("aw883xx_smartpa_init already init\n"); - } - /* awinic:set mode "Music", "aw_params.h" contains id information */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Music"); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_set_profile_byname, ret); - } - - vendor_unused(attr); - return ret; -} - -static td_s32 audio_aw88166_deconfiguration(td_void) -{ - /* awinic:Free the requested memory when PA is not used */ - aw883xx_smartpa_deinit(AW_DEV_0); - - return AUDIO_SUCCESS; -} - -td_s32 audio_aw88166_init(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - audio_func_enter(); - - aw88166_pwr_on_pin_init(); - - if (g_aw88166_i2c_inited != TD_TRUE) { - ret = aw88166_i2c_init(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw88166_i2c_init, ret); - return ret; - } - g_aw88166_i2c_inited = TD_TRUE; - } else { - ret = 0; - } - - ret = audio_aw88166_configuration(attr); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(audio_aw88166_configuration, ret); - } - - return AUDIO_SUCCESS; -} - -td_s32 audio_aw88166_deinit(td_void) -{ - td_s32 ret; - audio_func_enter(); - - ret = audio_aw88166_deconfiguration(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(audio_aw88166_deconfiguration, ret); - } - - if (g_aw88166_i2c_inited != TD_FALSE) { - ret = aw88166_i2c_deinit(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw88166_i2c_deinit, ret); - return ret; - } - g_aw88166_i2c_inited = TD_FALSE; - } else { - ret = AUDIO_SUCCESS; - } - - audio_func_exit(); - return ret; -} - -td_s32 audio_aw88166_start(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - audio_func_enter(); - - /* awinic:The platform needs to output I2s first, and then ctl start */ - ret = aw883xx_ctrl_state(AW_DEV_0, AW_START); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_ctrl_state, ret); - } - - vendor_unused(attr); - return ret; -} - -td_s32 audio_aw88166_stop(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* awinic:The platform needs to control the stop first and then stop I2S */ - ret = aw883xx_ctrl_state(AW_DEV_0, AW_STOP); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_ctrl_state, ret); - } - audio_func_exit(); - return ret; -} - -td_s32 audio_aw88166_set_aef_profile(uapi_snd_aef_profile aef_profile) -{ - td_s32 ret; - - audio_func_enter(); - - /* awinic:set mode "Receiver"/"Music", "aw_params.h" contains id information */ - if (aef_profile == UAPI_SND_AEF_PROFILE_VOIP) { - /* awinic:set mode "Receiver" */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Receiver"); - } else { - /* awinic:set mode "Music" */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Music"); - } - - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_set_profile_byname, ret); - } - - audio_func_exit(); - return ret; -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/fd230_driver_patch/20240503.170906/code/sdk/application/brandy/brandy_standard/thread_pri_init.c deleted file mode 100644 index 479f285ec..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: Application Core OS Priority Initialize Interface for Standard - * Author: - * Create: 2022-12-03 - */ -#include "debug_print.h" -#include "thread_init.h" -#include "common_def.h" -#include "pm.h" -#include "watchdog.h" -/* after reboot system emmc need write exc info to the file system from sector */ -#if defined(SAVE_EXC_INFO) && defined(CFG_DRIVERS_MMC) -#include "exception.h" -#endif -#ifdef CFG_DRIVERS_MMC -#ifdef __LITEOS__ -#include "soc/mmc.h" -#endif -#include "soc_mmc.h" -#endif -#include "soc_lcd_api.h" -#ifdef CFG_DRIVERS_NANDFLASH -#include "nandflash_config.h" -#include "yaffs_nand_drv.h" -#endif -#if defined(TPTYPE_TMA525B) -#include "tma525b_drv1.h" -#elif defined(TPTYPE_ZTW523) -#include "ztw523_touch1.h" -#elif defined(TPTYPE_FT6X46) -#include "ft6x46_touch1.h" -#else -#include "ztw523_touch1.h" -#endif -#include "thread_pri_init.h" -#if DSP_EXIST == YES -#include "soc_uapi_audio_sys.h" -#include "soc_uapi_vendor.h" -#include "soc_uapi_sound.h" -/* Audio codec vendor select according to hardware connection: - * define AUDIO_SMARTPA_AW88166 : macro to init smartpa aw88166; - * define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 : macro to specify i2s id connecting to smartpa aw88166; - */ -#if 0 -#define AUDIO_SMARTPA_AW88262 -#define AUDIO_SMARTPA_AW88262_I2S_ID UAPI_SND_OUT_PORT_I2S2 -#else -#define AUDIO_SMARTPA_AW88166 -#define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 -#endif -#endif /* DSP_EXIST */ -#include "panic.h" -#include "board_init.h" -#include "kernel_init.h" -#ifdef SUPPORT_AT_OHOSFWK -#include "ohosfwk_startup.h" -#endif -#include "clocks_config.h" - -#define EMMC_BASE_ADDR 0x52062000 -#define TASK_PRIORITY_APP (osPriority_t)(17) -#define TICK_TEN_MS (10U) -#define WAIT_BT_BOOTUP_TIME 200U - -static void thread_main(const void *unused); -void bt_acore_btc_ipc_receive_init(void); - -app_task_definition_t g_thread_pri = { { "thread_pri", 0, NULL, 0, NULL, (0x1000), TASK_PRIORITY_APP, 0, 0 }, - (osThreadFunc_t)thread_main, NULL, NULL, USE_DTCM_MEM }; -store_class g_store_init_select = STORE_CLASS_NAND; - -#if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) -static void sample_gfx_init(void) -{ -#if defined(TPTYPE_TMA525B) - tma525b_host_init_sample(); -#elif defined(TPTYPE_ZTW523) - ztw523_host_init_sample(); -#elif defined(TPTYPE_FT6X46) - ft6x46_host_init_sample(); -#else - ztw523_host_init_sample(); -#endif - uapi_lcd_init(); -#ifdef SUPPORT_GPU_GMMU - drv_gmmu_module_init(); -#endif - uapi_vau_module_init(); - uapi_dpu_module_init(); -#ifdef SUPPORT_GPU_JPEG - uapi_jpeg_module_init(); -#endif -} -#endif - -#ifdef CFG_DRIVERS_MMC -static void emmc_init(void) -{ - /** - * FPGA解复位, 设置CMD_CONFLICT_CHECK - * 之后才能设置管脚 - */ - writew(EMMC_BASE_ADDR + 0x508, 0); - init_emmc_pinmux(); - int ret = emmc_drv_context_init(); - if (ret != ENOERR) { - PRINT("emmc init error:[%d]"NEWLINE, ret); - } - mmc_set_first_init_flag(true); - mmc_set_sleep_init_flag(true); - PRINT("emmc init success\r\n"); - -#if defined(SAVE_EXC_INFO) - if (emmc_exc_info_write() != ERRCODE_SUCC) { - PRINT("emmc_exc_info_write failed"NEWLINE); - } -#endif -} -#endif - -#ifdef CFG_DRIVERS_NANDFLASH -static void nandflash_init(void) -{ - int32_t ret = 0; - ret = nandflash_filesystem_init(); - if (ret != 0) { - PRINT("nandflash init error[%d]"NEWLINE, ret); - } - PRINT("nandflash init success\r\n"); -} -#endif - -static void board_version_class_print(void) -{ - PRINT("**********startup info**********\r\n"); - PRINT("os init class is %s."NEWLINE, (g_os_init_select == OS_CLASS_LITEOS) ? "liteos" : "freertos"); - PRINT("store init class is %s."NEWLINE, (g_store_init_select == STORE_CLASS_NAND) ? "nandflash" : "emmc"); - PRINT("display init class is %s."NEWLINE, (g_display_init_select == DISPLAY_CLASS_QSPI) ? "QSPI" : "MIPI"); - PRINT("board init class is %s."NEWLINE, (g_board_init_select == BOARD_CLASS_E0B2) ? "E0B2" : "E0B4"); -#ifdef CONFIG_PSRAM_SUPPORT - PRINT("psram density is %s."NEWLINE, (get_psram_density() == PSRAM_DENSITY_16M) ? "16MB" : "32MB"); -#endif - PRINT("**********startup info**********\r\n"); -} - -#if DSP_EXIST == YES -/** - * The sample code of the vendor, - * which will be implemented by the customer in the future - */ -#ifdef AUDIO_SMARTPA_AW88262 -td_s32 audio_aw88262_init(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88262_deinit(td_void); - -static uapi_vendor_driver g_aw88262_driver = { - .out_port = AUDIO_SMARTPA_AW88262_I2S_ID, - .init = audio_aw88262_init, - .deinit = audio_aw88262_deinit, - .set_aef_profile = TD_NULL, -}; - -static td_s32 audio_aw88262_register_driver(void) -{ - return uapi_audio_vendor_register(&g_aw88262_driver); -} -#endif /* AUDIO_SMARTPA_AW88262 */ - -#ifdef AUDIO_SMARTPA_AW88166 -td_s32 audio_aw88166_init(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88166_deinit(td_void); /* Call when device power off */ -td_s32 audio_aw88166_start(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88166_stop(td_void); -td_s32 audio_aw88166_set_aef_profile(uapi_snd_aef_profile aef_profile); - -static uapi_vendor_driver g_aw88166_driver = { - .out_port = AUDIO_SMARTPA_AW88166_I2S_ID, - .init = audio_aw88166_start, - .deinit = audio_aw88166_stop, - .set_aef_profile = audio_aw88166_set_aef_profile, -}; - -static td_s32 audio_aw88166_register_driver(void) -{ - const uapi_vendor_codec_attr attr = {}; - - audio_aw88166_init(&attr); /* Init aw88166 once when device power on */ - - return uapi_audio_vendor_register(&g_aw88166_driver); -} -#endif /* AUDIO_SMARTPA_AW88166 */ - -static void audio_smartpa_init(void) -{ - uint32_t ret; - -#ifdef AUDIO_SMARTPA_AW88262 - ret = (uint32_t)audio_aw88262_register_driver(); - if (ret != 0) { - PRINT("aw88262 register driver error\r\n"); - } -#endif /* AUDIO_SMARTPA_AW88262 */ - -#ifdef AUDIO_SMARTPA_AW88166 - ret = (uint32_t)audio_aw88166_register_driver(); - if (ret != 0) { - PRINT("aw88166 register driver error\r\n"); - } -#endif /* AUDIO_SMARTPA_AW88166 */ -} -#endif /* DSP_EXIST */ - -#if DSP_EXIST == YES -static void audio_init() -{ - (void)osDelay(TICK_TEN_MS); - uapi_watchdog_kick(); - - audio_smartpa_init(); - - uint32_t ret = (uint32_t)uapi_audio_init(); - if (ret != 0) { - PRINT("audio init error:[%d]\r\n", ret); - } else { - PRINT("audio init OK\r\n"); - } -} -#endif - -void rc_calibration_func_notify(void) -{ -#ifdef SUPPORT_RC_CALIBRATION - /* BT核用来通知MCU 32K校准值 */ - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG3, 0x0); - /* 通知BTæ ¸ 32K时钟来源 */ - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG2, CLOCK_SOURCE_RC); -#else - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG2, CLOCK_SOURCE_XO); -#endif -} - -static void force_to_sleep(void) -{ - if (reg16_getbits(0x5702C010, 0x8, 0x8) == 0x5A) { // 特殊模式下,强制进入深睡中 - reg16_clrbits(0x5702C010, 0x8, 0x8); - uapi_tcxo_delay_ms(WAIT_BT_BOOTUP_TIME); - hal_pmu_cldo_enable_slp_bypass(HAL_PMU_CLDO1, TURN_OFF); - uapi_sys_force_mcu_only_deep_sleep_mode(0); - } -} - -static void thread_main(const void *unused) -{ - PRINT("thread_main start "NEWLINE); - unused(unused); - rc_calibration_func_notify(); - bt_acore_btc_ipc_receive_init(); - uapi_pm_control(PM_BT_POWER_UP_AND_RUN); -#ifdef FORCE_TO_DEEP_SLEEP - force_to_sleep(); -#endif - los_vfs_init(); - uint32_t ret = dpal_driver_base_init(); - if (ret != 0) { - PRINT("dpal driver base init error"NEWLINE); - panic(PANIC_ASSERT, __LINE__); - } -#ifdef CFG_DRIVERS_MMC - emmc_init(); - g_store_init_select = STORE_CLASS_EMMC; - sdiom_internal_freq_handler_register(mmc_set_internal_clk); -#endif -#ifdef CFG_DRIVERS_NANDFLASH - yaffs_nand_drv_checkptset(YAFFS_CHECKPT_SKIPED); - nandflash_init(); - g_store_init_select = STORE_CLASS_NAND; -#endif - uapi_pm_control(PM_DISPLAY_POWER_UP_AND_RUN); - (void)osDelay(TICK_TEN_MS); - -#if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) - sample_gfx_init(); -#else - uapi_pm_control(PM_DISPLAY_POWER_OFF); -#endif - -#if DSP_EXIST == YES - audio_init(); -#endif - board_version_class_print(); - uapi_watchdog_kick(); - thread_init(); - button_app_init(); - uapi_calendar_init(); -#ifdef SUPPORT_AT_OHOSFWK - ohos_startup(); -#endif - uapi_pm_remove_sleep_veto(PM_ID_DEBUG); - set_startup_finish_flag(); -} - -void thread_pri_init(void) -{ - /* Create tasks */ - g_thread_pri.task_handle = osThreadNew(g_thread_pri.func, NULL, &(g_thread_pri.attr)); - if (g_thread_pri.task_handle == NULL) { - PRINT("create thread pri failed!"); - } -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp b/fd230_driver_patch/20240503.170906/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp deleted file mode 100644 index 35ba07c27..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Reboot Presenter - * Create: 2022-04-28 - */ - -#include "RebootPresenter.h" -#include "RebootView.h" -#include "RebootModel.h" -#include "drag_event.h" -#include "wearable_log.h" - -namespace OHOS { -static RebootPresenter *g_pRebootPresenter = nullptr; - -RebootPresenter::RebootPresenter() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::RebootPresenter"); - g_pRebootPresenter = this; -} - -RebootPresenter::~RebootPresenter() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::~RebootPresenter"); - g_pRebootPresenter = nullptr; -} - -RebootPresenter *RebootPresenter::GetInstance() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter GetInstance"); - return g_pRebootPresenter; -} - -void RebootPresenter::OnStart() -{ - Presenter::OnStart(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::On Start "); -} - -void RebootPresenter::OnPause(void) {} - -void RebootPresenter::OnResume(void) {} - -void RebootPresenter::OnStop(void) {} - - -extern "C" -{ -extern void uapi_sys_shipmode(uint32_t arg); -extern uint32_t mcu_os_sys_reset(uint8_t *para, uint32_t para_len); -} -bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) -{ - UNUSED(event); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnClick OnClick"); - if (strcmp(view.GetViewId(), REBOOT_BUTTON) == 0) { - RebootView::GetInstance()->ChangeView(REBOOTVIEW, REBOOTDEVICEVIEW); - } else if (strcmp(view.GetViewId(), SHUTDOWN_BUTTON) == 0) { - RebootView::GetInstance()->ChangeView(REBOOTVIEW, SHUTDOWNDEVICEVIEW); - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_BUTTON) == 0) { - // 重启 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "REBOOTDEVICE_BUTTON OnClick"); - mcu_os_sys_reset(NULL,NULL); - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_BUTTON) == 0) { - // 关机 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SHUTDOWNDEVICE_BUTTON OnClick"); - uapi_sys_shipmode(0); - } - return true; -} - -bool RebootPresenter::OnDrag(UIView& view, const DragEvent& event) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::OnDrag"); - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - if (strcmp(view.GetViewId(), REBOOT_VIEW) == 0) { - NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE); - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_VIEW) == 0) { - if (RebootModel::GetInstance()->GetExitsView() == 0) { - RebootView::GetInstance()->ChangeView(REBOOTDEVICEVIEW, REBOOTVIEW); - } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - RebootModel::GetInstance()->SetExitsView(false); - } - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_VIEW) == 0) { - if (RebootModel::GetInstance()->GetExitsView() == 0) { - RebootView::GetInstance()->ChangeView(SHUTDOWNDEVICEVIEW, REBOOTVIEW); - } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - RebootModel::GetInstance()->SetExitsView(false); - } - } - } - return true; -} -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/build/config/target_config/brandy/config.py b/fd230_driver_patch/20240503.170906/code/sdk/build/config/target_config/brandy/config.py deleted file mode 100644 index 849bfc8f4..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/build/config/target_config/brandy/config.py +++ /dev/null @@ -1,302 +0,0 @@ -#!/usr/bin/env python3 -# encoding=utf-8 -# ============================================================================ -# @brief Target Definitions File -# Copyright CompanyNameMagicTag 2022-2022. All rights reserved. -# ============================================================================ - -target = { - #target1: liteos + lvgl + nandflash + mipi + no psram + mini_audio 典型单封LVGL版本 - 'brandy-target1': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'std_libs': [], - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_ZDIAG_NV_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'MEMORY_MINI', 'ENABLE_LVGL', 'SW_UART_DEBUG', "SAVE_EXC_INFO", - "CONFIG_LOW_POWER_TEST", 'MIPI_ULPS_SUPPORT', 'ENABLE_ECC', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'CONFIG_NV_SUPPORT_ASYNCHRONOUS_STORE=0'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc','fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc"], - 'ram_component_set': ['bgh', 'media_mini', 'gpu', 'graphic_lvgl_mini', 'dfx_set'], - 'image_analysis': True, - 'dsp_version': 'mini', - 'packet': True, - 'fs_image': False, - }, - #target3: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-target3': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY','MIPI_ULPS_SUPPORT', 'CONFIG_LOW_POWER_TEST', - 'ENABLE_ECC', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'graphic_test', 'bgh_audio', 'dfx_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - #target4: liteos + nandflash + psram + mini_audio + no gui 外设类版本 - 'brandy-target4': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'std_libs': ['c++', 'c++abi', 'unwind'], - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'I2C_SLAVE_REG_ADDR_4BYTE', 'SUPPORT_CXX', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'HASH_MEM_COPY', - 'CONFIG_ZDIAG_NV_SUPPORT', 'SUPPORT_BLE', 'SUPPORT_BREDR', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'CONFIG_PSRAM_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', - 'CONFIG_LOW_POWER_TEST', 'CONFIG_ADC_SUPPORT_AUTO_SCAN', - 'CONFIG_ADC_SUPPORT_LONG_SAMPLE', 'ENABLE_ECC', 'CONFIG_DIAG_GPU_PROC_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'partition', 'partition_brandy', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc','fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'app_at_service', - 'audio_at_service', 'bt_manager_at_service', "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'gpu', 'media_target4', 'update_app', 'dfx_set', 'bgh_audio', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False, - }, - #target5: freertos + lvgl + nand + mipi + psram + audio + media 典型合封LVGL版本 - 'brandy-target5': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_freertos_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', "SUPPORT_BREDR", 'ENABLE_LVGL', "SUPPORT_GPU_JPEG", "SUPPORT_GPU_GMMU", "SUPPORT_GPU_OPENVG", - 'SW_UART_DEBUG', 'MEMORY_NO_CACHE', "SAVE_EXC_INFO", "HASH_MEM_COPY", 'MIPI_ULPS_SUPPORT', - 'CONFIG_LOW_POWER_TEST', 'ENABLE_ECC', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - 'lcd', 'qspi_display', 'partition', 'partition_brandy', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd','graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_lvgl', 'bgh_audio', 'update_app', 'dfx_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - #native-js: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-native-js': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', - 'FT_SINGLE_UART', - 'TPTYPE_FT6X46', - 'ENABLE_ECC', 'MIPI_ULPS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc", 'bts_header', 'baidumapsdk'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': True - }, - #native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-xts': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', - 'ENABLE_ECC', 'XTS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc", 'bts_header', 'baidumapsdk'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'xts_set', 'xts_test_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - - 'brandy-target1-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'MEMORY_MINI', 'SW_UART_DEBUG', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target3-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target4-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', 'HASH_MEM_COPY', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'pm_service', 'pm_brandy', - 'ulp_aon', 'hal_l2ram', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target5-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_freertos_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", "__FREERTOS__", 'ENABLE_UIKIT', 'SW_UART_DEBUG', - "HASH_MEM_COPY", 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'pm_service', 'pm_brandy', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-native-js-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'FT_SINGLE_UART','TPTYPE_FT6X46', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header', - 'at_cmd' - ], - 'ram_component_set': ['pinctrl', 'dfx_set' ,'gpu'] - }, - 'brandy-xts-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'ENABLE_ECC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set'] - }, - 'testsuite-brandy-sdk': { - 'base_target_name': 'target_brandy_testsuite_application', - 'board': 'evb', - 'defines': ['SW_UART_DEBUG', 'USE_CMSIS_OS', 'CFG_DRIVERS_NANDFLASH', - 'PRE_ASIC', 'BRANDY_PRODUCT_EVB4', - '_ALL_SOURCE', '__LITEOS__', 'SUPPORT_CXX', 'ENABLE_UIKIT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'MULTIPLEXING_UART', - 'CONFIG_SPI_SUPPORT_POLL_AND_DMA_AUTO_SWITCH', 'CONFIG_SPI_AUTO_SWITCH_DMA_THRESHOLD=0x8', - 'CONFIG_I2C_SUPPORT_POLL_AND_DMA_AUTO_SWITCH', 'CONFIG_I2C_POLL_AND_DMA_AUTO_SWITCH_THRESHOLD=0x8'], - 'ram_component': ["osal", "arch_port", "liteos_port", 'psram', 'pm_service', 'pm_brandy', - 'hal_mips', 'lcd', 'qspi_display', 'hal_dma_v100', "dfx_port_brandy", - 'dfx_log_brandy', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', 'ulp_aon', - 'hal_l2ram', "test_security", "test_spi", 'dfx_file_operation', - "test_timer", "test_int", "test_pm", - "test_lcd", "test_qspi_display", "test_systick", "test_tcxo", "test_watchdog", - "test_vfs_emmc", "test_flash", "test_pwm", "test_i2c", "test_cmsis", - "test_xip", "test_mipi", "test_touch", 'algorithm', 'test_sdio', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2' , 'nand_flash' , 'mtd_com', - 'cmn_header', 'test_calendar', 'test_gpio', 'test_pinctrl', 'test_dma', 'test_uart', - 'test_reboot', 'test_rtc_unified', - 'test_nandflash', 'test_adc', 'test_pmp', 'efuse', 'hal_efuse_v100', 'efuse_porting'], - 'ram_component_set': ['dfx_set', '-:gpu_test', 'rtc_unified'], - 'os': 'liteos', - }, - 'brandy-ssb': { - 'base_target_name': 'target_ssb_template_brandy', - 'board': 'evb', - 'defines': ["-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", "PRE_ASIC", "BRANDY_PRODUCT_EVB4", - "SSB_USE_PLL", "VERSION_STANDARD", "BUILD_APPLICATION_SSB", "LIBBOOTLOADER", "LIBCODELOADER", - "LIBCPU_UTILS", "LIBAPP_VERSION", "LIBPANIC", "LIBCONNECTIVITY", "LIBERROR_CODE", "LIBSEC_RANDOM", - "LIBCODELOADER_SSB", "LIBJLINK_LOAD", "LIBLIB_UTILS", "LIBBUILD_VERSION", - 'ENABLE_ECC', - "CFG_DRIVERS_NANDFLASH", - "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER', - 'FT_SINGLE_UART' - ], - 'ram_component': ['arch_port', 'hal_l2ram', 'sec_boot', 'libboundscheck', - 'dfx_exception', 'error_code', 'psram', 'osal', 'cmn_header', - 'boot_ulp', - 'boot_nandflash' - ], - 'ram_component_set': ['pinctrl'], - 'target': 'ssb', - } -} - -target_group = { - # ci protect target list - 'pack_brandy_target1': ['brandy-ssb', 'brandy-target1-r', 'brandy-target1'], - 'pack_brandy_target3': ['brandy-ssb', 'brandy-target3-r', 'brandy-target3'], - 'pack_brandy_target4': ['brandy-ssb', 'brandy-target4-r', 'brandy-target4'], - 'pack_brandy_target5': ['brandy-ssb', 'brandy-target5-r', 'brandy-target5'], - 'pack_brandy_native_js': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js'], - 'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'], - - 'brandy_all': ['brandy-ssb', - 'brandy-target1', 'brandy-target3', 'brandy-target4', 'brandy-target5', 'brandy-native-js', 'brandy-xts', - 'brandy-target1-r', 'brandy-target3-r', 'brandy-target4-r', 'brandy-target5-r', 'brandy-native-js-r', 'brandy-xts-r', - 'testsuite-brandy-sdk'] -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h deleted file mode 100644 index d3b5782d9..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2018-2021. All rights reserved. - * Description: brandy evb board config - * Author: @CompanyNameTag - * Create: 2020-02-19 - */ -#ifndef BOARD_EVB_CONFIG_H -#define BOARD_EVB_CONFIG_H - -#include "pinctrl_porting.h" -#include "gpio_porting.h" -#include "platform_types.h" - -#ifdef SUPPORT_CAT1_SERVICE -#include "cat1_ctl.h" -#endif - -#ifdef ENABLE_CYWEE -extern void cywee_int1_callback(pin_t pin, uintptr_t param); -#endif -/** - * @addtogroup connectivity_config_boards - * @{ - */ -/** - * @brief Global evb pio functions. - */ -const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO0 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO1 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO2 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO3 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO4 clk - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO5 cs - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO6 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO7 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO8 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO9 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO10 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO11 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO12 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO13 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO14 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO15 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO16 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO17 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO18 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO19 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO20 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO21 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO22 clk - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO23 ce - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO24 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO25 - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 NC -#if (defined CFG_DRIVERS_NANDFLASH) - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO9 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO10 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO11 cs0 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO12 cs1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO13 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO14 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 clk -#else - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO11 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 emmc clk -#endif - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO0 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO1 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO2 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO3 NC - -// #if (defined BRANDY_PRODUCT_EVB4) - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO4 NC -// #else - // { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 NC -// #endif - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC - - { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC - { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA - { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c - { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 uart1 rts - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 uart1 cts - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO23 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO24 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO25 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO26 NC -#if (defined QSPI_DISPLAY) - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO27 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO28 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO29 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO30 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO31 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO32 -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO27 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO28 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO29 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO30 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO31 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO32 -#endif - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO33 huart tx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO34 huart rx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO35 - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO36 -#if 0 - { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx - { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO38 uart rx -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO38 uart rx NC -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L0 NC - - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L1 i2s1 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L2 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L3 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L4 - - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L5 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 i2s0 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L7 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L8 - -#if (defined FT_BT_UART) - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L9 uart2 txd - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 uart2 rxd -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L11 G_INT1 - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L14 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L15 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ -#ifdef QSPI_DISPLAY - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE -#else - { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ- #if VIB_USE_PWM - // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - #else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable - -#if CORE == APPS - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO0 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO1 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO2 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO3 mode not config - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO4 - { HAL_PIO_FUNC_SWD, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // ULP_GPIO5 - { HAL_PIO_FUNC_SWD, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // ULP_GPIO6 -#endif -}; -/** - * @} - */ - - -/** - * @addtogroup connectivity_config_boards - * @{ - */ -/** - * @brief Global evb gpio functions. - * - * - * typedef struct { - pin_t gpio; - hal_gpio_direction_t direction; - hal_gpio_level_t level; - uint32_t triger; - hal_gpio_callback_t callback; -} hal_gpio_config_t; - */ - - -//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 -#define DEFAULT_POWERON_CAT1 0 - -//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ -const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { - -#if DEFAULT_POWERON_CAT1 - // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, - // S_AGPIO_L28 Cat1 reset ---- low reset - { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#else - // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L28 Cat1 reset ---- low reset - { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -#endif - // S_AGPIO_L17 HX3507_INT - // { S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L12 SDIO_BT - { S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L13 SCLK_BT - { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - - // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset - { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - - //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ - { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#if 1 //ĬÈÏÕý³£³äµç -// #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç - { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#else - { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#endif - -//ĬÈϹرÕÂí´ï - { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 - { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, - -#ifdef ENABLE_CYWEE - /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19*/ - //{ S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, GPIO_INTERRUPT_RISING_EDGE, cywee_int1_callback }, - { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int1_callback }, - // { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -#endif - /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ - { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef SUPPORT_CAT1_SERVICE - /**cat1 ring input key*/ - { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cat1_ring_isr_callback}, -#endif -}; -/** - * @} - */ -#endif diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h deleted file mode 100644 index 04cee1756..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2020-2023. All rights reserved. - * Description: product EVB4 standard config - * Author: @CompanyNameTag - * Create: 2023-03-07 - */ -#ifndef PRODUCT_EVB4_STANDARD_CONFIG_H -#define PRODUCT_EVB4_STANDARD_CONFIG_H - -/** - * @defgroup connectivity_config_product PRODUCT - * @ingroup connectivity_config - * @{ - */ -/* Platform board config, need check if it support or not carefully. */ -#define BTH_WITH_SMART_WEAR YES -#define APP_WRITE_OTP_ENABLE NO -#define APP_HEAP_SIZE 0x18000 // the minimum APP heap size (96kB) -#define USE_FLASH_SUSPEND_AND_RESUME NO -#define WAIT_APPS_DUMP_FOREVER NO -#define TWS_MPU_XIP_PROTECT NO -#define SSB_IMAGE_PAGES 27 -#ifdef CONFIG_LOW_POWER_TEST -#define ENABLE_LOW_POWER YES -#else -#define ENABLE_LOW_POWER NO -#endif -#define DTB_IMAGE_PAGES 0 -#define RECOVERY_IMAGE_PAGES 64 -#define RESERVE_IMAGE_PAGES 0 -#define BT_IMAGE_PAGES 112 -#define HIFI0_IMAGE_PAGES 112 -#define HIFI0_CODEC_PAGES 320 -#define APP_IMAGE_PAGES 1353 -#define NV_IMAGE_PAGES 4 -#define FOTA_IMAGE_PAGES 3 -#define FOTA_IMAGE_START 0x770000 -#define SSB_FOTA_OFFSET 0x0 -#define XO_CTRIM_VALUR_DEFAULT 0x56 -#define DSP1_IPC_ENABLE NO -#define APP_BTN_TASK_MONITOR_ENABLE NO -#define SSB_FOTA_MODE_TWS YES -#define DSP_EXTEND_OCRAM_SIZE 1310720 // Unit byte, = 1280 KB -#define OSC_EN_CALLBACK_BY_PLT YES -#define BT_MIPS_DEBUG NO -#define NON_OS_CRITICAL_RECORD NO -#define ENABLE_MASSDATA_RECORD NO -#define USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG NO -#define COMPRESS_LOG_TRIGGER_THRESHOLD 0 -#define COMPRESS_LOG_COUNT_THRESHOLD 0xFFFFFFFF -#define EXCEPTION_TEST_ENABLE NO -#define LOG_LEVEL_APP_DEFAULT_CONFIG 3 // Info level -#define LOG_LEVEL_BT_DEFAULT_CONFIG 3 // Info level -#define LOG_LEVEL_DSP_DEFAULT_CONFIG 3 // Info level -#define BCPU_HEAP_MININUM_SIZE 0xA000 // 40KB -#define SYS_DEBUG_MODE_ENABLE YES -#define PROMPT_TONE_REGION_LENGTH 0x2800 -#define AUDIO_DATA_STREAM_REGION_LENGTH 0x2000 -#define BT_MASSDATA_LENGTH 0x400 -#define APP_MASSDATA_LENGTH 0x800 -#define APP_LOGGING_LENGTH 0x1C00 -#define DSP_LOGGING_LENGTH 0x2000 -#define PSRAM_DENSITY_MB 32 -#define RC_CLOCK_ON NO -#define SMART_WATCH_BT_COEX_PIN_SWITCH NO // pinmux switch in the Coexistence of BT and WiFi of smart watch -#define CAP_SENSOR_BUFF_LEN 128 -#define BT_L2RAM_AREA_SIZE 3 // 384k, Reference the enum Value of hal_b_memory_share_config_t -#define DSP_L2RAM_AREA_TOTAL 10 -#define GPU_L2RAM_AREA_TOTAL 11 -#ifndef CONFIG_PSRAM_SUPPORT -#define DSP_L2RAM_AREA_SIZE 6 // 无PSRAM & 小型化场景分配给DSP 6块*128K=768KB 剩余512K系统使用 -#else -#if defined(CONFIG_SEA_PHS_SUPPORT) -#define DSP_L2RAM_AREA_SIZE 10 // 语音唤醒场景分配给DSP 10块*128K=1280KB DSP L2M不给系统使用 -#else -#define DSP_L2RAM_AREA_SIZE 8 // 正常场景分配给DSP 8块*128K=1024KB 剩余256K系统使用 -#endif /* CONFIG_SEA_PHS_SUPPORT */ -#endif /* CONFIG_PSRAM_SUPPORT */ -#define PUYA_FLASH_SUPPORT YES - -/********************display config********************/ -#define DOUBLE_BUFFER 1 -#if defined(QSPI_DISPLAY) -#define RESOLUTION_WIDTH 194 -#define RESOLUTION_HEIGHT 368 -#elif defined(MEMORY_MINI) -#define RESOLUTION_WIDTH 240 -#define RESOLUTION_HEIGHT 296 -#elif defined(SUPPORT_SOFT_SEND_FRM) -#define RESOLUTION_WIDTH 368 -#define RESOLUTION_HEIGHT 448 -#else -#define RESOLUTION_WIDTH 466//454 -#define RESOLUTION_HEIGHT 466//454 -#endif - -/********************Other module board config********************/ -#define BTC_SWITCH_COEX YES -#define BTC_SMART_WEAR_WLCOEX YES -#define BTC_WITH_SMART_WEAR YES -#define BTC_TWS_MONITOR YES -#define BTC_ICO_SUPPORT YES -#define BTC_DUAL_ANT_SWITCH_SUPPORT NO -#define BTC_GET_EMC_FROM_PLATFORM YES // 后续耳机产品通过HCI传递NV数据实现后,该选项需要置为NO -#define BTSNOOP_ENABLE NO -#define TWS_USER_CHR_RECORD NO -#define BTH_WEAR_ENABLE_AUDIO_SINK NO -#define BTH_WEAR_ENABLE_AUDIO_GATEWAY NO -#define BTH_WEAR_BREDR_DOUBLE_CONNECT NO -#define BTC_DFX_LOG_HELP_SUPPORT NO -#define FACTORY_CALI NO -#define BTH_WEAR_ENABLE_CONNECT_MANAGER NO -#define BTH_WEAR_ENABLE_BLE_FEATURES YES -#define BTH_WEAR_ENABLE_HFP_FEATURES NO -#define WEAR_USER_CONFIG NO -#define BTH_HIGH_POWER YES -#define MULTI_CONNECT YES -#define BTH_CONFIG_HDAP YES -#define DEVICE_MANAGE_FEATURE YES -#define BTH_CALL_LC3_32K YES -#define BTH_ENABLE_LC3_CODEC YES -#define ENABLE_CHANGE_DEVICE_NAME YES -#define BTH_DIP_PRODUCT_ID 0x4106 -#define BTH_ENABLE_L2HC_CODEC YES -#define ENABLE_BT_XO_16M NO -#define BTH_WSTP_CMD_SUPPORT YES -#define PRODUCT_SUPPORT_MODE_SWITCH YES -#define BT_MANAGER_DEPLOYED 2 -#define BT_CODEC_TID 2 -#define BTH_WEAR_ENABLE_AVRCP_TARGET NO -#define BTH_WEAR_ENABLE_AVRCP_CONTROLLER NO -#define BTH_WEAR_ENABLE_AUDIO_SOURCE NO -#define BTH_WEAR_ALLOW_INQUIRY_SCAN YES -#define BTH_WEAR_ENABLE_HALL_STATE NO - -// 音频内置输入设备 -#define BUILTIN_AI_PORT 0x50 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_LPADC0 枚举 -#define BUILTIN_AI_PORT_ATTR_ADC_RX_TYPE 0 // 参考 soc_uapi_ai.h 中 UAPI_AI_RX_DEFAULT 枚举 -#define BUILTIN_AI_PCM_ATTR_AUDIO_CH 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_1 枚举 -#define BUILTIN_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_AI_PCM_ATTR_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define BUILTIN_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 - -// 音频内置输出设备 -#define BUILTIN_SND_OUT_PORT 0x10 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S0 枚举 -#define BUILTIN_SND_OUT_PORT_NUM 1 // 端口个数 -#define BUILTIN_SND_OUT_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define BUILTIN_SND_OUT_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_SND_OUT_SAMPLE_RATE 48000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_48K 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_BCLK 8 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_8_DIV 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_STD_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_MCLK 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_256_FS 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_PCM_DELAY 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 - -// 音频外挂输入设备 -#define EXTERNAL_AI_PORT 1 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_I2S1 枚举 -#define EXTERNAL_AI_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -#define EXTERNAL_AI_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 -#define EXTERNAL_AI_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 -#define EXTERNAL_AI_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_AI_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_AI_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 -#define EXTERNAL_AI_I2S_ATTR_PCM_DELAY_CYCLE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 -#define EXTERNAL_AI_PCM_ATTR_CHANNELS 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 50 // 每秒帧数 , EG810 pcm 20ms 一帧 - -// 音频外挂输出设备 -#define EXTERNAL_SND_OUT_PORT 0x11 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S1 枚举 -#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_SND_OUT_AUDIO_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define EXTERNAL_SND_OUT_PORT_NUM 1 // 端口个数 -#define EXTERNAL_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 12.288M /16k = -#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -#define EXTERNAL_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 -#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 12.288M / 256k = 48 - -// Sleep option -#define CONFIG_PM_TICKLESS_EN YES -#define CONFIG_PM_POWER_GATING_EN YES -#define CONFIG_PM_SLEEP_RECORD_EN YES -#define CONFIG_PM_VETO_TRACK_EN NO -#define CONFIG_PM_SLEEP_INT_EN NO - -// Double-click the key -#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK NO - -// LCD VCI_EN -#define VCI_LCD_GPIO S_AGPIO_L24 -#define DISPLAY_TE_GPIO S_AGPIO_L22 -#define RESET_LCD_GPIO S_AGPIO_L27 - -// TP CONFIG -#define ZTW523_I2C_BUS I2C_BUS_1 -#define ZTW523_INT_GPIO S_AGPIO_R5 -#define ZTW523_RESET_GPIO S_AGPIO_R4 -#define TMA525B_I2C_BUS I2C_BUS_1 -#define TMA525B_INT_GPIO S_AGPIO_R5 -#define TMA525B_RESET_GPIO S_AGPIO_R4 -#define FT6X46_I2C_BUS I2C_BUS_1 -#define FT6X46_INT_GPIO S_AGPIO_R5 -#define FT6X46_RESET_GPIO S_AGPIO_R4 - -/** - * @} - */ -#endif diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c deleted file mode 100644 index d2203a1b0..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c +++ /dev/null @@ -1,491 +0,0 @@ -/** - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n - * - * Description: Provides uart port template \n - * Author: @CompanyNameTag \n - * History: \n - * 2022-06-06, Create file. \n - */ -#include -#include "dma_porting.h" -#include "debug_print.h" -#include "hal_uart_v120.h" -#include "uart_porting.h" -#ifdef SUPPORT_HAL_PINCTRL -#include "pinctrl_porting.h" -#include "pinctrl.h" -#endif -#include "uart.h" -#include "oal_interface.h" -#include "platform_core.h" -#include "securec.h" -#include "soc_osal.h" -#ifdef SUPPORT_CLOCKS_CORE -#include "clocks_core_common.h" -#endif -#if defined(SUPPORT_TEST_COMMON) -#include "test_suite_uart.h" -#endif -#if defined(SUPPORT_AT_CMD) -#include "at_cmd_api.h" -#endif -#ifndef BUILD_APPLICATION_SSB -#include "log_uart.h" -#include "cmsis_os.h" -#endif -#if defined(SW_RTT_DEBUG) -#include "SEGGER_RTT.h" -#endif - -#ifdef BUILD_APPLICATION_SSB -#define UART_RX_BUFFER_SIZE 1 -#else -#define UART_RX_BUFFER_SIZE 56 -#endif - -#define AT_BLE_HEADER_LENGTH 49 -#define AT_CMD_BUFSIZE_MAX 256 -#define UARTILPR 0x20 -#define UARTIBRD 0x24 -#define UARTFBRD 0x28 -#define UARTLCRH 0x2c -#define UARTCR 0x30 -#define UARTIFLS 0x34 -#define UARTIMSC 0x38 -#define UARTDMACR 0x48 -#define UARTRESET (M_CTL_RB_BASE + 0x0168) -#define UARTBUS0 0x1 -#define UARTBUS1 0x0 - -/** - * CUSTOM_UART_RATE = 500000 可以看蓝牙日志 - * 2000000 可以加快下载文件速度 -*/ -#define CUSTOM_UART_RATE 2000000 -typedef struct { - pin_mode_t tx_pin_mode; - pin_mode_t rx_pin_mode; - pin_mode_t cts_pin_mode; - pin_mode_t rts_pin_mode; -} uart_pin_mode_t; - -typedef struct uart_config { - uart_pin_config_t pin; - uart_pin_mode_t pin_mode; - core_irq_t irq_num; - osal_irq_handler irq_func; - uart_rx_callback_t rx_callback; - uart_attr_t line_config; - uart_buffer_config_t buffer_config; -#ifndef BUILD_APPLICATION_SSB - osal_mutex uart_mutex; - bool support_mutex; -#endif -} uart_config_t; - -const uintptr_t g_uart_base_addrs[UART_BUS_MAX_NUM] = { - (uintptr_t)UART0_BASE, - (uintptr_t)UART1_BASE, -}; - -uintptr_t uart_porting_base_addr_get(uart_bus_t bus) -{ - return g_uart_base_addrs[bus]; -} - -static bool g_sw_debug_uart_enabled = false; -uint8_t g_uart0_rx_buffer[UART_RX_BUFFER_SIZE]; -uint8_t g_uart1_rx_buffer[UART_RX_BUFFER_SIZE]; -#if defined(SUPPORT_AT_CMD) -static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining); -#endif - -void log_factory_at_callback(const void *buffer, uint16_t length, bool remaining); - -static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { -#ifdef BUILD_APPLICATION_SSB - /* UART_BUS_0 for debug print */ - { - { - .tx_pin = S_MGPIO19, - .rx_pin = S_MGPIO20, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_0_IRQN, - (osal_irq_handler)irq_uart0_handler, - NULL, - { - .baud_rate = 115200, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart0_rx_buffer, - } - }, - /* UART_BUS_1 for codeloader */ - { - { - .tx_pin = S_MGPIO33, - .rx_pin = S_MGPIO34, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - }, - UART_1_IRQN, - (osal_irq_handler)irq_uart1_handler, - NULL, - { - .baud_rate = 115200, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart1_rx_buffer, - } - } -#else - /** UART_BUS_0, which is used to at cmd and debug print in wstp version, - * and which is used to testustie and debug print in testsuite version - */ - { - { - .tx_pin = S_MGPIO19, - .rx_pin = S_MGPIO20, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_0_IRQN, - (osal_irq_handler)irq_uart0_handler, -#if defined(SUPPORT_TEST_COMMON) - test_suite_uart_rx_callback, -#elif defined(SUPPORT_AT_CMD) - at_cmd_uart_rx_callback, -#else - NULL, -#endif - { - #ifdef ENABLE_SLIP - .baud_rate = 921600, - #else - .baud_rate = CUSTOM_UART_RATE, - #endif - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart0_rx_buffer, - }, - NULL, -#if defined(SUPPORT_TEST_COMMON) - false, -#else - true, -#endif - }, - /* UART_BUS_1 is used to hso uart */ - { - { - .tx_pin = S_MGPIO33, - .rx_pin = S_MGPIO34, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_1_IRQN, - (osal_irq_handler)irq_uart1_handler, -#ifndef FT_SINGLE_UART -#if SYS_DEBUG_MODE_ENABLE == YES - log_uart_rx_callback, -#endif -#else - log_factory_at_callback, -#endif - { - .baud_rate = CUSTOM_UART_RATE, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart1_rx_buffer, - }, - NULL, - false - } -#endif -}; -static uart_recovery_regs_t g_uart_recovery_reg[UART_BUS_MAX_NUMBER] = { 0 }; - -#ifdef FT_SINGLE_UART -void log_factory_at_callback(const void *buffer, uint16_t length, bool remaining) -{ - log_uart_rx_callback(buffer, length, remaining); - if (zdiag_is_enable() == false) { - at_cmd_msg_receive_handler((uint8_t *)buffer, length); - hal_uart_clear_pending(UART_BUS_1); - } -} -#endif - -void uart_port_register_hal_funcs(uart_bus_t bus) -{ - hal_uart_register_funcs(bus, hal_uart_v120_funcs_get()); -} - -void uart_port_unregister_hal_funcs(uart_bus_t bus) -{ - hal_uart_unregister_funcs(bus); -} - -uint32_t uart_port_get_clock_value(uart_bus_t bus) -{ - return uart_get_clock_value(bus); -} - -void uart_port_config_pinmux(uart_bus_t bus) -{ - UNUSED(bus); - uapi_pin_set_mode(g_uart_config[UART_BUS_1].pin.tx_pin, g_uart_config[UART_BUS_1].pin_mode.tx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_1].pin.rx_pin, g_uart_config[UART_BUS_1].pin_mode.rx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_0].pin.tx_pin, g_uart_config[UART_BUS_0].pin_mode.tx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_0].pin.rx_pin, g_uart_config[UART_BUS_0].pin_mode.rx_pin_mode); -} - -void uart_port_register_irq(uart_bus_t bus) -{ - osal_irq_request(g_uart_config[bus].irq_num, g_uart_config[bus].irq_func, NULL, NULL, NULL); - osal_irq_set_priority(g_uart_config[bus].irq_num, irq_prio(g_uart_config[bus].irq_num)); - osal_irq_enable(g_uart_config[bus].irq_num); -} - -void uart_port_unregister_irq(uart_bus_t bus) -{ - osal_irq_disable(g_uart_config[bus].irq_num); -} - -void irq_uart0_handler(void) -{ - hal_uart_irq_handler(UART_BUS_0); -} - -void irq_uart1_handler(void) -{ - hal_uart_irq_handler(UART_BUS_1); -} - -#ifdef SUPPORT_AT_CMD -static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining) -{ - unused(remaining); - #ifndef FT_SINGLE_UART - at_cmd_msg_receive_handler((uint8_t *)buf, buf_len); - #endif - - #ifdef ENABLE_SLIP - slip_receive_handler((uint8_t *)buf, buf_len); - #endif - hal_uart_clear_pending(SW_DEBUG_UART_BUS); -} -#endif - -void uart_config_init(void) -{ - for (uint8_t i = 0; i < UART_BUS_MAX_NUM; i++) { - if ((g_uart_config[i].pin.tx_pin != PIN_NONE) || (g_uart_config[i].pin.rx_pin != PIN_NONE)) { - uapi_uart_init(i, &(g_uart_config[i].pin), &(g_uart_config[i].line_config), NULL, - &(g_uart_config[i].buffer_config)); - } - if (g_uart_config[i].rx_callback != NULL) { - uapi_uart_register_rx_callback(i, UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA_OR_IDLE, - (uint32_t)(g_uart_config[i].buffer_config.rx_buffer_size), - g_uart_config[i].rx_callback); - } - -#ifndef BUILD_APPLICATION_SSB - if (g_uart_config[i].support_mutex == true) { - osal_mutex_init(&(g_uart_config[i].uart_mutex)); - } -#endif - } -} - -#if (defined SW_UART_DEBUG)||(defined FT_SINGLE_UART) -void sw_debug_uart_deinit(void) -{ - uapi_uart_deinit(SW_DEBUG_UART_BUS); -} - -void sw_debug_uart_init(uint32_t baud_rate) -{ - g_uart_config[SW_DEBUG_UART_BUS].line_config.baud_rate = baud_rate; - uapi_uart_init(SW_DEBUG_UART_BUS, &(g_uart_config[SW_DEBUG_UART_BUS].pin), - &(g_uart_config[SW_DEBUG_UART_BUS].line_config), NULL, - &(g_uart_config[SW_DEBUG_UART_BUS].buffer_config)); -} - -void sw_debug_uart_reset_baund(void) -{ - while (uapi_uart_has_pending_transmissions(SW_DEBUG_UART_BUS)) { } - uapi_uart_set_attr(SW_DEBUG_UART_BUS, &g_uart_config[SW_DEBUG_UART_BUS].line_config); -} -#endif - -void print_str(const char *str, ...) -{ - static uint8_t s[1024]; // 1024 means string max length. - va_list args; - int32_t str_len; - - if ((str == NULL) || (strlen(str) == 0)) { - return; - } - - va_start(args, str); - str_len = vsprintf_s((char *)s, sizeof(s), str, args); - va_end(args); - - if (str_len < 0) { - return; - } -#if defined(SW_RTT_DEBUG) - SEGGER_RTT_Write(0, (const char *)s, str_len); -#elif defined(SW_UART_DEBUG) - if (hal_uart_get_funcs(SW_DEBUG_UART_BUS) == NULL) { - return; - } - uapi_uart_write(SW_DEBUG_UART_BUS, (const void *)s, (uint32_t)str_len, 0); -#else -#endif -} - -void hal_uart_clear_pending(uart_bus_t uart) -{ - switch (uart) { - case UART_BUS_0: - int_clear_pending_irq(UART_0_IRQN); - break; - case UART_BUS_1: - int_clear_pending_irq(UART_1_IRQN); - break; - default: - break; - } -} - -#if defined(CONFIG_UART_SUPPORT_DMA) -uint8_t uart_port_get_dma_trans_dest_handshaking(uart_bus_t bus) -{ - switch (bus) { - case UART_BUS_0: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_L_TX; - case UART_BUS_1: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_H0_TX; - default: - return (uint8_t)HAL_DMA_HANDSHAKING_MAX_NUM; - } -} - -uint8_t uart_port_get_dma_trans_src_handshaking(uart_bus_t bus) -{ - switch (bus) { - case UART_BUS_0: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_L_RX; - case UART_BUS_1: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_H0_RX; - default: - return (uint8_t)HAL_DMA_HANDSHAKING_MAX_NUM; - } -} -#endif /* CONFIG_UART_SUPPORT_DMA */ - -uint32_t uart_porting_lock(uart_bus_t bus) -{ -#ifndef BUILD_APPLICATION_SSB - if ((g_uart_config[bus].support_mutex == true) && (osKernelGetState() == osKernelRunning) && - (osal_in_interrupt() == 0)) { - return (uint32_t)osal_mutex_lock_timeout(&(g_uart_config[bus].uart_mutex), OSAL_MUTEX_WAIT_FOREVER); - } -#else - UNUSED(bus); -#endif - return ERRCODE_SUCC; -} - -void uart_porting_unlock(uart_bus_t bus, uint32_t irq_sts) -{ -#ifndef BUILD_APPLICATION_SSB - unused(irq_sts); - if ((g_uart_config[bus].support_mutex == true) && (osKernelGetState() == osKernelRunning) && - (osal_in_interrupt() == 0)) { - osal_mutex_unlock(&(g_uart_config[bus].uart_mutex)); - } -#else - UNUSED(bus); - UNUSED(irq_sts); -#endif -} - -void uart_save_reg(uart_bus_t bus) -{ - uint32_t base = uart_porting_base_addr_get(bus); - g_uart_recovery_reg[bus].uartilpr = readw(base + UARTILPR); - g_uart_recovery_reg[bus].uartibrd = readw(base + UARTIBRD); - g_uart_recovery_reg[bus].uartfbrd = readw(base + UARTFBRD); - g_uart_recovery_reg[bus].uartlcr_h = readw(base + UARTLCRH); - g_uart_recovery_reg[bus].uartcr = readw(base + UARTCR); - g_uart_recovery_reg[bus].uartifls = readw(base + UARTIFLS); - g_uart_recovery_reg[bus].uartimsc = readw(base + UARTIMSC); - g_uart_recovery_reg[bus].uartdmacr = readw(base + UARTDMACR); -} - -void uart_recovery_reg(uart_bus_t bus) -{ - uint16_t uart_bit = UARTBUS0; - if (bus == UART_BUS_0) { - uart_bit = UARTBUS0; - } else if (bus == UART_BUS_1) { - uart_bit = UARTBUS1; - } - reg16_clrbit(UARTRESET, uart_bit); - reg16_setbit(UARTRESET, uart_bit); - uint32_t base = uart_porting_base_addr_get(bus); - writew(base + UARTILPR, g_uart_recovery_reg[bus].uartilpr); - writew(base + UARTIBRD, g_uart_recovery_reg[bus].uartibrd); - writew(base + UARTFBRD, g_uart_recovery_reg[bus].uartfbrd); - writew(base + UARTLCRH, g_uart_recovery_reg[bus].uartlcr_h); - writew(base + UARTCR, g_uart_recovery_reg[bus].uartcr); - writew(base + UARTIFLS, g_uart_recovery_reg[bus].uartifls); - writew(base + UARTIMSC, g_uart_recovery_reg[bus].uartimsc); - writew(base + UARTDMACR, g_uart_recovery_reg[bus].uartdmacr); -} \ No newline at end of file diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_config.c deleted file mode 100644 index d342a8c8e..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_config.c +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd driver configuration. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include -#include "common_def.h" -#include "lcd_config.h" - -#define LCD_EDO_466X466_SCREEN_ID 0x1133 -#define LCD_EDO_454X454_SCREEN_ID 0xf00 -#define LCD_BOE_454X454_SCREEN_ID 0x500 -#define LCD_SH_240X296_SCREEN_ID 0x101 -#define LCD_BOE_194X368_SCREEN_ID 0x4a00 - -const combo_dev_cfg_t g_panel_466x466_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 10, // hsa 10 pixels - .hbp_pixels = 10, // hbp 10 pixels - .hact_pixels = 466, // hact 466 pixels - .hfp_pixels = 10, // hfp 10 pixels - .vsa_lines = 4, // vsa 4 lines - .vbp_lines = 12, // vbp 12 lines - .vact_lines = 466, // vact 466 lines - .vfp_lines = 10, // vfp 10 lines - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; -const combo_dev_cfg_t g_panel_454x454_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 10, // hsa 10 pixels - .hbp_pixels = 10, // hbp 10 pixels - .hact_pixels = 454, // hact 454 pixels - .hfp_pixels = 10, // hfp 10 pixels - .vsa_lines = 4, // vsa 4 lines - .vbp_lines = 12, // vbp 12 lines - .vact_lines = 454, // vact 454 lines - .vfp_lines = 10, // vfp 10 lines - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; - -const combo_dev_cfg_t g_panel_240x296_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 4, // hsa 14 pixels hpw - .hbp_pixels = 11, // hbp 11 pixels HBP - .hact_pixels = 368, // hact 240 pixels HPX - .hfp_pixels = 14, // hfp 14 pixels hfp - .vsa_lines = 2, // vsa 2 lines vpw - .vbp_lines = 6, // vbp 6 lines vbp - .vact_lines = 448, // vact 296 lines vpx - .vfp_lines = 8, // vfp 8 lines vfp - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; - -const combo_dev_cfg_t g_panel_194x368_qspi_config = { - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hact_pixels = 194, // hact 368 pixels - .vact_lines = 368, // vact 368 lines - }, -}; - -/* display off sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_display_off[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ -}; - -/* display off sequence for common lcd */ -const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ - {1, 2, {0x4f, 0x01}, 0}, /* ½ødeepstandby ״̬ */ -}; - -/* sleep in sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_sleep_in[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ -}; - -/* sleep in sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_sleep_out[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x11}, 120}, /* sleep out */ - {1, 1, {0x29}, 0}, /* display on */ -}; - -/* idle in sequence for EDO and BOE 454*454 lcd */ -lcd_cmd_sequ g_common_cmd_idle_in[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x39}, 0}, -}; - -/* idle out sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_idle_out[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x38}, 0}, -}; - -/* te on sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_te_on[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x35}, 0}, -}; - -/* te off sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_te_off[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x34}, 0}, -}; - -/* set brightness sequence for EDO and BOE 454*454 lcd */ -lcd_cmd_sequ g_common_cmd_brightness[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, -}; -const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x3a, 0x77}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {1, 2, {0x53, 0x20}, 0}, - // {1, 2, {0x51, 0xff}, 0}, - {1, 2, {0x63, 0xff}, 0}, - {1, 5, {0x2A, 0x00, 0x06, 0x01, 0xd7}, 0}, - {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xd1}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - - -/* init sequence for EDO 454*454 lcd */ -const lcd_cmd_sequ g_edo_454x454_screen_init_on[] = { - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x30, 0x43}, 0}, /* set LCD frequency to 15HZ */ - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x3a, 0x77}, 0}, - {1, 2, {0x53, 0x20}, 0}, - {1, 2, {0x51, 0xff}, 0}, - {0, 5, {0x2a, 0x00, 0x0e, 0x01, 0xd3}, 0}, - {0, 5, {0x2b, 0x00, 0x00, 0x01, 0xc5}, 0}, - {1, 3, {0x44, 0x01, 0xc5}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - -/* init sequence for BOE 454*454 lcd */ -const lcd_cmd_sequ g_boe_454x454_screen_init_on[] = { - {1, 2, {0xfe, 0x0d}, 0}, - {1, 2, {0x01, 0x00}, 0}, - {1, 2, {0x03, 0x00}, 0}, - {1, 2, {0x1b, 0x00}, 0}, - {1, 2, {0x1d, 0x00}, 0}, - {1, 2, {0x37, 0x00}, 0}, - {1, 2, {0x39, 0x00}, 0}, - {1, 2, {0x52, 0x58}, 0}, - {1, 2, {0x53, 0x00}, 0}, - - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x72, 0x05}, 0}, - {1, 2, {0x73, 0x16}, 0}, - {1, 2, {0x74, 0x0c}, 0}, - - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x18, 0x55}, 0}, - {1, 2, {0xc5, 0x10}, 0}, - {1, 2, {0x72, 0x0e}, 0}, - {1, 2, {0x73, 0x1c}, 0}, - - {1, 2, {0xfe, 0x07}, 0}, - {1, 2, {0x15, 0x04}, 0}, - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x0a, 0xf8}, 0}, - - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {0, 5, {0x2a, 0x00, 0x0c, 0x01, 0xd1}, 0}, - {0, 5, {0x2b, 0x00, 0x00, 0x01, 0xc5}, 0}, - {1, 2, {0x53, 0x20}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - -const lcd_cmd_sequ g_sh_240x296_screen_init_on[] = { - {1, 1, {0x11}, 5}, - {1, 5, {0x2a, 0x00, 0x00, 0x01, 0x6f}, 1}, - {1, 5, {0x2b, 0x00, 0x00, 0x01, 0xbf}, 1}, - {1, 3, {0x44, 0x01, 0xbf}, 1}, - {1, 2, {0x35, 0x00}, 1}, - {1, 2, {0x3a, 0x77}, 1}, - {1, 2, {0x53, 0x20}, 80}, - {1, 1, {0x29}, 0}, -}; - -const lcd_cmd_sequ g_boe_194x368_screen_init_on[] = { - {0, 2, {0xfe, 0x00}, 0}, - {0, 3, {0x44, 0x00, 0xB7}, 0}, - {0, 2, {0x3a, 0x77}, 0}, - {0, 2, {0x51, 0x80}, 0}, - {0, 2, {0x35, 0x0}, 0}, - {0, 5, {0x2a, 0x00, 0x00, 0x00, 0xc1}, 0}, - {0, 1, {0x11}, 120}, - {0, 1, {0x29}, 100}, - {0, 1, {0x39}, 0}, -}; - -const lcd_cmds_sequ g_display_off_cmds = { - .cmd = g_common_cmd_display_off, - .cmd_cnt = array_size(g_common_cmd_display_off), -}; - -const lcd_cmds_sequ g_466x466_display_off_cmds = { - .cmd = g_common_466x466_cmd_display_off, - .cmd_cnt = array_size(g_common_466x466_cmd_display_off), -}; - -const lcd_cmds_sequ g_idle_in_cmds = { - .cmd = g_common_cmd_idle_in, - .cmd_cnt = array_size(g_common_cmd_idle_in), -}; - -const lcd_cmds_sequ g_idle_out_cmds = { - .cmd = g_common_cmd_idle_out, - .cmd_cnt = array_size(g_common_cmd_idle_out), -}; - -const lcd_cmds_sequ g_te_on_cmds = { - .cmd = g_common_cmd_te_on, - .cmd_cnt = array_size(g_common_cmd_te_on), -}; - -const lcd_cmds_sequ g_te_off_cmds = { - .cmd = g_common_cmd_te_off, - .cmd_cnt = array_size(g_common_cmd_te_off), -}; - -const lcd_cmds_sequ g_brightness_cmds = { - .cmd = g_common_cmd_brightness, - .cmd_cnt = array_size(g_common_cmd_brightness), -}; - -const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = { - .cmd = g_edo_466x466_screen_init_on, - .cmd_cnt = array_size(g_edo_466x466_screen_init_on), -}; - -const lcd_cmds_sequ g_edo_454x454_screen_init_on_cmds = { - .cmd = g_edo_454x454_screen_init_on, - .cmd_cnt = array_size(g_edo_454x454_screen_init_on), -}; - -const lcd_cmds_sequ g_boe_454x454_screen_init_on_cmds = { - .cmd = g_boe_454x454_screen_init_on, - .cmd_cnt = array_size(g_boe_454x454_screen_init_on), -}; - -const lcd_cmds_sequ g_sh_240x296_screen_init_on_cmds = { - .cmd = g_sh_240x296_screen_init_on, - .cmd_cnt = array_size(g_sh_240x296_screen_init_on), -}; - -const lcd_cmds_sequ g_boe_194x368_screen_init_on_cmds = { - .cmd = g_boe_194x368_screen_init_on, - .cmd_cnt = array_size(g_boe_194x368_screen_init_on), -}; - -const lcd_cmds_sequ g_sleep_in_cmds = { - .cmd = g_common_cmd_sleep_in, - .cmd_cnt = array_size(g_common_cmd_sleep_in), -}; - -const lcd_cmds_sequ g_sleep_out_cmds = { - .cmd = g_common_cmd_sleep_out, - .cmd_cnt = array_size(g_common_cmd_sleep_out), -}; - -const lcd_drv_cfg g_lcd_driver_ops[] = { - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_466x466_60_config, - .x_start = 0x6, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_EDO_466X466_SCREEN_ID, - .display_on_cmds = &g_edo_466x466_screen_init_on_cmds, - .display_off_cmds = &g_466x466_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, - .x_start = 0xe, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_EDO_454X454_SCREEN_ID, - .display_on_cmds = &g_edo_454x454_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, - .x_start = 0xc, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_BOE_454X454_SCREEN_ID, - .display_on_cmds = &g_boe_454x454_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_240x296_60_config, - .x_start = 0, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_SH_240X296_SCREEN_ID, - .display_on_cmds = &g_sh_240x296_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0xda, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_QSPI, - .bus_cfg = &g_panel_194x368_qspi_config, - .x_start = 0, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_BOE_194X368_SCREEN_ID, - .display_on_cmds = &g_boe_194x368_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - } -}; - -lcd_drv_cfg *lcd_get_driver_ops(void) -{ - return g_lcd_driver_ops; -} - -uint32_t lcd_get_ops_num(void) -{ - return array_size(g_lcd_driver_ops); -} - -combo_dev_cfg_t *lcd_get_bus_escape_config(void) -{ - return g_lcd_driver_ops[0].bus_cfg; -} - -lcd_drv_cfg *lcd_get_driver_config(uint32_t id) -{ - uint32_t i; - if (id == 0) { - return NULL; - } - - for (i = 0; i < array_size(g_lcd_driver_ops); i++) { - if (g_lcd_driver_ops[i].lcd_id == id) { - return &(g_lcd_driver_ops[i]); - } - } - - return NULL; -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_private.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_private.c deleted file mode 100644 index ea251e016..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/lcd_private.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd private interface. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include "lcd_private.h" -#include "tcxo.h" -#include "chip_io.h" -#include "platform_core.h" -#include "gpio.h" -#include "pinctrl_porting.h" -#include "product.h" -#include "pinctrl.h" -static void lcd_drv_power_on(void) -{ -#ifndef QSPI_DISPLAY - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_HIGH); -#endif - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_HIGH); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ -} -#define USE_OUTPUT_CTL 1 -static void lcd_drv_power_off(void) -{ -#if USE_OUTPUT_CTL - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - #ifndef QSPI_DISPLAY - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO); - int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO); - printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -#else - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿ - uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN); - #ifndef QSPI_DISPLAY - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_INPUT); - uapi_pin_set_pull(VCI_LCD_GPIO, PIN_PULL_DOWN); - #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - int resetvalue = uapi_gpio_get_val(RESET_LCD_GPIO); - int lcd_envalue = uapi_gpio_get_val(VCI_LCD_GPIO); - printf("Input RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -#endif - -} - -static lcd_drv_private g_lcd_private_api = { - .power_on = lcd_drv_power_on, - .power_off = lcd_drv_power_off, -}; - -lcd_drv_private *lcd_drv_get_private_api(void) -{ - return &g_lcd_private_api; -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c deleted file mode 100644 index 56f8542af..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c +++ /dev/null @@ -1,767 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd driver. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include "soc_lcd_api.h" -#include -#include "soc_errno.h" -#include "soc_osal.h" -#include "soc_mipi_tx.h" -#include "lcd_config.h" -#include "lcd_bus.h" -#include "lcd_mipi.h" -#include "lcd_qspi.h" -#include "lcd_common.h" -#include "lcd_private.h" -#include "pinctrl_porting.h" - -typedef struct lcd_attr { - bool info_register; /* 注册指定屏幕组件标志 */ - bool is_inited; /* LCD组件初始化标志 */ - lcd_type screen_type; /* LCD屏类型 */ - uint32_t lcd_id; /* LCD ID号 */ - lcd_drv_cfg *lcd_cfg; /* LCD参数 */ - uint8_t brightness; /* 显示亮度参数 */ - ext_lcd_status status; /* LCD状态标志 */ - osal_mutex lcd_mutex; /* LCD驱动多线程调用保护信号量 */ - lcd_bus_api *bus_api; /* 总线接口 */ - lcd_drv_common *common_api; /* LCD公共接口 */ - lcd_drv_private *private_api; /* LCD差异化接口 */ -} lcd_attr; - -lcd_attr g_lcd_info = {0}; -volatile bool g_idle_before_sleep = false; /* false: normal display, true: idle mode */ -static bool g_lcd_on_flag = false; - -bool lcd_get_status(void) -{ - return g_lcd_on_flag; -} - -void lcd_set_status(bool lcd_on) -{ - g_lcd_on_flag = lcd_on; -} - -static ext_errno lcd_lock_init(void) -{ - ext_errno ret; - if (g_lcd_info.lcd_mutex.mutex != NULL) { - return EXT_ERR_SUCCESS; - } - - ret = osal_mutex_init(&(g_lcd_info.lcd_mutex)); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.lcd_mutex.mutex = NULL; - return ret; - } - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return EXT_ERR_LCD_MUTEX_INIT_FAIL; - } - return EXT_ERR_SUCCESS; -} - -static void lcd_lock_deinit(void) -{ - if (g_lcd_info.lcd_mutex.mutex != NULL) { - osal_mutex_destroy(&(g_lcd_info.lcd_mutex)); - } - - g_lcd_info.lcd_mutex.mutex = NULL; -} - -static void lcd_lock(void) -{ - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return; - } - osal_mutex_lock(&(g_lcd_info.lcd_mutex)); -} - -static void lcd_unlock(void) -{ - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return; - } - osal_mutex_unlock(&(g_lcd_info.lcd_mutex)); -} - -static void lcd_set_display_info(void) -{ - if (g_lcd_info.bus_api->bus_register_panel_info != NULL) { - g_lcd_info.bus_api->bus_register_panel_info(g_lcd_info.lcd_cfg->x_start, g_lcd_info.lcd_cfg->y_start, - g_lcd_info.lcd_cfg->fps); - } -} - -static ext_errno lcd_auto_adapt_init_prepare(void) -{ - ext_errno ret; - combo_dev_cfg_t *escape_config = lcd_get_bus_escape_config(); - - /* init with default parameter */ - ret = g_lcd_info.bus_api->bus_init(escape_config); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("default bus_init fail, ret = %X\r\n", ret); - return ret; - } - - ret = g_lcd_info.common_api->get_chip_id(&g_lcd_info.lcd_id); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("get_chip_id fail, ret = %X\r\n", ret); - } - - if (g_lcd_info.bus_api->bus_deinit() != EXT_ERR_SUCCESS) { - lcd_err("bus deinit fail\r\n"); - } - - return ret; -} - -static ext_errno lcd_assigned_id_check(void) -{ - if (g_lcd_info.common_api->chip_id_check == NULL) { - return EXT_ERR_LCD_INVALID_NULL_POINTER; - } - - return g_lcd_info.common_api->chip_id_check(); -} - -static ext_errno lcd_get_ops(void) -{ - ext_errno ret = 0; - g_lcd_info.bus_api = lcd_get_bus_api(); - g_lcd_info.common_api = lcd_drv_get_common_api(); - g_lcd_info.private_api = lcd_drv_get_private_api(); - - if (g_lcd_info.bus_api == NULL || g_lcd_info.common_api == NULL || g_lcd_info.private_api == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - - if (g_lcd_info.private_api->power_on == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - g_lcd_info.private_api->power_on(); - - if (!g_lcd_info.info_register) { - ret = lcd_auto_adapt_init_prepare(); - if (ret != EXT_ERR_SUCCESS) { - goto fail; - } - } - - g_lcd_info.lcd_cfg = g_lcd_info.common_api->get_lcd_config(); - if (g_lcd_info.lcd_cfg == NULL) { - lcd_err("lcd_cfg empty!\r\n"); - goto fail; - } - ret = g_lcd_info.bus_api->bus_init(g_lcd_info.lcd_cfg->bus_cfg); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_init fail, ret = %X\r\n", ret); - return ret; - } - - if (g_lcd_info.info_register) { - ret = lcd_assigned_id_check(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("chip id check error, ret = 0x%x\r\n", ret); - g_lcd_info.bus_api->bus_deinit(); - goto fail; - } - } - - if (g_lcd_info.brightness == 0) - g_lcd_info.brightness = DEFAULT_BRIGHTNESS; - - return EXT_ERR_SUCCESS; -fail: - - if (g_lcd_info.private_api->power_off != NULL) { - g_lcd_info.private_api->power_off(); - } - g_lcd_info.bus_api = NULL; - g_lcd_info.common_api = NULL; - g_lcd_info.private_api = NULL; - return ret; -} - -ext_lcd_status uapi_lcd_get_status(void) -{ - return g_lcd_info.status; -} - -bool uapi_is_lcd_connect(void) -{ - return g_lcd_info.is_inited; -} - -static ext_errno lcd_display_on(void) -{ - ext_errno ret; - uint32_t retry_count = 3; - lcd_lock(); - - for (; retry_count > 0; retry_count--) { - ret = g_lcd_info.common_api->display_on(g_lcd_info.brightness); - if (ret == EXT_ERR_SUCCESS) { - ret = g_lcd_info.bus_api->bus_enable(); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - - g_lcd_info.private_api->power_off(); - g_lcd_info.private_api->power_on(); - - g_lcd_info.bus_api->bus_deinit(); - ret = g_lcd_info.bus_api->bus_init(g_lcd_info.lcd_cfg->bus_cfg); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.private_api->power_off(); - continue; - } - } - if (retry_count > 0) { - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - g_lcd_info.status.te_status = LCD_TE_ON; - } - - lcd_unlock(); - - return ret; -} - -ext_errno uapi_lcd_display_on(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_NORMAL_DISPLAY) { - return EXT_ERR_SUCCESS; - } - - ret = lcd_display_on(); - - return ret; -} - -ext_errno uapi_lcd_display_off(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_DISPLAY_OFF) { - return EXT_ERR_SUCCESS; - } - - ret = g_lcd_info.common_api->display_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("display_off fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - - g_lcd_info.status.disp_status = LCD_DISPLAY_OFF; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_sleep_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_SLEEP_MODE) { - return EXT_ERR_SUCCESS; - } else if (g_lcd_info.status.disp_status == LCD_DISPLAY_OFF) { - return EXT_ERR_LCD_NOT_SUPPORT_OFF_TO_SLEEP; - } - - if (g_lcd_info.status.disp_status == LCD_IDLE_MODE) { - g_idle_before_sleep = true; - } else { - g_idle_before_sleep = false; - } - - ret = g_lcd_info.common_api->enter_sleep_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enter sleep mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - return ret; - } - g_lcd_info.status.disp_status = LCD_SLEEP_MODE; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_exit_sleep_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status != LCD_SLEEP_MODE) { - return EXT_ERR_LCD_NOT_IN_SLEEP_MODE; - } - - ret = g_lcd_info.common_api->exit_sleep_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("exit sleep mode fail, ret = %X\r\n", ret); - return ret; - } - - lcd_lock(); - ret = g_lcd_info.bus_api->bus_enable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enable bus fail when exit sleep, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - - if (g_idle_before_sleep) { - g_lcd_info.status.disp_status = LCD_IDLE_MODE; - } else { - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - } - - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_idle_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_IDLE_MODE) { - return EXT_ERR_SUCCESS; - } - if (g_lcd_info.status.disp_status != LCD_NORMAL_DISPLAY) { - return EXT_ERR_LCD_NOT_SUPPORT_CUR_TO_IDLE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->enter_idle_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enter_idle_mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.disp_status = LCD_IDLE_MODE; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_exit_idle_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status != LCD_IDLE_MODE) { - return EXT_ERR_LCD_NOT_IN_IDLE_MODE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->exit_idle_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("exit_idle_mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -static ext_errno lcd_te_param_check(void) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.screen_type == VIDEO_LCD) { - return EXT_ERR_LCD_VIDEO_SCREEN_NOT_SUPPORT_TE; - } - if (g_lcd_info.status.disp_status != LCD_NORMAL_DISPLAY && g_lcd_info.status.disp_status != LCD_IDLE_MODE) { - return EXT_ERR_LCD_INVALID_TE_ON_MODE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_te_on(void) -{ - ext_errno ret = lcd_te_param_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - if (g_lcd_info.status.te_status == LCD_TE_ON) { - return EXT_ERR_SUCCESS; - } - - lcd_lock(); - ret = g_lcd_info.common_api->te_on(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("te_on fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.te_status = LCD_TE_ON; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_te_off(void) -{ - ext_errno ret = lcd_te_param_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - if (g_lcd_info.status.te_status == LCD_TE_OFF) { - return EXT_ERR_SUCCESS; - } - - lcd_lock(); - ret = g_lcd_info.common_api->te_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("te_off fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.te_status = LCD_TE_OFF; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_set_brightness(uint16_t value) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status > LCD_IDLE_MODE) { - return EXT_ERR_LCD_IN_DISPLAY_OFF_STATE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->set_brightness(value); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("set_brightness fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.brightness = (uint8_t)value; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_get_brightness(uint16_t *value) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - *value = g_lcd_info.brightness; - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_write_reg(lcd_cmd_sequ *cmds, uint32_t cmd_count) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - - if (cmds == NULL || cmd_count == 0) { - return EXT_ERR_LCD_INVALID_WRITE_CMD; - } - lcd_lock(); - ret = g_lcd_info.common_api->write(cmds, cmd_count); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("write reg fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_read_reg(uint8_t cmd, uint8_t *buff, uint8_t buff_len) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status > LCD_SLEEP_MODE) { - return EXT_ERR_LCD_IN_DISPLAY_OFF_STATE; - } - if (buff == NULL || buff_len == 0) { - return EXT_ERR_LCD_INVALID_READ_CMD; - } - lcd_lock(); - ret = g_lcd_info.common_api->read(cmd, buff, buff_len); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("read reg fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_init(void) -{ - if (g_lcd_info.is_inited) { - return EXT_ERR_SUCCESS; - } - - ext_errno ret = lcd_get_ops(); - if (ret != EXT_ERR_SUCCESS && ret != EXT_ERR_MIPI_ALREADY_INIT) { - lcd_err("lcd_get_ops fail, ret = %X\r\n", ret); - return ret; - } - - ret = lcd_lock_init(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("lcd_lock_init fail, ret = %X\r\n", ret); - return ret; - } - - lcd_set_display_info(); - - ret = lcd_display_on(); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.bus_api->bus_deinit(); - lcd_lock_deinit(); - lcd_err("lcd_display_on fail, ret = %X\r\n", ret); - return ret; - } - - g_lcd_info.is_inited = true; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_deinit(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_SUCCESS; - } - - if (g_lcd_info.status.disp_status != LCD_DISPLAY_OFF) { - ret = g_lcd_info.common_api->display_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("display_off fail, ret = %X\r\n", ret); - } - - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - } - } - lcd_lock(); - ret = g_lcd_info.bus_api->bus_deinit(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_deinit fail, ret = %X\r\n", ret); - } - g_lcd_info.private_api->power_off(); - - g_lcd_info.status.disp_status = LCD_DISPLAY_OFF; - g_lcd_info.is_inited = false; - lcd_unlock(); - - lcd_lock_deinit(); - - return EXT_ERR_SUCCESS; -} - -static ext_errno lcd_lp_ctrl_check(void) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - - if (g_lcd_info.bus_api == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - - if (g_lcd_info.bus_api->bus_lp_ctrl == NULL) { - return EXT_ERR_LCD_NOT_SUPPORT_FUNC; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_sdlp(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_ENTER_SDLP); -} - -ext_errno uapi_lcd_exit_sdlp(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_EXIT_SDLP); -} - -ext_errno uapi_lcd_exit_ulps(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_EXIT_ULPS); -} - -ext_errno uapi_lcd_clear_exit_ulps(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_CLEAR_EXIT_ULPS); -} - -static void lcd_register_qspi_bus(void) -{ - lcd_bus_api qspi_bus_api = {0}; - - qspi_bus_api.bus_init = lcd_qspi_init; - qspi_bus_api.bus_deinit = lcd_qspi_deinit; - qspi_bus_api.bus_enable = lcd_qspi_enable; - qspi_bus_api.bus_disable = lcd_qspi_disable; - qspi_bus_api.bus_write_cmd = lcd_qspi_write_cmd; - qspi_bus_api.bus_read_cmd = lcd_qspi_read_cmd; - qspi_bus_api.bus_send_frame = lcd_qspi_send_frame; - qspi_bus_api.bus_suspend = lcd_qspi_suspend; - qspi_bus_api.bus_resume = lcd_qspi_resume; - qspi_bus_api.bus_register_te_isr = lcd_qspi_register_te_isr; - - lcd_bus_register_api(&qspi_bus_api, BUS_DISPLAY_QSPI); -} - -static void lcd_register_mipi_bus(void) -{ - lcd_bus_api mipi_bus_api = {0}; - - mipi_bus_api.bus_init = mipi_bus_init, - mipi_bus_api.bus_deinit = mipi_bus_deinit, - mipi_bus_api.bus_enable = mipi_bus_enable, - mipi_bus_api.bus_disable = mipi_bus_disable, - mipi_bus_api.bus_write_cmd = mipi_bus_write, - mipi_bus_api.bus_read_cmd = mipi_bus_read, - mipi_bus_api.bus_lp_ctrl = mipi_bus_lp_ctrl, - mipi_bus_api.bus_register_panel_info = mipi_bus_register_panel_info, - mipi_bus_api.bus_get_panel_timing = mipi_bus_get_panel_timing, - mipi_bus_api.bus_get_partial_display_cmd = mipi_bus_get_partial_display_cmd, - mipi_bus_api.bus_update_panel = mipi_bus_update_panel, - mipi_bus_api.bus_refresh_area = mipi_bus_refresh_area, - mipi_bus_api.bus_suspend = mipi_bus_suspend, - mipi_bus_api.bus_resume = mipi_bus_resume, - lcd_bus_register_api(&mipi_bus_api, BUS_DISPLAY_MIPI); -} - -static ext_errno lcd_info_check(const lcd_drv_cfg *info) -{ - if (info == NULL) { - return EXT_ERR_LCD_INVALID_NULL_POINTER; - } - - if ((info->bus_type != BUS_DISPLAY_MIPI) && (info->bus_type != BUS_DISPLAY_QSPI)) { - return EXT_ERR_LCD_INVALID_SCREEN_OPS; - } - - if (info->lcd_id == 0) { - return EXT_ERR_LCD_INVALID_CHIP_ID; - } - - if ((info->display_on_cmds == NULL) || (info->display_off_cmds == NULL)) { - return EXT_ERR_LCD_INVALID_WRITE_CMD; - } - - if (info->lcd_id_info.read_len == 0) { - return EXT_ERR_LCD_INVALID_READ_CMD; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_info_register(lcd_drv_cfg *info) -{ - ext_errno ret; - - ret = lcd_info_check(info); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - if (g_lcd_info.is_inited) { - return EXT_ERR_LCD_INIT_ALREADY; - } - - if (g_lcd_info.common_api == NULL) { - g_lcd_info.common_api = lcd_drv_get_common_api(); - } - - if (g_lcd_info.common_api->set_lcd_config == NULL) { - return EXT_ERR_LCD_NOT_SUPPORT_FUNC; - } - - ret = g_lcd_info.common_api->set_lcd_config(info); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - if (info->bus_type == BUS_DISPLAY_MIPI) { - lcd_register_mipi_bus(); - } else { - lcd_register_qspi_bus(); - } - - g_lcd_info.info_register = true; - - return EXT_ERR_SUCCESS; -} diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt deleted file mode 100644 index 6971096df..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt +++ /dev/null @@ -1,92 +0,0 @@ -#=============================================================================== -# @brief cmake file -# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. -#=============================================================================== -set(COMPONENT_NAME "touch") - -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/touch_screen_drv.c - ${CMAKE_CURRENT_SOURCE_DIR}/touch_screen_queue1.c -) - -if("TPTYPE_TMA525B" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_touch1.c -) -elseif("TPTYPE_ZTW523" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c -) -elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_touch1.c -) -else() -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c -) -endif() - -if("TPTYPE_TMA525B" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -elseif("TPTYPE_ZTW523" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -else() -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -endif() - -set(PRIVATE_HEADER -) - -set(PRIVATE_DEFINES -) - -set(PUBLIC_DEFINES -) - -# use this when you want to add ccflags like -include xxx -set(COMPONENT_PUBLIC_CCFLAGS -) - -set(COMPONENT_CCFLAGS - -Wno-incompatible-function-pointer-types - -Wno-unused-function -) - -set(WHOLE_LINK - true -) - -set(MAIN_COMPONENT - false -) - -build_component() - -install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*") diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c deleted file mode 100644 index 883324bad..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "ft6x46_ctrl.h" -#include "securec.h" -#include "cmsis_os2.h" -#include "soc_osal.h" -#include "common_def.h" -#include "pinctrl.h" -#include "chip_io.h" -#include "tcxo.h" -#include "time.h" -#include "i2c.h" -#include "gpio.h" -#include "hal_gpio.h" -#include "hal_i2c.h" -#include "touch_screen_def.h" - -bool g_host_dev_init_flag = TD_FALSE; -ft6x46_ctrl_attr g_ctrl_attr; -touch_callback g_ft6x46_callback = NULL; - -static void ft6x46_gpio_isr_handle(pin_t pin, uintptr_t param) -{ - unused(pin); - unused(param); - if (g_ft6x46_callback != NULL) { - g_ft6x46_callback(); - } -} - -ext_errno ft6x46_register_handle(const ft6x46_ctrl_ops *peri_data, touch_callback func) -{ - unused(peri_data); - ext_errno ret; - - - //tp_err("ft6x46_register_handle*****************888888888"); - g_ft6x46_callback = func; - /* register int io interrupt handler */ - uapi_gpio_init(); - gpio_select_core(FT6X46_INT_GPIO, CORE); - uapi_gpio_set_dir(FT6X46_INT_GPIO, GPIO_DIRECTION_INPUT); - ret = uapi_gpio_register_isr_func(FT6X46_INT_GPIO, GPIO_INTERRUPT_FALLING_EDGE, ft6x46_gpio_isr_handle); - if (ret != 0) { - tp_err("ft6x46 int callback register fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_unregister_handle(const ft6x46_ctrl_ops *peri_data) -{ - unused(peri_data); - ext_errno ret; - - /* unregister interrupt handler */ - uapi_gpio_unregister_isr_func(FT6X46_INT_GPIO); - g_ft6x46_callback = NULL; - - return EXT_ERR_SUCCESS; -} - -static ext_errno tp_peripheral_init_status_check(void) -{ - if (g_host_dev_init_flag != TD_TRUE) { - return EXT_ERR_TP_DEV_INFO_NOT_REGISTER; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_ctrl_attr_check(const ft6x46_ctrl_attr *device_attr) -{ - unused(device_attr); - return EXT_ERR_SUCCESS; -} - -static ext_errno tp_i2c_rd_wr_param_check(const uint8_t *data_buf, uint32_t data_len) -{ - unused(data_buf); - unused(data_len); - ext_errno ret = tp_peripheral_init_status_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_REG_BYTE_LEN]; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data read param invalid! ret=0x%x", ret); - return ret; - } - - memset_s(data_buf, data_len, 0, data_len); - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = reg_addr & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (reg_addr >> OFFSET_8_BITS) & 0xff; - - data.send_buf = ®_addr; - data.send_len = FT6X46_CMD_SEND_LEN; - data.receive_buf = data_buf; - data.receive_len = data_len; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_writeread(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data read fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - - -ext_errno tp_ft6x46_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_REG_BYTE_LEN]; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data read param invalid! ret=0x%x", ret); - return ret; - } - - memset_s(data_buf, data_len, 0, data_len); - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = reg_addr & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (reg_addr >> OFFSET_8_BITS) & 0xff; - - data.send_buf = ®_addr; - data.send_len = sizeof(reg_addr); - data.receive_buf = data_buf; - data.receive_len = data_len; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_writeread(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data read fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_cmd_write(uint8_t cmd) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_CMD_SEND_LEN]; - - ret = tp_peripheral_init_status_check(); - if (ret != 0) { - tp_err("host peripheral not init! ret=0x%x", ret); - return ret; - } - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = cmd & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (cmd >> OFFSET_8_BITS) & 0xff; - - data.send_buf = &cmd; - data.send_len = FT6X46_CMD_SEND_LEN; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - uint8_t *write_data = NULL; - uint16_t send_len; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data write param invalid! ret=0x%x", ret); - return ret; - } - - send_len = data_len + sizeof(uint8_t); - - write_data = (uint8_t *)osal_kmalloc(send_len, OSAL_GFP_KERNEL); - if (write_data == NULL) { - tp_err("tp send buff malloc fail!"); - return EXT_ERR_MALLOC_FAILURE; - } - - write_data[FT6X46_I2C_SEND_INDEX0] = reg_addr; - ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); - if (ret != EOK) { - tp_err("tp send_buf content copy fail! ret=0x%x", ret); - return ret; - } - - data.send_buf = write_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - return ret; - } - - tp_mem_free(write_data); - return EXT_ERR_SUCCESS; -} - -ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - uint8_t *write_data = NULL; - uint16_t send_len; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data write param invalid! ret=0x%x", ret); - return ret; - } - - send_len = data_len + sizeof(uint8_t); - - write_data = (uint8_t *)osal_kmalloc(send_len, OSAL_GFP_KERNEL); - if (write_data == NULL) { - tp_err("tp send buff malloc fail!"); - return EXT_ERR_MALLOC_FAILURE; - } - - write_data[FT6X46_I2C_SEND_INDEX0] = reg_addr; - ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); - if (ret != EOK) { - tp_err("tp send_buf content copy fail! ret=0x%x", ret); - return ret; - } - - data.send_buf = write_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - return ret; - } - - tp_mem_free(write_data); - return EXT_ERR_SUCCESS; -} - -ext_errno tp_ft6x46_i2c_data_write_reg(uint8_t addr, uint8_t val) -{ - return tp_ft6x46_i2c_data_write(addr, &val, 1); -} - - -ext_errno ft6x46_host_peripheral_init(ft6x46_ctrl_attr *attr) -{ - ext_errno ret; - - if (attr == NULL) { - tp_err("ft6x46 communication interface cfg is empty!"); - return EXT_ERR_FAILURE; - } - ret = ft6x46_ctrl_attr_check(attr); - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp invalid dev attr! ret=0x%x", ret); - return ret; - } - - ret = (ext_errno)memcpy_s(&(g_ctrl_attr), sizeof(ft6x46_ctrl_attr), attr, sizeof(ft6x46_ctrl_attr)); - if (ret != EOK) { - tp_err("tp attr content copy fail! ret=0x%x", ret); - return ret; - } - - /* init i2c */ - errcode_t result; - result = uapi_i2c_master_init(FT6X46_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ - if (result != EXT_ERR_SUCCESS) { - tp_err("tp i2c init fail! ret=0x%x", result); - return EXT_ERR_SUCCESS; - } - - tp_print("TOUCH:i2c_id = %d i2c_speed = %d slave_addr = 0x%x \r\n", - g_ctrl_attr.i2c_id, g_ctrl_attr.i2c_speed, FT6X46_I2C_ADDR); - g_host_dev_init_flag = true; - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_host_init_sample(void) -{ - ext_errno ret; - PRINT("**********ft6x46_host_init_sample**********\r\n"); - ret = ft6x46_host_peripheral_init(&g_ctrl_attr); - ret = ft6x46_init(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp host init fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_reset(void) -{ - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_OUTPUT); - /* Config Gpio For Reset Pin */ - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* reset high delay 20ms */ - osDelay(20); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_LOW); - /* reset low delay 100ms */ - osDelay(100); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* reset high delay 200ms */ - osDelay(200); - return EXT_ERR_SUCCESS; -} - -void ft6x46_resume_reset(void) -{ - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_OUTPUT); - /* drvdata is global variable point and no need to handle null */ - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - osDelay(1); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_LOW); - /* delay 10ms */ - osDelay(10); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* delay 100ms */ - osDelay(200); - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_INPUT); -} - diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h deleted file mode 100644 index ac23c5fce..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#ifndef FT6X46_CTRL_H -#define FT6X46_CTRL_H - -#include "stdio.h" -#include "debug_print.h" -#include "stdint.h" -#include "product.h" -#include "td_base.h" -#include "platform_core.h" -#include "ft6x46_touch1.h" - -/* host peripheral definitions */ - -//#define FT6X46_I2C_ADDR 0x20 -#define FT6X46_I2C_ADDR 0x38 -#define FT6X46_I2C_SPEED I2C_SPEED_MODE_SS -#define FT6X46_REG_BYTE_LEN 2 -#define OFFSET_8_BITS 8 -#define FT6X46_REG_WRITE_LEN 4 - -#define FT6X46_CMD_SEND_LEN 2 -// #define FT6X46_CMD_SEND_LEN 1 - -#define FT6X46_REG_DATA_LEN 2 -#define FT6X46_I2C_TIME_MAX 3 - -#define FT6X46_I2C_SEND_INDEX0 0 -#define FT6X46_I2C_SEND_INDEX1 1 -#define FT6X46_I2C_SEND_INDEX2 2 -#define FT6X46_I2C_SEND_INDEX3 3 - - -#define FTS_REG_POWER_MODE 0xA5 - - -typedef struct { - uint32_t int_gpio; - uint32_t reset_gpio; - i2c_bus_t i2c_id; - uint32_t i2c_speed; -} ft6x46_ctrl_attr; - -typedef ext_errno (*ft6x46_bus_init)(ft6x46_ctrl_attr *attr); - -typedef struct { - ft6x46_ctrl_attr attr; - ft6x46_bus_init bus_init; -} ft6x46_ctrl_ops; - -ext_errno ft6x46_host_peripheral_init(ft6x46_ctrl_attr *attr); -ext_errno ft6x46_register_handle(const ft6x46_ctrl_ops *peri_data, touch_callback func); -ext_errno ft6x46_unregister_handle(const ft6x46_ctrl_ops *peri_data); -ext_errno ft6x46_reset(void); -void ft6x46_resume_reset(void); -void ft6x46_delay(uint32_t ms); - -ext_errno tp_ft6x46_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len); -ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len); -ext_errno tp_ft6x46_i2c_data_write_reg(uint8_t addr, uint8_t val); - -#endif diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c deleted file mode 100644 index 928c58eac..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "ft6x46_drv1.h" -#include "touch_screen_def.h" -#include "ft6x46_ctrl.h" -#include "i2c.h" -#include "debug_print.h" -#include "hal_i2c.h" - -static ext_errno ft6x46_drv_init(ft6x46_ctrl_ops *config) -{ - ext_errno ret; - ft6x46_ctrl_ops *ops = config; - - tp_err("ft6x46_drv_init!11111"); - - if (ops == NULL) { - tp_err("peripheral ops is empty!"); - return EXT_ERR_FAILURE; - } - - if (ops->bus_init == NULL) { - tp_err("peripheral bus_init func is empty!"); - return EXT_ERR_FAILURE; - } - - ret = ops->bus_init(&(ops->attr)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("ZTW523 bus_init fail! ret = 0x%x", ret); - return ret; - } - - ret = ft6x46_init(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("ZTW523 init fail! ret = 0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_deinit(void) -{ - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_get_info(uint8_t *data, uint8_t data_len) -{ - return ft6x46_irq_callback(data, data_len); -} - -static ext_errno ft6x46_drv_suspend(void) -{ - //return ft6x46_set_power_mode(MC_TP_SUSPEND_SCAN); - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_resume(void) -{ - //return ft6x46_set_power_mode(MC_TP_RESUME_SCAN); - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_sleep(void) -{ - //return ft6x46_set_power_mode(MC_TP_SLEEP_WORK_MODE); - return EXT_ERR_SUCCESS; -} - -touch_peripheral_api g_ft6x46_api = { - .touch_init = ft6x46_drv_init, - .touch_deinit = ft6x46_drv_deinit, - .touch_get_tpinfo = ft6x46_drv_get_info, - .touch_suspend = ft6x46_drv_suspend, - .touch_resume = ft6x46_drv_resume, - .touch_sleep = ft6x46_drv_sleep, - .touch_bus_init = ft6x46_host_peripheral_init, - .register_callback = ft6x46_register_handle, - .unregister_callback = ft6x46_unregister_handle, -}; - -ft6x46_ctrl_ops g_ft6x46_ctrl = { - .attr = { - .int_gpio = FT6X46_INT_GPIO, - .i2c_id = FT6X46_I2C_BUS, - .i2c_speed = I2C_SPEED_MODE_SS, - }, - .bus_init = (ft6x46_bus_init)ft6x46_host_peripheral_init, -}; - -void *touch_screen_get_api(void) -{ - return ((void *)&g_ft6x46_api); -} - -void *touch_screen_get_peri_attr(void) -{ - return ((void *)&g_ft6x46_ctrl); -} \ No newline at end of file diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h deleted file mode 100644 index c26f3a4f0..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#ifndef FT6X46_DRV1_H -#define FT6X46_DRV1_H - -void *touch_screen_get_api(void); -void *touch_screen_get_peri_attr(void); - -#endif \ No newline at end of file diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c deleted file mode 100644 index 0d2f4c780..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c +++ /dev/null @@ -1,975 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ft6x46 touch driver. - * Author: @CompanyNameTag - * Create: 2021-05-29 - */ - -#include "ft6x46_touch1.h" -#include "time.h" -#include "soc_osal.h" -#include "osal_timer.h" -#include "osal_mutex.h" -#include "securec.h" -#include "ft6x46_ctrl.h" -#include "tcxo.h" -#include "cmsis_os2.h" -#include "common_def.h" - -#ifdef __cplusplus -#if __cplusplus -extern "C" { -#endif -#endif - -ft6x46_drv_data g_ft6x46_drv = { - .chip_status = FT6X46_NOT_READY, - .ops_mux = {0}, - .int_mask = FT6X46_INT_MASK, - .work_status = FT6X46_WORK_INVALID, - .fw_upgrade_flag = TD_FALSE, - .gesture_wakeup = TD_FALSE, - .host_dev_init_flag = TD_FALSE, - .chip_info = FT6X46_DEVICE_INFO, - .p_void = NULL, -}; -static ext_errno ft6x46_config(void); -static void ft6x46_set_irq_mode(ft6x46_irq_status irq_status, uint16_t irq_mask) -{ - unused(irq_mask); - ext_errno ret; - uint16_t reg_write = 0; - - tp_print("TOUCH:set irq mode %d", irq_status); - - switch (irq_status) { - case FT6X46_IRQ_DISABLE: - /* Write Int Register */ - reg_write = FT6X46_INT_NONE; - // ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:set irq mode disable 0x%x", ret); - // return; - // } - break; - - case FT6X46_IRQ_ENABLE: - /* Write Int Register */ - reg_write = FT6X46_INT_MASK; - // ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:set irq mode enable 0x%x", ret); - // return; - // } - break; - - default: - tp_err("TOUCH:not support irq mode 0x%x", irq_status); - break; - } - - return; -} - -static ext_errno ft6x46_parse_gesture_input(void) -{ - ext_errno ret; - uint16_t gesture_val; - uint16_t reg_read; - uint16_t reg_write; - - reg_read = 0; - // ret = tp_i2c_data_read(FT6X46_GESTURE_WAKEUP_REG, (uint8_t *)®_read, FT6X46_DATA_LEN); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:parse gesture input read fail 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - gesture_val = reg_read; - tp_print("TOUCH:parse gesture input ok 0x%x", reg_read); - - reg_write = 0; - // ret = tp_i2c_reg_write(FT6X46_GESTURE_WAKEUP_REG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:parse gesture input write fail 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - - switch (gesture_val) { - case FT6X46_GESTURE_SIGNAL_CLICK: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SHORT_CLICK; - break; - case FT6X46_GESTURE_DOUBLE_CLICK: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_DOUBLE_CLICK; - break; - case FT6X46_GESTURE_SLIDE_UP: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SLIDE_UP; - break; - case FT6X46_GESTURE_SLIDE_DOWN: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SLIDE_DOWN; - break; - default: - tp_err("TOUCH:gesture %d not Support", gesture_val); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_parse_touch_input(void) -{ - static uint8_t touch_input[FT6X46_TOUCHINFO_LEN] = { 0 }; - uint16_t touch_status; - uint16_t x_axis; - uint16_t y_axis; - uint8_t sub_status; - - ext_errno ret = tp_i2c_data_read(FT6X46_POINT_STATUS_REG, touch_input, FT6X46_TOUCHINFO_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:touch input read error! ret = 0x%x", ret); - return EXT_ERR_FAILURE; - } - touch_status = ((uint16_t)touch_input[FT6X46_STATUSH_OFFSET] << FT6X46_REGDATA_SHIFT) | - (touch_input[FT6X46_STATUSL_OFFSET]); - if ((touch_status & FT6X46_PALM_MASK) != 0) { - g_ft6x46_drv.touch_msg.tp_event = MC_TP_COVER; - return EXT_ERR_SUCCESS; - } - - if (touch_status != 0) { - sub_status = touch_input[FT6X46_SUBSTATUS_OFFSET] & FT6X46_TOUCHINFO_MASK; - x_axis = ((uint16_t)touch_input[FT6X46_XH_OFFSET] << FT6X46_REGDATA_SHIFT) | (touch_input[FT6X46_XL_OFFSET]); - y_axis = ((uint16_t)touch_input[FT6X46_YH_OFFSET] << FT6X46_REGDATA_SHIFT) | (touch_input[FT6X46_YL_OFFSET]); - - switch (sub_status) { - case FT6X46_TOUCH_DOWN: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_PRESS; - break; - /* Need To Modify For UI */ - case FT6X46_TOUCH_EXIST: - case FT6X46_TOUCH_MOVE: - case FT6X46_TOUCH_NONE: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_MOVE; - break; - case FT6X46_TOUCH_UP: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_RELEASE; - break; - - default: - tp_err("TOUCH:parse input wrong status|substatus 0x%08x", - ((uint32_t)touch_status << FT6X46_SHIFT_16_BIT) | (uint32_t)sub_status); - return EXT_ERR_FAILURE; - } - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0] = x_axis; - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0] = y_axis; - g_ft6x46_drv.touch_msg.tv_usec = (uint32_t)uapi_tcxo_get_ms(); - } else { - g_ft6x46_drv.touch_msg.tp_event = MC_TP_INVALID; - tp_print("TOUCH:parse wrong touchstatus %d", touch_status); - return EXT_ERR_SUCCESS; - } - - return EXT_ERR_SUCCESS; -} - - -/*Max point numbers of gesture trace*/ -#define MAX_POINTS_GESTURE_TRACE 6 -/*Length of gesture information*/ -#define MAX_LEN_GESTURE_INFO (MAX_POINTS_GESTURE_TRACE * 4 + 2) - -/*Max point numbers of touch trace*/ -#define MAX_POINTS_TOUCH_TRACE 1 -/*Length of touch information*/ -#define MAX_LEN_TOUCH_INFO (MAX_POINTS_TOUCH_TRACE * 6 + 2) - -/*Max touch points that touch controller supports*/ -#define FTS_MAX_POINTS_SUPPORT 10 - -struct fts_ts_event { - int x; /*x coordinate */ - int y; /*y coordinate */ - int p; /* pressure */ - int type; /* touch event flag: 0 -- down; 1-- up; 2 -- contact */ - int id; /*touch ID */ - int area; /*touch area*/ -}; - -static ext_errno fts_touch_process(void) -{ - ext_errno ret; - uint8_t i = 0; - uint8_t base = 0; - uint8_t regaddr = 0x01; - uint8_t buf[MAX_LEN_TOUCH_INFO];/*A maximum of two points are supported*/ - uint8_t point_num = 0; - uint8_t touch_event_nums = 0; - uint8_t point_id = 0; - struct fts_ts_event events[FTS_MAX_POINTS_SUPPORT]; /* multi-touch */ - - - /*read touch information from reg0x01*/ - ret = tp_ft6x46_i2c_data_read(regaddr, buf, MAX_LEN_TOUCH_INFO); - if (ret != EXT_ERR_SUCCESS) { - tp_err("Read touch information from reg0x01 fails"); - return ret; - } - - /*print touch buffer, for debug usage*/ - //log_touch_buf(buf, MAX_LEN_TOUCH_INFO); - - //if ((buf[1] == 0xFF) && (buf[2] == 0xFF) && (buf[3] == 0xFF)) { - // tp_err("FW initialization, need recovery"); - // if (fts_data->gesture_support && fts_data->suspended) - // fts_write_reg(FTS_REG_GESTURE_EN, FTS_REG_GESTURE_ENABLE); - //} - - /*parse touch information based on register map*/ - memset(events, 0xFF, sizeof(struct fts_ts_event) * FTS_MAX_POINTS_SUPPORT); - point_num = buf[1] & 0x0F; - if (point_num > FTS_MAX_POINTS_SUPPORT) { - tp_err("invalid point_num(%d)", point_num); - return EXT_ERR_FAILURE; - } - - for (i = 0; i < MAX_POINTS_TOUCH_TRACE; i++) { - base = 2 + i * 6; - point_id = buf[base + 2] >> 4; - if (point_id >= MAX_POINTS_TOUCH_TRACE) { - tp_err("abnormal touch data point_id %d\r\n",point_id); - break; - } - - events[i].x = ((buf[base] & 0x0F) << 8) + buf[base + 1]; - events[i].y = ((buf[base + 2] & 0x0F) << 8) + buf[base + 3]; - events[i].id = point_id; - events[i].type = (buf[base] >> 6) & 0x03; - events[i].p = buf[base + 4]; - events[i].area = buf[base + 5]; - if (((events[i].type == 0) || (events[i].type == 2)) & (point_num == 0)) { - tp_err("abnormal touch data from fw"); - return EXT_ERR_FAILURE; - } - - touch_event_nums++; - } - - if (touch_event_nums == 0) { - tp_err("no touch point information(%02x)", buf[1]); - return EXT_ERR_FAILURE; - } - - /*print touch information*/ - //log_touch_info(events, touch_event_nums); - - /*Now you have get the touch information, you can report anything(X/Y coordinates...) you want to system*/ - /*TODO...(report touch information to system)*/ - /*Below sample code is a pseudo code*/ - - for (i = 0; i < touch_event_nums; i++) { - #if 0 - if ((events[i].type == 0) || (events[i].type == 2)) { - /* The event of point(point id is events[i].id) is down event, the finger of this id stands for is - * pressing on the screen.*/ - /*TODO...(down event)*/ - } else { - /*TODO...(up event)*/ - } - #endif - switch (events[i].type) { - case 0: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_PRESS; - break; - /* Need To Modify For UI */ - case 2: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_MOVE; - break; - case 1: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_RELEASE; - break; - - default: - tp_err("TOUCH:parse input wrong status|substatus"); - return EXT_ERR_FAILURE; - } - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0] = events[i].x; - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0] = events[i].y; - g_ft6x46_drv.touch_msg.tv_usec = (uint32_t)uapi_tcxo_get_ms(); - tp_print("event %d, x %d, y %d, time %d", - g_ft6x46_drv.touch_msg.tp_event, - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0], - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0], - g_ft6x46_drv.touch_msg.tv_usec); - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_parse_input(void) -{ - ext_errno ret = EXT_ERR_FAILURE; - uint16_t reg_write; - - if (g_ft6x46_drv.gesture_wakeup == TD_TRUE) { - ret = ft6x46_parse_gesture_input(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse gesture input fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } else { - ret = ft6x46_parse_touch_input(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse touch input fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } - /* clear int */ - reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse input clear int fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len) -{ - unused(data_len); - g_ft6x46_drv.touch_msg.tp_event = MC_TP_INVALID; - - int32_t mem_ret; - - fts_touch_process(); - - - mem_ret = memcpy_s(data_buf, sizeof(input_event_info), &(g_ft6x46_drv.touch_msg), sizeof(input_event_info)); - if (mem_ret != EOK) { - tp_err("TOUCH:mem cpy error, ret = 0x%x", mem_ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -/* chip id */ -#define FTS_CHIP_IDH 0x64 -#define FTS_CHIP_IDL 0x56 - - -#define FTS_CMD_READ_ID 0x90 - -/* register address */ -#define FTS_REG_CHIP_ID 0xA3 -#define FTS_REG_CHIP_ID2 0x9F - -#define FTS_CMD_START_DELAY 12 - - -static ext_errno ft6x46_power_sequence(void) -{ - ext_errno ret; - uint8_t chip_id[2] = { 0 }; - - /*delay 200ms,wait fw*/ - osDelay(FT6X46_GENERAL_DELAY_200); - - /*get chip id*/ - ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1); - if (ret != EXT_ERR_SUCCESS) { - tp_err("222222222get ic information, error1"); - return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID; - } - ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1); - if (ret != EXT_ERR_SUCCESS) { - tp_err("3333333get ic information, error2"); - return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID; - } - // tp_print("11111111111111get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]); - if ((FTS_CHIP_IDH == chip_id[0]) && (FTS_CHIP_IDL == chip_id[1])) { - tp_warning("get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]); - return EXT_ERR_SUCCESS; - } - - // tp_err("fw is invalid, need read boot id"); - ret = tp_ft6x46_i2c_data_write_reg(0x55, 0xAA); - if (ret != EXT_ERR_SUCCESS) { - tp_err("start cmd write fail"); - return ret; - } - - osDelay(FTS_CMD_START_DELAY); - ret = tp_ft6x46_i2c_data_read(FTS_CMD_READ_ID, chip_id, 2); - if((ret == EXT_ERR_SUCCESS) && ((FTS_CHIP_IDH == chip_id[0]) && (FTS_CHIP_IDL == chip_id[1]))) { - tp_err("get ic information, boot id = 0x%02x%02x", chip_id[0], chip_id[1]); - ret = EXT_ERR_SUCCESS; - } else { - tp_err("read boot id fail,read:0x%02x%02x", chip_id[0], chip_id[1]); - return EXT_ERR_FAILURE; - } - return ret; - -} - -static void ft6x46_clear_interrupt(uint8_t retry_times, uint16_t delay) -{ - uint16_t reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - ext_errno ret; - uint8_t times; - for (times = 1; times <= retry_times; times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - return; - } - osDelay(delay); - } - - if (times > retry_times) { - tp_warning("TOUCH:Clear Int Cmd1! ret = 0x%x", ret); - } -} - -static ext_errno ft6x46_reg_config(void) -{ - ext_errno ret; - // uint16_t reg_write; - - // /* Initial Touch Mode */ - // reg_write = FT6X46_POINT_MODE; -// ret = tp_i2c_reg_write(FT6X46_INITIAL_TOUCH_MODE, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_INIT_TOUCHMODE; -// } - -// ret = tp_i2c_reg_write(FT6X46_TOUCH_MODE, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_TOUCHMODE; -// } - -// /* Set Finger Num */ -// reg_write = FT6X46_MAX_SUPPORTED_FINGER_NUM; -// ret = tp_i2c_reg_write(FT6X46_SUPPORTED_FINGER_NUM, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_FINGER_NUM; -// } - -// /* Set X Resolution */ -// reg_write = FT6X46_RES_MAX_X; -// ret = tp_i2c_reg_write(FT6X46_X_RESOLUTION, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_XRES; -// } - -// /* Set Y Resolution */ -// reg_write = FT6X46_RES_MAX_Y; -// ret = tp_i2c_reg_write(FT6X46_Y_RESOLUTION, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_YRES; -// } - -// /* Set Lock Point Range */ -// ret = tp_i2c_reg_write(FT6X46_HOLD_POINT_TRESHHOLD, FT6X46_POINT_TRESHHOLD); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_YRES; -// } - -// /* Write Calib Cmd */ -// reg_write = FT6X46_CALIBRATE_CMD; -// ret = tp_i2c_cmd_write(reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_CALIBCMD; -// } - -// /* Write Int Register */ -// reg_write = FT6X46_INT_MASK; -// ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_INTMASK; -// } -// #ifdef FT6X46_GESTURE_WAKEUP -// /* Write Gesture Register */ -// reg_write = FT6X46_GESTURE_WAKEUP_INIT; -// ret = tp_i2c_reg_write(FT6X46_GESTURE_WAKEUP_REG, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_GESWAKEUP; -// } -// #endif - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_configuration(void) -{ - ext_errno ret; - uint8_t retry_times = 0; - uint16_t reg_read; - uint16_t reg_write; - - /* Software Reset */ - reg_write = FT6X46_SWRESET_CMD; - for (retry_times = 0; retry_times < FT6X46_RETRY_TIMES; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - osDelay(FT6X46_RESETHIGH_DELAY); - } - - if (retry_times >= FT6X46_RETRY_TIMES) { - tp_err("TOUCH:configuration sw reset fail! ret = 0x%x", ret); - return EXT_ERR_TP_ZTW523_CONFIG_RESET; - } - - /* Read Firmware Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_FIRMWARE_VERSION, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_FWVERSION; - } - g_ft6x46_drv.firmware_version = reg_read; - - /* Read Minor Firmware Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_MINOR_FW_VERSION, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_FWMINORVERSION; - } - g_ft6x46_drv.minor_firmware_version = reg_read; - - /* Read Hw ID */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_HW_ID, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("configuration error (read hw id) 0x%x", ret); - return EXT_ERR_TP_ZTW523_GET_HWID_READ_ID; - } - g_ft6x46_drv.chip_hw_id = reg_read; - - /* Read Register Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_DATA_VERSION_REG, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_DATAREG; - } - g_ft6x46_drv.reg_version = reg_read; - - ret = ft6x46_reg_config(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - /* Write Clear Int Cmd */ - ft6x46_clear_interrupt(FT6X46_RETRY_TIMES, FT6X46_GENERAL_DELAY_1); - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_get_panel_info(void) -{ - ext_errno ret; - uint16_t reg_read = 0; - /* Read X Channel Num */ - ret = tp_i2c_data_read(FT6X46_TOTAL_NUMBER_OF_X, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:GetPanelInfo error read x channel 0x%x", ret); - return EXT_ERR_FAILURE; - } - - g_ft6x46_drv.panel_info.xchannel_num = reg_read; - /* Read Y Channel Num */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_TOTAL_NUMBER_OF_Y, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:GetPanelInfo error read y channel 0x%x", ret); - return EXT_ERR_FAILURE; - } - - g_ft6x46_drv.panel_info.ychannel_num = reg_read; - g_ft6x46_drv.panel_info.total_dnd_num = - g_ft6x46_drv.panel_info.xchannel_num * g_ft6x46_drv.panel_info.ychannel_num; - g_ft6x46_drv.panel_info.total_self_dnd_num = - g_ft6x46_drv.panel_info.xchannel_num + g_ft6x46_drv.panel_info.ychannel_num; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_standby(void) -{ - ext_errno ret; - uint16_t reg_write; - uint8_t retry_times; - - if ((g_ft6x46_drv.work_status == FT6X46_WORK_STANDBY) || (g_ft6x46_drv.work_status == FT6X46_WORK_SLEEP)) { - tp_print("alread standby or sleep"); - return EXT_ERR_SUCCESS; - } - /* Disabel Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_DISABLE, FT6X46_INT_NONE); - - reg_write = FT6X46_POWER_CTL_BEGIN; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - tp_err("standby failed 0x%x", ret); - return EXT_ERR_FAILURE; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - /* Send Clear Int Cmd */ - reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - for (retry_times = 0; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - } - - /* Send Idle Cmd */ - reg_write = FT6X46_IDLE_CMD; - for (retry_times = 0; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - } - - reg_write = FT6X46_POWER_CTL_END; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - tp_err("standby failed 0x%x", ret); - return EXT_ERR_FAILURE; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - g_ft6x46_drv.work_status = FT6X46_WORK_STANDBY; - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_suspend(void) -{ - ext_errno ret; - // uint16_t reg_write; - // uint8_t retry_times = 0; - - if (g_ft6x46_drv.work_status == FT6X46_WORK_SLEEP) { - tp_print("TOUCH:alread suspend"); - return EXT_ERR_SUCCESS; - } - /*Host writes 0x03 to register address 0xA5 to enter into sleep mode.*/ - ret = tp_ft6x46_i2c_data_write_reg(FTS_REG_POWER_MODE, 0x03); - if(ret != 0) { - tp_err("ft6x46_suspend enter sleep mode fails.ret:0x%X",ret); - return EXT_ERR_FAILURE; - } else { - tp_warning("ft6x46_suspend enter sleep mode success."); - } - g_ft6x46_drv.work_status = FT6X46_WORK_SLEEP; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_resume_post(void) -{ - ext_errno ret; - // uint16_t reg_write; - // uint16_t cmd_write; - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_CMD_ENABLE, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg cmd failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - // /* delay for ms */ - // osDelay(FT6X46_GENERAL_DELAY_1); - - // cmd_write = FT6X46_REG_INTN_CLEAR; - // ret = tp_i2c_cmd_write(cmd_write); - // if (ret != EXT_ERR_SUCCESS) { - // return EXT_ERR_TP_ZTW523_POWERUP_INTN_CLEAR; - // } - // osDelay(FT6X46_GENERAL_DELAY_1); - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_NVM, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg nvm failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - // osDelay(FT6X46_GENERAL_DELAY_1); - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_PROGRAM_START, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg program start failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - - // osDelay(FT6X46_GENERAL_DELAY_50); /* delay 50 ms */ - - return EXT_ERR_SUCCESS; -} -ext_errno ft6x46_resume(void) -{ - ext_errno ret; - uint8_t retry_times = 0; - - g_ft6x46_drv.work_status = FT6X46_WORK_RESUME; - - ft6x46_resume_reset(); - - // for (; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - // ret = ft6x46_resume_post(); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume: post err %d", ret); - // /* retry delay 200ms */ - // osDelay(FT6X46_GENERAL_DELAY_200); - // } else { - // break; - // } - // } - - // if (retry_times == FT6X46_INIT_RETRY_TIMERS) { - // tp_err("resume: overtimes %d", retry_times); - // goto resume_exit; - // } - ret = ft6x46_config(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init fail 0x%x", ret); - goto resume_exit; - } - // ret = ft6x46_configuration(); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:resume config fail 0x%x", ret); - // return EXT_ERR_TP_ZTW523_INIT_CONFIG; - // } - - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - /* Enable Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - - return EXT_ERR_SUCCESS; - -resume_exit: - - /* Enable Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_DISABLE, FT6X46_INT_MASK); - - tp_err("resume failed 0x%x", ret); - - return EXT_ERR_FAILURE; -} - -ext_errno ft6x46_get_power_mode(uint32_t *power_mode) -{ - if (power_mode == NULL) { - return EXT_ERR_FAILURE; - } - - *power_mode = (uint32_t)(g_ft6x46_drv.work_status); - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_standby_mode(void) -{ - ext_errno ret; - - ret = ft6x46_standby(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 set standby 0x%x", ret); - return EXT_ERR_FAILURE; - } -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_TRUE; -#endif - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_sleep_mode(void) -{ - ext_errno ret; - - ret = ft6x46_suspend(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 set suspend fail 0x%x", ret); - } -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - g_ft6x46_drv.work_status = FT6X46_WORK_SLEEP; - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_normal_mode(void) -{ - ext_errno ret; - uint16_t reg_write; - - if (g_ft6x46_drv.work_status == FT6X46_WORK_NORMAL) { - return EXT_ERR_SUCCESS; - } - - reg_write = FT6X46_SDRAM_RESET; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_FAILURE; - } - /* delay 50ms */ - osDelay(FT6X46_GENERAL_DELAY_50); - ret = ft6x46_power_sequence(); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_FAILURE; - } - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_set_power_mode(tp_work_mode power_mode) -{ - ext_errno ret = EXT_ERR_SUCCESS; - - switch (power_mode) { - case MC_TP_SLEEP_WORK_MODE: - case MC_TP_SUSPEND_SCAN: - ret = ft6x46_set_sleep_mode(); - break; - case MC_TP_NORMAL_WORK_MODE: - case MC_TP_RESUME_SCAN: - ret = ft6x46_set_normal_mode(); - break; - case MC_TP_STANDBY_WORK_MODE: - ret = ft6x46_set_standby_mode(); - break; - default: - tp_err("TOUCH:ft6x46 not support powermode 0x%x", power_mode); - ret = EXT_ERR_FAILURE; - break; - } - - return ret; -} - -static ext_errno ft6x46_config(void) -{ - ext_errno ret; - - /* Step 1 hardware reset */ - ret = ft6x46_reset(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:Init reset fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_RESET; - } - - /* Step 2 power up */ - ret = ft6x46_power_sequence(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init powerup fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_POWERUP; - } - -#if 0 - /* Step 3 configuration */ - ret = ft6x46_configuration(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init config fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_CONFIG; - } - - /* Step 3 Panel Info */ - ret = ft6x46_get_panel_info(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init get panelinfo fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_GETINFO; - } -#endif - - /* Record Status For Init */ - g_ft6x46_drv.chip_status = FT6X46_READY; - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_resource_deinit(void) -{ - g_ft6x46_drv.work_status = FT6X46_WORK_INVALID; - g_ft6x46_drv.fw_upgrade_flag = TD_FALSE; - osal_mutex_destroy(&g_ft6x46_drv.ops_mux); - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_init(void) -{ - ext_errno ret = EXT_ERR_FAILURE; - ext_errno err_ret; - - /* create tp operation mutex */ - if (g_ft6x46_drv.ops_mux.mutex == NULL) { - ret = osal_mutex_init(&(g_ft6x46_drv.ops_mux)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init create mux lock fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } - - /* get tp operater mutex */ - ret = osal_mutex_lock_timeout(&g_ft6x46_drv.ops_mux, FT6X46_OPERATER_MUTEX_WAIT_TIME); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init wait mux lock fail 0x%x", ret); - goto init_fail; - } - - /* tp hardware reset and init */ - ret = ft6x46_config(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init fail 0x%x", ret); - goto init_fail; - } - - /* release tp operater mutex */ - osal_mutex_unlock(&g_ft6x46_drv.ops_mux); - - tp_print("TOUCH:ft6x46 init succ!"); - return EXT_ERR_SUCCESS; - -init_fail: - /* release tp operater mutex */ - osal_mutex_unlock(&g_ft6x46_drv.ops_mux); - err_ret = ft6x46_resource_deinit(); - if (err_ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:delete mux lock err! ret = 0x%x", err_ret); - } - return ret; -} - -ext_errno ft6x46_deinit(void) -{ - ext_errno ret = ft6x46_resource_deinit(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH: ft6x46 deinit fail! ret = 0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -#ifdef __cplusplus -#if __cplusplus - } -#endif -#endif diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h deleted file mode 100644 index b0e57762f..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h +++ /dev/null @@ -1,421 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2021-05-29 - */ - -#ifndef FT6X46_TOUCH1_H -#define FT6X46_TOUCH1_H - -#include "stdio.h" -#include "soc_errno.h" -#include "soc_osal.h" -#include "touch_screen_def.h" -#include "platform_core.h" - -#ifdef __cplusplus -#if __cplusplus -extern "C" { -#endif -#endif - -/* ztw523 definitions */ -/* max wait time */ -#define FT6X46_OPERATER_MUTEX_WAIT_TIME 3000 /* operater tp mutex timeout ms */ -#define FT6X46_CMCP_WAIT_TIMEOUT 1000 -/* define some properties value */ -#define FT6X46_ENABLE 0x0001 -#define FT6X46_DISABLE 0x0000 -#define FT6X46_DATA_LEN 2 -#define FT6X46_POWERON_DELAY 100 -#define FT6X46_POWEROFF_DELAY 100 -#define FT6X46_RESETHIGH_DELAY 10 -#define FT6X46_CLEARINT_DELAY 10 -#define FT6X46_FIRMWAREON_DELAY 200 -#define FT6X46_INIT_RETRY_TIMERS 3 -#define FT6X46_SETMODE_RETRY_TIMERS 3 -#define FT6X46_SOFTRESET_RETRY_TIMES 10 -#define FT6X46_RETRY_TIMES 10 -#define FT6X46_DEVICE_INFO "zinitix,ft6x46" -#define FT6X46_DEVICE_INFO_SIZE sizeof(FT6X46_DEVICE_INFO) -#define FT6X46_MAX_SUPPORTED_FINGER_NUM 1 -#define FT6X46_POINT_MODE 1 -#define FT6X46_CALIB_TOUCH_MODE 0x07 -#define FT6X46_REGDATA_SHIFT 8 -#define FT6X46_GENERAL_DELAY_1 1 -#define FT6X46_GENERAL_DELAY_5 5 -#define FT6X46_GENERAL_DELAY_10 10 -#define FT6X46_GENERAL_DELAY_20 20 -#define FT6X46_GENERAL_DELAY_25 25 -#define FT6X46_GENERAL_DELAY_30 30 -#define FT6X46_GENERAL_DELAY_50 50 -#define FT6X46_GENERAL_DELAY_100 100 -#define FT6X46_GENERAL_DELAY_200 200 -#define FT6X46_GENERAL_DELAY_500 500 -#define FT6X46_GENERAL_RETRY_1 1 -#define FT6X46_GENERAL_RETRY_2 2 -#define FT6X46_GENERAL_RETRY_3 3 -#define FT6X46_GENERAL_RETRY_4 4 -#define FT6X46_GENERAL_RETRY_10 10 -#define FT6X46_RAWDATA_DELAY_FOR_HOST 100 -#define FT6X46_FW_JUMP_CODE 0x0048 -#define FT6X46_REPORT_RATE 60 -#define FT6X46_PIXEL_THRESHOLD 5 - -#ifndef FT6X46_RES_MAX_X -#define FT6X46_RES_MAX_X 466 -#endif - -#ifndef FT6X46_RES_MAX_Y -#define FT6X46_RES_MAX_Y 466 -#endif - -#ifndef FT6X46_POINT_TRESHHOLD -#define FT6X46_POINT_TRESHHOLD 0x19 -#endif - -#define FT6X46_TOUCHINFO_HEAD_LEN 4 -#define FT6X46_POINTINFO_LEN 6 -#define FT6X46_TOUCHINFO_LEN (FT6X46_TOUCHINFO_HEAD_LEN + FT6X46_POINTINFO_LEN * FT6X46_MAX_SUPPORTED_FINGER_NUM) - -#define FT6X46_INT_NONE 0x0000 -#define FT6X46_INT_MASK 0x081F -#define FT6X46_PALM_MASK 0x0010 -#define FT6X46_GESTURE_WAKEUP_INIT 0 -#define FT6X46_FIRMWARE_SIZE 48 -#define ZTW_PAGE_SIZE_128 128 -#define ZTW_PAGE_SIZE_64 64 -#define ZTW_SECTOR_SIZE 8 -#define ZTW_CHIPID_F400 0xF400 -#define ZTW_CHIPID_E240 0xE240 -#define ZTW_CHIPID_E700 0xE700 -#define ZTW_CHIPID_E548 0xE548 -#define ZTW_CHIPID_E538 0xE538 -#define ZTW_CHIPID_E532 0xE532 -#define ZTW_VENDOR_ID 0x5A49 -#define FT6X46_CHIP_ID 0xE628 -/* define touch info offset */ -#define FT6X46_STATUSL_OFFSET 0 -#define FT6X46_STATUSH_OFFSET 1 -#define FT6X46_EVENTL_OFFSET 2 -#define FT6X46_EVENTH_OFFSET 3 -#define FT6X46_XL_OFFSET 4 -#define FT6X46_XH_OFFSET 5 -#define FT6X46_YL_OFFSET 6 -#define FT6X46_YH_OFFSET 7 -#define FT6X46_WIDTH_OFFSET 8 -#define FT6X46_SUBSTATUS_OFFSET 9 -/* define data shift and mask */ -#define FT6X46_SHIFT_8_BIT 8 -#define FT6X46_SHIFT_16_BIT 16 -#define FT6X46_SHIFT_24_BIT 24 -#define FT6X46_MASK_BYTE 0xFF -/* define FT6X46_HIGH_SPEED_DMA rely on iic dma support */ -#ifdef FT6X46_HIGH_SPEED_DMA -#define FT6X46_TOUCH_POINT_MODE 0 -#else -#define FT6X46_TOUCH_POINT_MODE 1 -#endif - -#define FT6X46_SEC_MODE 48 -#define FT6X46_NORMAL_MODE 5 -#define FT6X46_DND_MODE 11 /* mutual cap */ -#define FT6X46_SELF_DND_MODE 17 /* self cap */ -#define FT6X46_DNDSKIP_CNT 1 -#define FT6X46_SELFDNDSKIP_CNT 1 -/* Config Reg Info */ -#define FT6X46_REG_CMD_ENABLE 0xC000 -#define FT6X46_REG_CHIP_ID 0xCC00 -#define FT6X46_REG_INTN_CLEAR 0xC004 -#define FT6X46_REG_NVM 0xC002 -#define FT6X46_REG_NVM_VPP 0xC003 -#define FT6X46_REG_NVM_WP 0xC104 -#define FT6X46_REG_PROGRAM_START 0xC001 -#define FT6X46_POWER_CTL_BEGIN 0x000A -#define FT6X46_POWER_CTL_END 0x000B -#define FT6X46_CALIB_CTL1 0xC003 -#define FT6X46_CALIB_CTL2 0xC104 -#define FT6X46_SDRAM_RESET 0x0FF8 -#define FT6X46_REPORT_REG 0x0186 /* 设置中断上报频率 */ -#define FT6X46_PIXEL_THRESHOLD_REG 0x00C3 -/* Register Map */ -#define FT6X46_SWRESET_CMD 0x0000 -#define FT6X46_WAKEUP_CMD 0x0001 -#define FT6X46_IDLE_CMD 0x0004 -#define FT6X46_SLEEP_CMD 0x0005 -#define FT6X46_CLEAR_INT_STATUS_CMD 0x0003 -#define FT6X46_CALIBRATE_CMD 0x0006 -#define FT6X46_SAVE_STATUS_CMD 0x0007 -#define FT6X46_SAVE_CALIBRATION_CMD 0x0008 -#define FT6X46_RECALL_FACTORY_CMD 0x000f -#define FT6X46_SENSITIVITY 0x0020 -#define FT6X46_I2C_CHECKSUM_WCNT 0x016a -#define FT6X46_I2C_CHECKSUM_RESULT 0x016c -#define FT6X46_DEBUG_REG 0x0115 /* 0~7 */ -#define FT6X46_TOUCH_MODE 0x0010 -#define FT6X46_CHIP_REVISION 0x0011 -#define FT6X46_FIRMWARE_VERSION 0x0012 -#define FT6X46_MINOR_FW_VERSION 0x0121 -#define FT6X46_DATA_VERSION_REG 0x0013 -#define FT6X46_HW_ID 0x0014 -#define FT6X46_SUPPORTED_FINGER_NUM 0x0015 -#define FT6X46_EEPROM_INFO 0x0018 -#define FT6X46_INITIAL_TOUCH_MODE 0x0019 -#define FT6X46_CHIP_HW_REVISION 0x001A -#define FT6X46_IC_VENDOR_ID 0x001C -#define FT6X46_TSM_MODULE_ID 0x001E -#define FT6X46_TOTAL_NUMBER_OF_X 0x0060 -#define FT6X46_TOTAL_NUMBER_OF_Y 0x0061 -#define FT6X46_DELAY_RAW_FOR_HOST 0x007f -#define FT6X46_BUTTON_SUPPORTED_NUM 0x00B0 -#define FT6X46_BUTTON_SENSITIVITY 0x00B2 -#define FT6X46_X_RESOLUTION 0x00C0 -#define FT6X46_Y_RESOLUTION 0x00C1 -#define FT6X46_HOLD_POINT_TRESHHOLD 0x00C3 -#define FT6X46_POINT_STATUS_REG 0x0080 -#define FT6X46_ICON_STATUS_REG 0x00AA -#define FT6X46_AFE_FREQUENCY 0x0100 -#define FT6X46_DND_N_COUNT 0x0122 -#define FT6X46_DND_U_COUNT 0x0135 -#define FT6X46_RAWDATA_REG 0x0200 -#define FT6X46_EEPROM_INFO_REG 0x0018 -#define FT6X46_INT_ENABLE_FLAG 0x00f0 -#define FT6X46_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 -#define FT6X46_CHECKSUM_RESULT 0x012c -#define FT6X46_GESTURE_WAKEUP_REG 0x0126 - -#define FT6X46_TOUCHINFO_MASK 0x0F -#define FT6X46_TOUCH_EXIST 0x01 -#define FT6X46_TOUCH_DOWN 0x03 -#define FT6X46_TOUCH_MOVE 0x05 -#define FT6X46_TOUCH_UP 0x08 -#define FT6X46_TOUCH_NONE 0x07 - -#define FT6X46_SUB_BIT_EXIST 0 -#define FT6X46_SUB_BIT_DOWN 1 -#define FT6X46_SUB_BIT_MOVE 2 -#define FT6X46_SUB_BIT_UP 3 -#define FT6X46_SUB_BIT_UPDATE 4 -#define FT6X46_SUB_BIT_WAIT 5 - -#ifndef FT6X46_TSP_X_CHANNEL_NUM -#define FT6X46_TSP_X_CHANNEL_NUM 6 -#endif - -#ifndef FT6X46_TSP_Y_CHANNEL_NUM -#define FT6X46_TSP_Y_CHANNEL_NUM 6 -#endif - -#define FT6X46_TSP_DND_NUM (FT6X46_TSP_X_CHANNEL_NUM * FT6X46_TSP_Y_CHANNEL_NUM) -#define FT6X46_TSP_SELFDND_NUM (FT6X46_TSP_X_CHANNEL_NUM + FT6X46_TSP_Y_CHANNEL_NUM) - -/* firmware info */ -#define FT6X46_FIRMWARE_VERSION_L 0 -#define FT6X46_FIRMWARE_VERSION_H 1 -#define FT6X46_FIRMWARE_VERSION_OFFSET 52 -#define FT6X46_FIRMWARE_MINOR_VERSION_OFFSET 56 -#define FT6X46_FIRMWARE_DATA_VERSION_OFFSET 60 -#define FT6X46_FIRMWARE_OFFSET_ZERO 0 -#define FT6X46_FIRMWARE_CONVERT_DATA_STEP 2 -#define FT6X46_FIRMWARE_CONVERT_DATA_OFFSET 1 -/* file op code */ -#define FT6X46_FILE_ERROR (-1) -#define FT6X46_FILE_OK 0 -/* upgrade info */ -#define FT6X46_FWGRADE_CMD_NUM 3 -/* rawdata info */ -#define FT6X46_RAWDATA_CMD_NUM 2 -/* define gesture macro */ -#define FT6X46_GESTURE_WAKEUP 1 - -/* self_dnd dnd parameter */ -#define FT6X46_SEC_SELF_DND_N_COUNT 15 -#define FT6X46_SEC_SELF_DND_U_COUNT 2 -#define FT6X46_SEC_SELF_DND_FREQUENCY 80 - -#define FT6X46_SEC_DND_N_COUNT 27 -#define FT6X46_SEC_DND_U_COUNT 3 -#define FT6X46_SEC_DND_FREQUENCY 240 - -/* host peripheral typedef */ -typedef ext_errno (*tp_irq_callback)(void); - -/* ZTW523 driver typedef */ -typedef enum { - FT6X46_POWERDOWN = 0, - FT6X46_POWERUP, -} ft6x46_sw_power_status; - -typedef enum { - FT6X46_WORK_NORMAL = 0, - FT6X46_WORK_STANDBY, - FT6X46_WORK_GETCMCP, - FT6X46_WORK_SLEEP, - FT6X46_WORK_SUSPEND, - FT6X46_WORK_RESUME, - FT6X46_WORK_INVALID, -} ft6x46_work_status; - -typedef enum { - FT6X46_NOT_READY = 0, - FT6X46_READY, -} ft6x46_device_status; - -typedef enum { - MC_BUTTON_RELEASE = 0, /* button release */ - MC_BUTTON_PRESSED = 1, /* button pressed */ -} button_event_type; - -typedef enum { - MC_TOUCHKEY_EVENT_PRESS = 0, - MC_TOUCHKEY_EVENT_RELASSE, - MC_TOUCHKEY_EVENT_LONG_PRESS, - MC_TOUCHKEY_EVENT_INVALID, -} touch_key_event_type; - -typedef enum { - FT6X46_GESTURE_NONE = 0, - FT6X46_GESTURE_SIGNAL_CLICK = 1, - FT6X46_GESTURE_DOUBLE_CLICK = 2, - FT6X46_GESTURE_SLIDE_UP = 4, - FT6X46_GESTURE_SLIDE_DOWN = 5, -} ft6x46_gesture_event; - -typedef enum { - FT6X46_IRQ_DISABLE = 0, - FT6X46_IRQ_ENABLE, -} ft6x46_irq_status; - -typedef enum { - MC_TP_NORMAL_WORK_MODE = 0, /* tp normal mode */ - MC_TP_STANDBY_WORK_MODE, /* tp idle mode */ - MC_TP_BOOTLOADER_WORK_MODE, - MC_TP_SLEEP_WORK_MODE, - MC_TP_SUSPEND_SCAN, - MC_TP_RESUME_SCAN, - MC_TP_MAX_MODE, -} tp_work_mode; - -typedef enum { - MC_TP_UPGRADE_NEED_FLAG, - MC_TP_UPGRADE_START_ASYN, - MC_TP_UPGRADE_STATUS, - MC_TP_UPGRADE_SYNC, -} mc_tp_upgrade; - -typedef struct { - uint32_t reset_gpio; - uint32_t int_gpio; - i2c_bus_t i2c_id; - uint32_t i2c_baudrate; -} tp_peripheral_attr; - -typedef struct { - uint16_t button_code; -} button_dev_info; - -typedef struct { - uint16_t xchannel_num; - uint16_t ychannel_num; - uint16_t total_dnd_num; - uint16_t total_self_dnd_num; -} ft6x46_panel_data; - -typedef struct { - uint32_t skip_cnt; - int16_t dnd_data[FT6X46_TSP_DND_NUM]; - int16_t self_dnd_data[FT6X46_TSP_SELFDND_NUM]; -} ft6x46_tsp_rawdata; - -typedef enum { - MC_TP_RAW_DATA, - MC_TP_BASE_DATA, - MC_TP_NOS_DATA, - MC_TP_SIG_DATA, - MC_TP_FT_DATA, - MC_TP_NT_DATA, - MC_TP_MAX_DATA, - MC_TP_CM_CP_DATA, /* 7, CM CP data */ - MC_TP_INT_COUNT_DATA, /* 8, TP Int count */ - MC_TP_NOISE_METRICS_DATA, - MC_TP_DATA_STRUCTURE_DATA, - MC_TP_PANEL_SCAN_CM_DATA, - MC_TP_PANEL_SCAN_CP_DATA, - MC_TP_START_RAW_TRANS, - MC_TP_STOP_RAW_TRANS, - MC_TP_START_GET_WATER_TEMPR, /* 15, start get and print water level and temprature */ - MC_TP_STOP_GET_WATER_TEMPR, /* 16, stop get and print water level and temprature */ - MC_TP_RAW_MAX, -} mc_tp_rawdata; - -typedef struct { - mc_tp_rawdata cmd; - uint8_t *data_buf; - uint8_t data_in_len; - uint32_t data_out_len; - uint32_t data_addr; -} touch_rawdata_info; - -/* define for drv process talbe */ -typedef ext_errno (*touch_drv_upgrade_handle)(uint8_t *data_buff, uint8_t buf_len); -typedef struct { - mc_tp_upgrade cmd_id; - touch_drv_upgrade_handle process_cb; -} touch_drv_upgrade_proc; - -typedef ext_errno (*touch_hal_rawdata_handle)(uint8_t *data_buf, uint8_t buf_len); -typedef struct { - mc_tp_rawdata cmd_id; - touch_hal_rawdata_handle process_cb; -} touch_drv_rawdata_proc; - -typedef struct { - uint16_t chip_id; - uint16_t vendor_id; - uint16_t chip_hw_id; - uint8_t chip_info[FT6X46_DEVICE_INFO_SIZE]; - uint16_t firmware_version; - uint16_t minor_firmware_version; - uint16_t reg_version; - uint32_t flash_fw_version; - uint16_t int_mask; - uint16_t touch_mode; - uint32_t irq_count; - uint32_t touch_count; - uint32_t page_size; - uint16_t header_size; - uint16_t image_size; - osal_mutex ops_mux; - bool fw_upgrade_flag; - bool gesture_wakeup; - bool host_dev_init_flag; - ft6x46_sw_power_status power_status; - ft6x46_work_status work_status; - ft6x46_sw_power_status chip_sw_power_status; - ft6x46_device_status chip_status; - input_event_info touch_msg; - ft6x46_panel_data panel_info; - tp_peripheral_attr dev_attr; - ft6x46_tsp_rawdata tsp_raw_data; - void *p_void; - uint32_t tp_event; - touch_drv_upgrade_proc upgrade_table[FT6X46_FWGRADE_CMD_NUM]; - touch_drv_rawdata_proc raw_data_table[FT6X46_RAWDATA_CMD_NUM]; -} ft6x46_drv_data; - -ext_errno ft6x46_init(void); -ext_errno ft6x46_deinit(void); -ext_errno ft6x46_set_power_mode(tp_work_mode power_mode); -ext_errno ft6x46_get_power_mode(uint32_t *power_mode); -ext_errno ft6x46_resume(void); -ext_errno ft6x46_suspend(void); -ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len); -ext_errno ft6x46_host_init_sample(void); -#ifdef __cplusplus -#if __cplusplus - } -#endif -#endif - -#endif diff --git a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c b/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c deleted file mode 100644 index 4591a7d7e..000000000 --- a/fd230_driver_patch/20240503.170906/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c +++ /dev/null @@ -1,491 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: touch screen driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "touch_screen_drv.h" -#include "tcxo.h" -#include "i2c.h" -#include "common_def.h" -#include "soc_osal.h" -#include "touch_screen_def.h" -#include "input_app.h" -#if defined(TPTYPE_TMA525B) -#include "tma525b_drv1.h" -#include "tma525b_ctrl.h" -#elif defined(TPTYPE_ZTW523) -#include "ztw523_drv1.h" -#include "ztw523_ctrl.h" -#elif defined(TPTYPE_FT6X46) -#include "ft6x46_drv1.h" -#include "ft6x46_ctrl.h" -#else -#include "ztw523_drv1.h" -#include "ztw523_ctrl.h" -#endif - -#if defined(TPTYPE_TMA525B) -#define TOUCH_I2C_BUS TMA525B_I2C_BUS -#define TOUCH_INT_GPIO TMA525B_INT_GPIO -#define TOUCH_RESET_GPIO TMA525B_RESET_GPIO -#elif defined(TPTYPE_ZTW523) -#define TOUCH_I2C_BUS ZTW523_I2C_BUS -#define TOUCH_INT_GPIO ZTW523_INT_GPIO -#define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -#elif defined(TPTYPE_FT6X46) -#define TOUCH_I2C_BUS FT6X46_I2C_BUS -#define TOUCH_INT_GPIO FT6X46_INT_GPIO -#define TOUCH_RESET_GPIO FT6X46_RESET_GPIO -#else -#define TOUCH_I2C_BUS ZTW523_I2C_BUS -#define TOUCH_INT_GPIO ZTW523_INT_GPIO -#define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -#endif - -#define TOUCH_SCREEN_DEV_NAME_LEN 16 -#define TOUCH_SCREEN_DEVNAME "input/event" -#define TOUCH_SCREEN_DYNAMIC_MINOR 65 -#define TOUCH_SCREEN_CMDID_MAX 16 - -#define TOUCH_SCREEN_TASK_PRIO 5 -#define TOUCH_SCREEN_TASK_SIZE 0x800 -#define TOUCH_SCREEN_QUEUE_MAX_SIZE 60 -#define TOUCH_SCREEN_READY_EVENT (1 << 0) - -struct ts_driver_data g_touch_drv = {0}; -struct ts_driver_data *g_attr = NULL; - -report_event_cb g_report_event_cb = NULL; - -#if defined(SUPPORT_POWER_MANAGER) -event_callback_func g_power_manager_cb = NULL; -#endif - -static struct ts_driver_data *touch_screen_get_driver_data(void) -{ - return &g_touch_drv; -} - -static uint32_t touch_screen_get_state(struct ts_driver_data *tsdd) -{ - if (tsdd != NULL && tsdd->queue != NULL) { - return (uint32_t)ts_queue_is_empty(tsdd->queue); - } - - if (tsdd == NULL) { - tp_err("tsdd is null!"); - return EXT_ERR_FAILURE; - } - if (tsdd->queue == NULL) { - tp_err("tsdd queue is null!"); - } - - return EXT_ERR_FAILURE; -} - -static void convert_touch_info(input_dev_data_t* data, input_event_info* touch_info) -{ - data->x = (int16_t)touch_info->tp_event_info.x_axis[0]; - data->y = (int16_t)touch_info->tp_event_info.y_axis[0]; - data->type = INDEV_TYPE_TOUCH; - data->timestamp = (uint32_t)touch_info->tv_usec; - if ((touch_info->tp_event == MC_TP_PRESS) || (touch_info->tp_event == MC_TP_MOVE)) { - data->state = INDEV_STATE_PRESS; - } else if (touch_info->tp_event == MC_TP_RELEASE) { - data->state = INDEV_STATE_RELEASE; - } else { - data->state = INDEV_STATE_UNKNOWN; - } -} - -static void report_or_enqueue_event(input_event_info* touch_info, struct ts_driver_data *tsdd) -{ - if (g_report_event_cb != NULL) { - input_dev_data_t data; - convert_touch_info(&data, touch_info); - if (data.state == INDEV_STATE_UNKNOWN) { - return; - } - g_report_event_cb(&data); - } else { - int32_t ret = ts_en_queue(tsdd->queue, touch_info); - if (ret != EXT_ERR_SUCCESS) { - tp_err("Failed to enqueue ts queue! ret=0x%x", ret); - } - } -} -#if defined(SUPPORT_POWER_MANAGER) -static void report_event_to_power_manager(input_event_info *touch_info) -{ - if (g_power_manager_cb != NULL) { - input_dev_data_t data; - convert_touch_info(&data, touch_info); - if (data.state == INDEV_STATE_UNKNOWN) { - return; - } - g_power_manager_cb(data.state, 0); - } - return; -} - -uint32_t ts_register_power_manager_cb(event_callback_func callback) -{ - if (g_power_manager_cb != NULL) { - return EXT_ERR_FAILURE; - } - g_power_manager_cb = callback; - return EXT_ERR_SUCCESS; -} -#endif -ext_errno touch_info_process(void) -{ - struct ts_driver_data *tsdd = touch_screen_get_driver_data(); - input_event_info touch_info; - int32_t ret = 0; - - if (tsdd->touch_api->touch_get_tpinfo != NULL) { - ret = tsdd->touch_api->touch_get_tpinfo((uint8_t *)(&touch_info), sizeof(input_event_info)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("get touch info fail! ret=0x%x", ret); - } - - report_or_enqueue_event(&touch_info, tsdd); -#if defined(SUPPORT_POWER_MANAGER) - report_event_to_power_manager(&touch_info); -#endif - } - - return EXT_ERR_SUCCESS; -} - -static void ts_callback_func(void) -{ - ext_errno ret; - if (g_attr != NULL) { - common_notify_mail_t mail = {0}; - mail.comm.app = APP_TOUCH; - ret = osal_msg_queue_write_copy(get_app_queue_id(), (void *)&mail, - sizeof(common_notify_mail_t), 0); - if (ret != OSAL_SUCCESS) { - tp_err("touch app msg send failed! err=0x%x! \r\n", ret); - } - } -} - -static ext_errno ts_register_callback(struct ts_driver_data *attr) -{ - ext_errno ret = EXT_ERR_FAILURE; - g_attr = attr; - - if (attr->touch_api->register_callback != NULL) { - ret = attr->touch_api->register_callback(attr->private_data, ts_callback_func); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register touch screen callback fail! ret=0x%x", ret); - return ret; - } - } else { - tp_err("touch screen callback register func is empty!"); - } - - return ret; -} - -static ext_errno ts_unregister_callback(struct ts_driver_data *attr) -{ - ext_errno ret = EXT_ERR_FAILURE; - - if (attr->touch_api->unregister_callback != NULL) { - ret = attr->touch_api->unregister_callback(attr->private_data); - if (ret != EXT_ERR_SUCCESS) { - tp_err("unregister touch screen callback fail! ret=0x%x", ret); - return ret; - } - g_attr = NULL; - } else { - tp_err("touch screen callback unregister func is empty!"); - } - - return ret; -} - -static int32_t ts_dev_open(const void *private_data) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - if (private_data == NULL) { - tp_err("ts_open: invalid dev or driver_data!\n"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - tsdd->queue = ts_init_queue(TOUCH_SCREEN_QUEUE_MAX_SIZE); - if (tsdd->queue == NULL) { - tp_err("create touch screen queue fail!\r\n"); - return EXT_ERR_FAILURE; - } - ret = osal_event_init(&(tsdd->event)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch osal_event_init fail! ret=0x%x\r\n", ret); - return ret; - } - - tsdd->task_handle = osal_kthread_create((osal_kthread_handler)touch_info_process, - (void *)touch_screen_get_driver_data(), - "touch_screen", TOUCH_SCREEN_TASK_SIZE); - if (tsdd->task_handle == NULL) { - tp_err("create touch screen thread fail!\r\n"); - return EXT_ERR_FAILURE; - } - osal_kthread_set_priority(tsdd->task_handle, TOUCH_SCREEN_TASK_PRIO); - - if (tsdd->touch_api->touch_init != NULL) { - ret = tsdd->touch_api->touch_init(tsdd->private_data); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch_init fail! ret=0x%x\r\n", ret); - return ret; - } - } - - ret = ts_register_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register callback fail! ret=0x%x\r\n", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static int32_t ts_dev_release(const void *private_data) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - if (private_data == NULL) { - tp_err("ts_dev_release: invalid dev or driver_data!\n"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - ret = ts_unregister_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("unregister callback fail! ret=0x%x\r\n", ret); - return ret; - } - return EXT_ERR_SUCCESS; -} - -static uint32_t ts_dev_poll(const osal_poll *osal_poll, const void *private_data) -{ - unused(osal_poll); - unused(private_data); - // todo: get tsdd from private_data - struct ts_driver_data *tsdd = NULL; - tsdd = touch_screen_get_driver_data(); - if (tsdd == NULL) { - tp_err("ts_driver_data is NULL"); - return EXT_ERR_FAILURE; - } - - if (tsdd->ops->priv_operator != NULL && tsdd->ops->priv_operator(tsdd) == 0) { - return OSAL_POLLIN | OSAL_POLLRDNORM; - } - - return EXT_ERR_SUCCESS; -} - -static int32_t ts_ioctl_read_touch_info(uint32_t cmd, void *arg, const void *private_data) -{ - unused(cmd); - ext_errno ret; - struct ts_driver_data *tsdd = NULL; - input_event_info *touch_info = (input_event_info *)arg; - - if (private_data == NULL) { - tp_err("invalid dev or driver_data!"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - if (tsdd->queue == NULL) { - tp_err("invalid touch screen queue!"); - return EXT_ERR_FAILURE; - } - - ret = ts_de_queue(tsdd->queue, touch_info); - if (ret != EXT_ERR_SUCCESS) { - tp_err("get touch info fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static osal_ioctl_cmd g_ts_cmd_list[TOUCH_SCREEN_CMDID_MAX] = { - {TOUCH_SCREEN_GET_EVENT, ts_ioctl_read_touch_info}, -}; - -static osal_dev *g_ts_dev = NULL; -static osal_fileops g_ts_ops = { - .open = ts_dev_open, - .release = ts_dev_release, - .poll = ts_dev_poll, - .cmd_list = g_ts_cmd_list, - .cmd_cnt = sizeof(g_ts_cmd_list) / sizeof(g_ts_cmd_list[0]), -}; - -struct ts_ops g_ts_status_ops = { - .priv_operator = touch_screen_get_state, -}; - -static ext_errno touch_screen_register_device(void) -{ - ext_errno ret; - - g_touch_drv.private_data = touch_screen_get_peri_attr(); - g_touch_drv.touch_api = touch_screen_get_api(); - g_touch_drv.ops = &g_ts_status_ops; - g_ts_dev = osal_dev_create(TOUCH_SCREEN_DEVNAME); - g_ts_dev->minor = TOUCH_SCREEN_DYNAMIC_MINOR; - g_ts_dev->fops = &g_ts_ops; - - ret = osal_dev_register(g_ts_dev); - if (ret != 0) { - tp_err("touch screen osal_dev_register --------failed! ret=0x%x\n", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno touch_screen_module_init(void) -{ - ext_errno ret; - - ret = touch_screen_register_device(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch_screen_register_device ----------failed! ret=0x%x\n", ret); - } - tp_err("touch_screen_register_device ----------succ!!!\n"); - - return EXT_ERR_SUCCESS; -} - -ext_errno touch_screen_module_deinit(void) -{ - return EXT_ERR_SUCCESS; -} - -uint32_t ts_register_report_event_cb(report_event_cb callback) -{ - if (g_report_event_cb != NULL) { - return EXT_ERR_FAILURE; - } - g_report_event_cb = callback; - return EXT_ERR_SUCCESS; -} - -uint32_t ts_unregister_report_event_cb(void) -{ - g_report_event_cb = NULL; - return EXT_ERR_SUCCESS; -} - -uint32_t ts_init(void) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - - g_touch_drv.private_data = touch_screen_get_peri_attr(); - g_touch_drv.touch_api = touch_screen_get_api(); - g_touch_drv.ops = &g_ts_status_ops; - tsdd = touch_screen_get_driver_data(); - tsdd->queue = ts_init_queue(TOUCH_SCREEN_QUEUE_MAX_SIZE); - if (tsdd->queue == NULL) { - tp_err("create touch screen queue fail!\r\n"); - return EXT_ERR_FAILURE; - } - - ret = ts_register_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register callback fail! ret=0x%x\r\n", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -uint32_t ts_read(const input_dev_data_t* data) -{ - unused(data); - return EXT_ERR_SUCCESS; -} - -uint32_t ts_close(void) -{ - return EXT_ERR_SUCCESS; -} - -void touch_screen_suspend(void) -{ - touch_peripheral_api *touch_ptr = touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_sleep(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch sleep ret=0x%x", ret); } -#if defined(TPTYPE_FT6X46) - if (ft6x46_suspend() == EXT_ERR_SUCCESS){ - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt - } -#else - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -#endif -} - -void touch_screen_resume(void) -{ - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt - i2c_recovery_reg(TOUCH_I2C_BUS); -#if defined(TPTYPE_TMA525B) - tma525b_init(); - touch_peripheral_api *touch_ptr = (touch_peripheral_api*)touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_resume(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch resume ret=0x%x", ret); } -#elif defined(TPTYPE_ZTW523) - ztw523_resume(); -#elif defined(TPTYPE_FT6X46) - ft6x46_resume(); -#else - ztw523_resume(); -#endif - uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt -} - -void touch_suspend_for_i2c(void) -{ - i2c_save_reg(TOUCH_I2C_BUS); -} - -void touch_resume_for_i2c(void) -{ - i2c_recovery_reg(TOUCH_I2C_BUS); -} - -void touch_screen_restart(void) -{ - uapi_i2c_deinit(TOUCH_I2C_BUS); - uapi_i2c_master_init(TOUCH_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ -#if defined(TPTYPE_TMA525B) - tma525b_resume(); -#elif defined(TPTYPE_ZTW523) - ztw523_resume(); -#elif defined(TPTYPE_FT6X46) - ft6x46_resume(); -#else - ztw523_resume(); -#endif - uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt -} \ No newline at end of file diff --git a/fd230_driver_patch/20240503.170906/diff/commit.txt b/fd230_driver_patch/20240503.170906/diff/commit.txt deleted file mode 100644 index e978b23e3..000000000 --- a/fd230_driver_patch/20240503.170906/diff/commit.txt +++ /dev/null @@ -1 +0,0 @@ -347bcf2308a02361676d277470988adab86e3337 diff --git a/fd230_driver_patch/20240503.170906/diff/local_diff_patch.txt b/fd230_driver_patch/20240503.170906/diff/local_diff_patch.txt deleted file mode 100644 index 4975585a8..000000000 --- a/fd230_driver_patch/20240503.170906/diff/local_diff_patch.txt +++ /dev/null @@ -1,918 +0,0 @@ -diff --git a/code/sdk/application/audio/vendor/CMakeLists.txt b/code/sdk/application/audio/vendor/CMakeLists.txt -index e3152c2ca..c1c31962b 100644 ---- a/code/sdk/application/audio/vendor/CMakeLists.txt -+++ b/code/sdk/application/audio/vendor/CMakeLists.txt -@@ -39,6 +39,21 @@ set(COMPONENT_INC ${COMPONENT_INC} - ) - endif() - -+if("${CFG_SAP_VENDOR_DRIVER_AW88166_SUPPORT}" STREQUAL "y") -+set(COMPONENT_SRC ${COMPONENT_SRC} -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw88166.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_calib.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_device.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166/aw883xx_pid_2066_init.c -+) -+set(COMPONENT_INC ${COMPONENT_INC} -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166 -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166 -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/config/aw88166/mono/16bit -+) -+endif() -+ - if("${CFG_SAP_VENDOR_DRIVER_ANC_CODEC_SUPPORT}" STREQUAL "y") - set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/anc_codec.c -diff --git a/code/sdk/application/audio/vendor/aw88166/aw88166.c b/code/sdk/application/audio/vendor/aw88166/aw88166.c -index d25e8db7f..a0f2d29a3 100644 ---- a/code/sdk/application/audio/vendor/aw88166/aw88166.c -+++ b/code/sdk/application/audio/vendor/aw88166/aw88166.c -@@ -19,8 +19,8 @@ - - static td_bool g_aw88166_i2c_inited = TD_FALSE; - --#define AW88166_PWR_ON_PIN S_MGPIO4 --#define AW88166_I2C_BUS_ID I2C_BUS_0 -+#define AW88166_PWR_ON_PIN S_AGPIO_L25 -+#define AW88166_I2C_BUS_ID I2C_BUS_3 - #define AW88166_I2C_DEV_ADDR 0x34 - - static td_s32 aw_dev0_i2c_write_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -index a812c9efc..479f285ec 100644 ---- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -+++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -@@ -28,6 +28,8 @@ - #include "tma525b_drv1.h" - #elif defined(TPTYPE_ZTW523) - #include "ztw523_touch1.h" -+#elif defined(TPTYPE_FT6X46) -+#include "ft6x46_touch1.h" - #else - #include "ztw523_touch1.h" - #endif -@@ -40,9 +42,13 @@ - * define AUDIO_SMARTPA_AW88166 : macro to init smartpa aw88166; - * define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 : macro to specify i2s id connecting to smartpa aw88166; - */ -+#if 0 - #define AUDIO_SMARTPA_AW88262 - #define AUDIO_SMARTPA_AW88262_I2S_ID UAPI_SND_OUT_PORT_I2S2 -- -+#else -+#define AUDIO_SMARTPA_AW88166 -+#define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 -+#endif - #endif /* DSP_EXIST */ - #include "panic.h" - #include "board_init.h" -@@ -71,6 +77,8 @@ static void sample_gfx_init(void) - tma525b_host_init_sample(); - #elif defined(TPTYPE_ZTW523) - ztw523_host_init_sample(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_host_init_sample(); - #else - ztw523_host_init_sample(); - #endif -diff --git a/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -index 7dcdf3238..35ba07c27 100644 ---- a/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -+++ b/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -@@ -43,6 +43,12 @@ void RebootPresenter::OnResume(void) {} - - void RebootPresenter::OnStop(void) {} - -+ -+extern "C" -+{ -+extern void uapi_sys_shipmode(uint32_t arg); -+extern uint32_t mcu_os_sys_reset(uint8_t *para, uint32_t para_len); -+} - bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) - { - UNUSED(event); -@@ -54,9 +60,11 @@ bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_BUTTON) == 0) { - // 重启 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "REBOOTDEVICE_BUTTON OnClick"); -+ mcu_os_sys_reset(NULL,NULL); - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_BUTTON) == 0) { - // 关机 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SHUTDOWNDEVICE_BUTTON OnClick"); -+ uapi_sys_shipmode(0); - } - return true; - } -diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py -index 370331fda..849bfc8f4 100644 ---- a/code/sdk/build/config/target_config/brandy/config.py -+++ b/code/sdk/build/config/target_config/brandy/config.py -@@ -114,6 +114,8 @@ target = { - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', -+ 'FT_SINGLE_UART', -+ 'TPTYPE_FT6X46', - 'ENABLE_ECC', 'MIPI_ULPS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', -@@ -125,7 +127,7 @@ target = { - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, -- 'fs_image': False -+ 'fs_image': True - }, - #native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-xts': { -@@ -213,12 +215,15 @@ target = { - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", -+ 'FT_SINGLE_UART','TPTYPE_FT6X46', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', -- 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], -+ 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header', -+ 'at_cmd' -+ ], - 'ram_component_set': ['pinctrl', 'dfx_set' ,'gpu'] - }, - 'brandy-xts-r': { -@@ -266,9 +271,16 @@ target = { - "SSB_USE_PLL", "VERSION_STANDARD", "BUILD_APPLICATION_SSB", "LIBBOOTLOADER", "LIBCODELOADER", - "LIBCPU_UTILS", "LIBAPP_VERSION", "LIBPANIC", "LIBCONNECTIVITY", "LIBERROR_CODE", "LIBSEC_RANDOM", - "LIBCODELOADER_SSB", "LIBJLINK_LOAD", "LIBLIB_UTILS", "LIBBUILD_VERSION", -- "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER'], -+ 'ENABLE_ECC', -+ "CFG_DRIVERS_NANDFLASH", -+ "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER', -+ 'FT_SINGLE_UART' -+ ], - 'ram_component': ['arch_port', 'hal_l2ram', 'sec_boot', 'libboundscheck', -- 'dfx_exception', 'error_code', 'psram', 'osal', 'cmn_header', 'boot_ulp', 'boot_nandflash'], -+ 'dfx_exception', 'error_code', 'psram', 'osal', 'cmn_header', -+ 'boot_ulp', -+ 'boot_nandflash' -+ ], - 'ram_component_set': ['pinctrl'], - 'target': 'ssb', - } -diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -index eb3d405d1..d3b5782d9 100644 ---- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -+++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -@@ -11,6 +11,13 @@ - #include "gpio_porting.h" - #include "platform_types.h" - -+#ifdef SUPPORT_CAT1_SERVICE -+#include "cat1_ctl.h" -+#endif -+ -+#ifdef ENABLE_CYWEE -+extern void cywee_int1_callback(pin_t pin, uintptr_t param); -+#endif - /** - * @addtogroup connectivity_config_boards - * @{ -@@ -46,12 +53,12 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO24 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO25 - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 sdio -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 NC - #if (defined CFG_DRIVERS_NANDFLASH) - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_HGPIO7 -@@ -68,50 +75,47 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO11 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 emmc clk - #endif -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO0 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO1 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO2 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO3 -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO0 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO1 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO2 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO3 NC - --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 --#else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 --#endif -+// #if (defined BRANDY_PRODUCT_EVB4) -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO4 NC -+// #else -+ // { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 NC -+// #endif - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO5 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO6 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO7 --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO8 --#else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO8 E0B2 VCI_EN --#endif -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO9 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO10 -- { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 evb2 dsp i2c smartpa -- { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 -- { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 touch i2c -- { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 -- { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 -- { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 -- { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 evb4 dsp i2c pa -- { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC -+ -+ { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC -+ { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA -+ { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c -+ { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA -+ { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ -+ { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor -+ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ -+ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx -- { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 -- { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO23 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO24 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO25 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO26 -+ { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 uart1 rts -+ { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 uart1 cts -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO23 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO24 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO25 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO26 NC - #if (defined QSPI_DISPLAY) - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO27 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO28 -@@ -131,67 +135,79 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO34 huart rx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO35 - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO36 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO38 -+#if 0 -+ { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx -+ { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO38 uart rx -+#else -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO38 uart rx NC -+#endif -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L0 NC - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L0 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L1 i2s1 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L2 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L3 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L4 -+ - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L5 --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 E0B4 VCI_EN --#else - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 i2s0 --#endif - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L7 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L8 -+ - #if (defined FT_BT_UART) - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L9 uart2 txd - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 uart2 rxd - #else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 - #endif -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 a+g int1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 a+g int2 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L13 i2s2 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L14 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L15 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L16 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L17 dsp i2c -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L18 dsp i2c -- { HAL_PIO_FUNC_BT_FREQ, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 -- { HAL_PIO_FUNC_BT_STATUS, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L20 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L21 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L11 G_INT1 -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L14 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L15 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ - #ifdef QSPI_DISPLAY - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE - #else - { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE - #endif -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 emmc reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L29 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L31 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 -- -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R3 lcd reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_R4 tp reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 als int -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R10 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ-+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ-+ #if VIB_USE_PWM -+ // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+ // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+ #else -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+ #endif -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable - - #if CORE == APPS - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO0 mode not config -@@ -214,18 +230,77 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - */ - /** - * @brief Global evb gpio functions. -+ * -+ * -+ * typedef struct { -+ pin_t gpio; -+ hal_gpio_direction_t direction; -+ hal_gpio_level_t level; -+ uint32_t triger; -+ hal_gpio_callback_t callback; -+} hal_gpio_config_t; - */ -+ -+ -+//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -+//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 -+#define DEFAULT_POWERON_CAT1 0 -+ -+//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ - const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { - -- // S_AGPIO_L17 -- { -- S_AGPIO_L17, -- HAL_GPIO_DIRECTION_OUTPUT, -- HAL_GPIO_LEVEL_HIGH, -- 0, -- NULL -- }, -- -+#if DEFAULT_POWERON_CAT1 -+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on -+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+ // S_AGPIO_L28 Cat1 reset ---- low reset -+ { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#else -+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on -+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L28 Cat1 reset ---- low reset -+ { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+#endif -+ // S_AGPIO_L17 HX3507_INT -+ // { S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L12 SDIO_BT -+ { S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L13 SCLK_BT -+ { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ -+ // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset -+ { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ-+ { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ -+ //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ -+ { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#if 1 //ĬÈÏÕý³£³äµç -+// #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -+// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç -+ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#else -+ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#endif -+ -+//ĬÈϹرÕÂí´ï -+ { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 -+ { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+ -+#ifdef ENABLE_CYWEE -+ /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19*/ -+ //{ S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, GPIO_INTERRUPT_RISING_EDGE, cywee_int1_callback }, -+ { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int1_callback }, -+ // { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+#endif -+ /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ -+ { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#ifdef SUPPORT_CAT1_SERVICE -+ /**cat1 ring input key*/ -+ { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cat1_ring_isr_callback}, -+#endif - }; - /** - * @} -diff --git a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -index 8eefb6bd2..04cee1756 100644 ---- a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -+++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -@@ -90,8 +90,8 @@ - #define RESOLUTION_WIDTH 368 - #define RESOLUTION_HEIGHT 448 - #else --#define RESOLUTION_WIDTH 454 --#define RESOLUTION_HEIGHT 454 -+#define RESOLUTION_WIDTH 466//454 -+#define RESOLUTION_HEIGHT 466//454 - #endif - - /********************Other module board config********************/ -@@ -142,7 +142,7 @@ - #define BUILTIN_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 - - // 音频内置输出设备 --#define BUILTIN_SND_OUT_PORT 0x12 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S2 枚举 -+#define BUILTIN_SND_OUT_PORT 0x10 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S0 枚举 - #define BUILTIN_SND_OUT_PORT_NUM 1 // 端口个数 - #define BUILTIN_SND_OUT_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define BUILTIN_SND_OUT_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -@@ -158,32 +158,32 @@ - - // 音频外挂输入设备 - #define EXTERNAL_AI_PORT 1 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_I2S1 枚举 --#define EXTERNAL_AI_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 --#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 --#define EXTERNAL_AI_I2S_ATTR_MCLK 4 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_768_FS 枚举 --#define EXTERNAL_AI_I2S_ATTR_BCLK 24 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_24_DIV 枚举 -+#define EXTERNAL_AI_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -+#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -+#define EXTERNAL_AI_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 -+#define EXTERNAL_AI_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 - #define EXTERNAL_AI_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 - #define EXTERNAL_AI_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_AI_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 - #define EXTERNAL_AI_I2S_ATTR_PCM_DELAY_CYCLE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 --#define EXTERNAL_AI_PCM_ATTR_CHANNELS 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -+#define EXTERNAL_AI_PCM_ATTR_CHANNELS 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 --#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 --#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 -+#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -+#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 50 // 每秒帧数 , EG810 pcm 20ms 一帧 - - // 音频外挂输出设备 - #define EXTERNAL_SND_OUT_PORT 0x11 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S1 枚举 --#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -+#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_SND_OUT_AUDIO_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 --#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -+#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 - #define EXTERNAL_SND_OUT_PORT_NUM 1 // 端口个数 - #define EXTERNAL_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 - #define EXTERNAL_SND_OUT_I2S_ATTR_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 4 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_768_FS 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 -+#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -+#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 12.288M /16k = -+#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 - #define EXTERNAL_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 --#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 24 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_24_DIV 枚举 -+#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 12.288M / 256k = 48 - - // Sleep option - #define CONFIG_PM_TICKLESS_EN YES -@@ -196,9 +196,9 @@ - #define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK NO - - // LCD VCI_EN --#define VCI_LCD_GPIO S_AGPIO_L6 -+#define VCI_LCD_GPIO S_AGPIO_L24 - #define DISPLAY_TE_GPIO S_AGPIO_L22 --#define RESET_LCD_GPIO S_AGPIO_R3 -+#define RESET_LCD_GPIO S_AGPIO_L27 - - // TP CONFIG - #define ZTW523_I2C_BUS I2C_BUS_1 -@@ -207,6 +207,10 @@ - #define TMA525B_I2C_BUS I2C_BUS_1 - #define TMA525B_INT_GPIO S_AGPIO_R5 - #define TMA525B_RESET_GPIO S_AGPIO_R4 -+#define FT6X46_I2C_BUS I2C_BUS_1 -+#define FT6X46_INT_GPIO S_AGPIO_R5 -+#define FT6X46_RESET_GPIO S_AGPIO_R4 -+ - /** - * @} - */ -diff --git a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -index b6f409070..d2203a1b0 100644 ---- a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -+++ b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -@@ -56,6 +56,12 @@ - #define UARTRESET (M_CTL_RB_BASE + 0x0168) - #define UARTBUS0 0x1 - #define UARTBUS1 0x0 -+ -+/** -+ * CUSTOM_UART_RATE = 500000 可以看蓝牙日志 -+ * 2000000 可以加快下载文件速度 -+*/ -+#define CUSTOM_UART_RATE 2000000 - typedef struct { - pin_mode_t tx_pin_mode; - pin_mode_t rx_pin_mode; -@@ -181,7 +187,11 @@ static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { - NULL, - #endif - { -- .baud_rate = 115200, -+ #ifdef ENABLE_SLIP -+ .baud_rate = 921600, -+ #else -+ .baud_rate = CUSTOM_UART_RATE, -+ #endif - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, -@@ -221,7 +231,7 @@ static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { - log_factory_at_callback, - #endif - { -- .baud_rate = 500000, -+ .baud_rate = CUSTOM_UART_RATE, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, -@@ -298,7 +308,13 @@ void irq_uart1_handler(void) - static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining) - { - unused(remaining); -+ #ifndef FT_SINGLE_UART - at_cmd_msg_receive_handler((uint8_t *)buf, buf_len); -+ #endif -+ -+ #ifdef ENABLE_SLIP -+ slip_receive_handler((uint8_t *)buf, buf_len); -+ #endif - hal_uart_clear_pending(SW_DEBUG_UART_BUS); - } - #endif -diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -index 54950d78a..d342a8c8e 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -+++ b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -@@ -9,11 +9,30 @@ - #include "common_def.h" - #include "lcd_config.h" - -+#define LCD_EDO_466X466_SCREEN_ID 0x1133 - #define LCD_EDO_454X454_SCREEN_ID 0xf00 - #define LCD_BOE_454X454_SCREEN_ID 0x500 - #define LCD_SH_240X296_SCREEN_ID 0x101 - #define LCD_BOE_194X368_SCREEN_ID 0x4a00 - -+const combo_dev_cfg_t g_panel_466x466_60_config = { -+ .devno = 0, -+ .lane_id = {0, -1}, -+ .out_mode = OUT_MODE_DSI_CMD, -+ .out_format = OUT_FORMAT_RGB_24BIT, -+ .sync_info = { -+ .hsa_pixels = 10, // hsa 10 pixels -+ .hbp_pixels = 10, // hbp 10 pixels -+ .hact_pixels = 466, // hact 466 pixels -+ .hfp_pixels = 10, // hfp 10 pixels -+ .vsa_lines = 4, // vsa 4 lines -+ .vbp_lines = 12, // vbp 12 lines -+ .vact_lines = 466, // vact 466 lines -+ .vfp_lines = 10, // vfp 10 lines -+ }, -+ .phy_data_rate = 480, // 480Mbps -+ .pixel_clk = 20000, // 20000KHz -+}; - const combo_dev_cfg_t g_panel_454x454_60_config = { - .devno = 0, - .lane_id = {0, -1}, -@@ -67,6 +86,14 @@ const lcd_cmd_sequ g_common_cmd_display_off[] = { - {1, 1, {0x10}, 120}, /* sleep in */ - }; - -+/* display off sequence for common lcd */ -+const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { -+ {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ -+ {1, 1, {0x28}, 0}, /* display off */ -+ {1, 1, {0x10}, 120}, /* sleep in */ -+ {1, 2, {0x4f, 0x01}, 0}, /* ½ødeepstandby ״̬ */ -+}; -+ - /* sleep in sequence for common lcd */ - const lcd_cmd_sequ g_common_cmd_sleep_in[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ -@@ -110,6 +137,19 @@ lcd_cmd_sequ g_common_cmd_brightness[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, - }; -+const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = { -+ {1, 2, {0xfe, 0x00}, 0}, -+ {1, 2, {0x3a, 0x77}, 0}, -+ {1, 2, {0x35, 0x00}, 0}, -+ {1, 2, {0x53, 0x20}, 0}, -+ // {1, 2, {0x51, 0xff}, 0}, -+ {1, 2, {0x63, 0xff}, 0}, -+ {1, 5, {0x2A, 0x00, 0x06, 0x01, 0xd7}, 0}, -+ {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xd1}, 0}, -+ {1, 1, {0x11}, 120}, -+ {1, 1, {0x29}, 0}, -+}; -+ - - /* init sequence for EDO 454*454 lcd */ - const lcd_cmd_sequ g_edo_454x454_screen_init_on[] = { -@@ -193,6 +233,11 @@ const lcd_cmds_sequ g_display_off_cmds = { - .cmd_cnt = array_size(g_common_cmd_display_off), - }; - -+const lcd_cmds_sequ g_466x466_display_off_cmds = { -+ .cmd = g_common_466x466_cmd_display_off, -+ .cmd_cnt = array_size(g_common_466x466_cmd_display_off), -+}; -+ - const lcd_cmds_sequ g_idle_in_cmds = { - .cmd = g_common_cmd_idle_in, - .cmd_cnt = array_size(g_common_cmd_idle_in), -@@ -218,6 +263,11 @@ const lcd_cmds_sequ g_brightness_cmds = { - .cmd_cnt = array_size(g_common_cmd_brightness), - }; - -+const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = { -+ .cmd = g_edo_466x466_screen_init_on, -+ .cmd_cnt = array_size(g_edo_466x466_screen_init_on), -+}; -+ - const lcd_cmds_sequ g_edo_454x454_screen_init_on_cmds = { - .cmd = g_edo_454x454_screen_init_on, - .cmd_cnt = array_size(g_edo_454x454_screen_init_on), -@@ -249,6 +299,25 @@ const lcd_cmds_sequ g_sleep_out_cmds = { - }; - - const lcd_drv_cfg g_lcd_driver_ops[] = { -+ { -+ .bus_type = BUS_DISPLAY_MIPI, -+ .bus_cfg = &g_panel_466x466_60_config, -+ .x_start = 0x6, -+ .y_start = 0, -+ .fps = 60, -+ .lcd_id = LCD_EDO_466X466_SCREEN_ID, -+ .display_on_cmds = &g_edo_466x466_screen_init_on_cmds, -+ .display_off_cmds = &g_466x466_display_off_cmds, -+ .enter_idle_cmds = &g_idle_in_cmds, -+ .exit_idle_cmds = &g_idle_out_cmds, -+ .te_on_cmds = &g_te_on_cmds, -+ .te_off_cmds = &g_te_off_cmds, -+ .set_brightnes_cmds = &g_brightness_cmds, -+ .sleep_in_cmds = &g_sleep_in_cmds, -+ .sleep_out_cmds = &g_sleep_out_cmds, -+ .lcd_id_info.reg_addr = 0x04, -+ .lcd_id_info.read_len = 3, -+ }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, -diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -index 039f45c48..ea251e016 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -+++ b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -@@ -12,7 +12,7 @@ - #include "gpio.h" - #include "pinctrl_porting.h" - #include "product.h" -- -+#include "pinctrl.h" - static void lcd_drv_power_on(void) - { - #ifndef QSPI_DISPLAY -@@ -27,16 +27,35 @@ static void lcd_drv_power_on(void) - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_HIGH); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - } -- -+#define USE_OUTPUT_CTL 1 - static void lcd_drv_power_off(void) - { -+#if USE_OUTPUT_CTL -+ uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); -- uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); --#ifndef QSPI_DISPLAY -+ #ifndef QSPI_DISPLAY -+ uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); -+ uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); -+ #endif -+ uapi_tcxo_delay_ms(10); /* delay 10 ms */ -+ int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO); -+ int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO); -+ printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -+#else -+ uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); -+ uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿ -+ uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN); -+ #ifndef QSPI_DISPLAY - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_INPUT); --#endif -+ uapi_pin_set_pull(VCI_LCD_GPIO, PIN_PULL_DOWN); -+ #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ -+ int resetvalue = uapi_gpio_get_val(RESET_LCD_GPIO); -+ int lcd_envalue = uapi_gpio_get_val(VCI_LCD_GPIO); -+ printf("Input RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -+#endif -+ - } - - static lcd_drv_private g_lcd_private_api = { -diff --git a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -index b535f5555..56f8542af 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -+++ b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -@@ -173,7 +173,8 @@ static ext_errno lcd_get_ops(void) - } - } - -- g_lcd_info.brightness = DEFAULT_BRIGHTNESS; -+ if (g_lcd_info.brightness == 0) -+ g_lcd_info.brightness = DEFAULT_BRIGHTNESS; - - return EXT_ERR_SUCCESS; - fail: -diff --git a/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt b/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -index 6782d9cc1..6971096df 100644 ---- a/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -+++ b/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -@@ -21,6 +21,12 @@ set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c - ) -+elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -+set(SOURCES ${SOURCES} -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_ctrl.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_drv1.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_touch1.c -+) - else() - set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c -@@ -41,6 +47,12 @@ set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include - ) -+elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -+set(PUBLIC_HEADER -+ ${CMAKE_CURRENT_SOURCE_DIR} -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch -+ ${ROOT_DIR}/middleware/services/gui/hal/input/include -+) - else() - set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} -diff --git a/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c b/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -index d74083a98..4591a7d7e 100644 ---- a/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -+++ b/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -@@ -18,6 +18,9 @@ - #elif defined(TPTYPE_ZTW523) - #include "ztw523_drv1.h" - #include "ztw523_ctrl.h" -+#elif defined(TPTYPE_FT6X46) -+#include "ft6x46_drv1.h" -+#include "ft6x46_ctrl.h" - #else - #include "ztw523_drv1.h" - #include "ztw523_ctrl.h" -@@ -31,6 +34,10 @@ - #define TOUCH_I2C_BUS ZTW523_I2C_BUS - #define TOUCH_INT_GPIO ZTW523_INT_GPIO - #define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -+#elif defined(TPTYPE_FT6X46) -+#define TOUCH_I2C_BUS FT6X46_I2C_BUS -+#define TOUCH_INT_GPIO FT6X46_INT_GPIO -+#define TOUCH_RESET_GPIO FT6X46_RESET_GPIO - #else - #define TOUCH_I2C_BUS ZTW523_I2C_BUS - #define TOUCH_INT_GPIO ZTW523_INT_GPIO -@@ -427,8 +434,15 @@ void touch_screen_suspend(void) - touch_peripheral_api *touch_ptr = touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_sleep(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch sleep ret=0x%x", ret); } -+#if defined(TPTYPE_FT6X46) -+ if (ft6x46_suspend() == EXT_ERR_SUCCESS){ -+ i2c_save_reg(TOUCH_I2C_BUS); -+ uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -+ } -+#else - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -+#endif - } - - void touch_screen_resume(void) -@@ -442,6 +456,8 @@ void touch_screen_resume(void) - if (ret != EXT_ERR_SUCCESS) { tp_err("touch resume ret=0x%x", ret); } - #elif defined(TPTYPE_ZTW523) - ztw523_resume(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_resume(); - #else - ztw523_resume(); - #endif -@@ -466,6 +482,8 @@ void touch_screen_restart(void) - tma525b_resume(); - #elif defined(TPTYPE_ZTW523) - ztw523_resume(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_resume(); - #else - ztw523_resume(); - #endif diff --git a/fd230_driver_patch/20240503.170906/diff/modified_or_new_files.txt b/fd230_driver_patch/20240503.170906/diff/modified_or_new_files.txt deleted file mode 100644 index 4a25bdc52..000000000 --- a/fd230_driver_patch/20240503.170906/diff/modified_or_new_files.txt +++ /dev/null @@ -1,14 +0,0 @@ -code/sdk/application/audio/vendor/CMakeLists.txt -code/sdk/application/audio/vendor/aw88166/aw88166.c -code/sdk/application/brandy/brandy_standard/thread_pri_init.c -code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -code/sdk/build/config/target_config/brandy/config.py -code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -code/sdk/drivers/drivers/driver/lcd/lcd_config.c -code/sdk/drivers/drivers/driver/lcd/lcd_private.c -code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ diff --git a/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/CMakeLists.txt b/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/CMakeLists.txt deleted file mode 100644 index c1c31962b..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -#[[ -Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved. -Description: CMake audio sample module. -Author: audio -Create: 2023-06-09 -]] - -set(SAP_TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../drivers/drivers/driver/audio/source) -#=================================================================================== -include(${SAP_TOP_DIR}/build/cmake/audio_config.cmake) -#=================================================================================== -set(COMPONENT_NAME audio_vendor) -set(MODULE_NAME "dsp") -set(AUTO_DEF_FILE_ID TRUE) -#=================================================================================== -set(COMPONENT_SRC ) -#=================================================================================== -set(COMPONENT_INC - ${SAP_UAPI_DIR} - ${SAP_TOP_DIR}/include - ${SAP_TOP_DIR}/drv/vendor - ${SAP_TOP_DIR}/drv/include - ${SAP_TOP_DIR}/drv/common/include - ${SAP_TOP_DIR}/drv/arch/include - ${SAP_TOP_DIR}/drv/arch/${CFG_SAP_CHIP_TYPE}/include - ${SAP_TOP_DIR}/core/include - ${SAP_TOP_DIR}/core/common/include - ${SAP_TOP_DIR}/core/arch/${CFG_SAP_CHIP_TYPE}/include - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/common -) -#=================================================================================== -if("${CFG_SAP_VENDOR_DRIVER_AW88262_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88262/aw88262.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88262 -) -endif() - -if("${CFG_SAP_VENDOR_DRIVER_AW88166_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw88166.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_calib.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_device.c - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166/aw883xx_pid_2066_init.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166 - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166 - ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/config/aw88166/mono/16bit -) -endif() - -if("${CFG_SAP_VENDOR_DRIVER_ANC_CODEC_SUPPORT}" STREQUAL "y") -set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/anc_codec.c -) -set(COMPONENT_INC ${COMPONENT_INC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/sai01_dac_32.768k -) -endif() -#=================================================================================== -set(COMPONENT_DEF - "SAP_PROC_SUPPORT" -) -#=================================================================================== -include(${SAP_TOP_DIR}/build/cmake/audio_common.cmake) -install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/aw88166 "*") diff --git a/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/aw88166/aw88166.c b/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/aw88166/aw88166.c deleted file mode 100644 index a0f2d29a3..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/application/audio/vendor/aw88166/aw88166.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved. - * Description: source file for aw88166 driver - */ - -#include -#include "soc_osal.h" -#include "audio_debug.h" -#include "gpio.h" -#include "hal_gpio.h" -#include "i2c.h" -#include "pinctrl.h" -#include "vendor_common.h" -#include "soc_uapi_vendor.h" - -#include "aw883xx_init.h" -#include "aw883xx.h" -#include "aw_params.h" - -static td_bool g_aw88166_i2c_inited = TD_FALSE; - -#define AW88166_PWR_ON_PIN S_AGPIO_L25 -#define AW88166_I2C_BUS_ID I2C_BUS_3 -#define AW88166_I2C_DEV_ADDR 0x34 - -static td_s32 aw_dev0_i2c_write_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -{ - td_s32 ret; - i2c_data_t data; - const td_u8 reg_addr_len = sizeof(reg_addr); /* data len of reg_addr */ - const td_u8 send_len = len + reg_addr_len; /* pdata bytes && reg_addr len */ - td_u8 *send_data = osal_kmalloc_align(send_len, 0, 8); /* 8 : Align up to 8 bytes */ - - if (send_data == TD_NULL) { - ret = -1; /* -1:FAILED ERR CODE */ - vendor_log_fun_err(malloc, ret); - return ret; - } - - /* pack reg addr & reg data */ - *send_data = reg_addr; /* reg_addr */ - ret = memcpy_s(send_data + reg_addr_len, (send_len - reg_addr_len), pdata, len); /* pdata */ - if (ret != EOK) { - vendor_log_fun_err(memcpy_s, ret); - goto out; - } - - data.send_buf = send_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - ret = (td_s32)uapi_i2c_master_write(AW88166_I2C_BUS_ID, dev_addr, &data); - if (ret != ERRCODE_SUCC) { - vendor_log_fun_err(uapi_i2c_master_write, ret); - goto out; - } - -out: - if (send_data != TD_NULL) { - osal_kfree(send_data); - } - return ret; -} - -static td_s32 aw_dev0_i2c_read_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -{ - td_s32 ret; - - i2c_data_t data; - - data.send_buf = ®_addr; - data.send_len = sizeof(reg_addr); - data.receive_buf = pdata; - data.receive_len = len; - ret = (td_s32)uapi_i2c_master_writeread(AW88166_I2C_BUS_ID, dev_addr, &data); - if (ret != ERRCODE_SUCC) { - vendor_log_fun_err(uapi_i2c_master_writeread, ret); - return ret; - } - - return AUDIO_SUCCESS; -} - -static td_void aw_dev0_reset_gpio_ctl(bool state) -{ - uapi_gpio_set_val(AW88166_PWR_ON_PIN, state); -} - -static td_void aw88166_pwr_on_pin_init(td_void) -{ - uapi_gpio_set_dir(AW88166_PWR_ON_PIN, GPIO_DIRECTION_OUTPUT); -} - -static td_s32 aw88166_i2c_init(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* init i2c */ - vendor_trace_log_u32(AW88166_I2C_BUS_ID); - ret = (td_s32)uapi_i2c_master_init(AW88166_I2C_BUS_ID, I2C_BAUDRATE, I2C_HIGH_SPEED_CODE); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(uapi_i2c_master_init, ret); - return ret; - } - - vendor_printf("aw88166 i2c init success\n"); - audio_func_exit(); - return AUDIO_SUCCESS; -} - -static td_s32 aw88166_i2c_deinit(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* deinit i2c */ - vendor_trace_log_u32(AW88166_I2C_BUS_ID); - ret = (td_s32)uapi_i2c_deinit(AW88166_I2C_BUS_ID); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(uapi_i2c_deinit, ret); - return ret; - } - - vendor_printf("aw88166 i2c deinit success\n"); - audio_func_exit(); - return AUDIO_SUCCESS; -} - -td_s32 aw883xx_pid_2066_dev_init(td_void *aw883xx); - -struct aw_init_info init_info[] = { - { - .dev = AW_DEV_0, - .i2c_addr = AW88166_I2C_DEV_ADDR, - .re_min = 2000, /* awinic:If the re_min(ohms) and re_max(ohms) are not set, the default value is used */ - .re_max = 39000, - .mix_chip_count = AW_DEV0_MIX_CHIP_NUM, - .prof_info = g_dev0_prof_info, - .i2c_read_func = aw_dev0_i2c_read_func, - .i2c_write_func = aw_dev0_i2c_write_func, - .reset_gpio_ctl = aw_dev0_reset_gpio_ctl, - .dev_init_ops = {aw883xx_pid_2066_dev_init}, - } -}; - -static td_s32 audio_aw88166_configuration(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - /* awinic:Control interface of dev0 */ - /* awinic:initialization */ - ret = aw883xx_smartpa_init((td_void *)&init_info[AW_DEV_0]); - if (ret != AUDIO_SUCCESS) { - vendor_printf("aw883xx_smartpa_init already init\n"); - } - /* awinic:set mode "Music", "aw_params.h" contains id information */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Music"); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_set_profile_byname, ret); - } - - vendor_unused(attr); - return ret; -} - -static td_s32 audio_aw88166_deconfiguration(td_void) -{ - /* awinic:Free the requested memory when PA is not used */ - aw883xx_smartpa_deinit(AW_DEV_0); - - return AUDIO_SUCCESS; -} - -td_s32 audio_aw88166_init(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - audio_func_enter(); - - aw88166_pwr_on_pin_init(); - - if (g_aw88166_i2c_inited != TD_TRUE) { - ret = aw88166_i2c_init(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw88166_i2c_init, ret); - return ret; - } - g_aw88166_i2c_inited = TD_TRUE; - } else { - ret = 0; - } - - ret = audio_aw88166_configuration(attr); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(audio_aw88166_configuration, ret); - } - - return AUDIO_SUCCESS; -} - -td_s32 audio_aw88166_deinit(td_void) -{ - td_s32 ret; - audio_func_enter(); - - ret = audio_aw88166_deconfiguration(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(audio_aw88166_deconfiguration, ret); - } - - if (g_aw88166_i2c_inited != TD_FALSE) { - ret = aw88166_i2c_deinit(); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw88166_i2c_deinit, ret); - return ret; - } - g_aw88166_i2c_inited = TD_FALSE; - } else { - ret = AUDIO_SUCCESS; - } - - audio_func_exit(); - return ret; -} - -td_s32 audio_aw88166_start(const uapi_vendor_codec_attr *attr) -{ - td_s32 ret; - - audio_func_enter(); - - /* awinic:The platform needs to output I2s first, and then ctl start */ - ret = aw883xx_ctrl_state(AW_DEV_0, AW_START); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_ctrl_state, ret); - } - - vendor_unused(attr); - return ret; -} - -td_s32 audio_aw88166_stop(td_void) -{ - td_s32 ret; - audio_func_enter(); - - /* awinic:The platform needs to control the stop first and then stop I2S */ - ret = aw883xx_ctrl_state(AW_DEV_0, AW_STOP); - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_ctrl_state, ret); - } - audio_func_exit(); - return ret; -} - -td_s32 audio_aw88166_set_aef_profile(uapi_snd_aef_profile aef_profile) -{ - td_s32 ret; - - audio_func_enter(); - - /* awinic:set mode "Receiver"/"Music", "aw_params.h" contains id information */ - if (aef_profile == UAPI_SND_AEF_PROFILE_VOIP) { - /* awinic:set mode "Receiver" */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Receiver"); - } else { - /* awinic:set mode "Music" */ - ret = aw883xx_set_profile_byname(AW_DEV_0, "Music"); - } - - if (ret != AUDIO_SUCCESS) { - vendor_log_fun_err(aw883xx_set_profile_byname, ret); - } - - audio_func_exit(); - return ret; -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/fd230_driver_patch/20240628.170448/code/sdk/application/brandy/brandy_standard/thread_pri_init.c deleted file mode 100644 index 479f285ec..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: Application Core OS Priority Initialize Interface for Standard - * Author: - * Create: 2022-12-03 - */ -#include "debug_print.h" -#include "thread_init.h" -#include "common_def.h" -#include "pm.h" -#include "watchdog.h" -/* after reboot system emmc need write exc info to the file system from sector */ -#if defined(SAVE_EXC_INFO) && defined(CFG_DRIVERS_MMC) -#include "exception.h" -#endif -#ifdef CFG_DRIVERS_MMC -#ifdef __LITEOS__ -#include "soc/mmc.h" -#endif -#include "soc_mmc.h" -#endif -#include "soc_lcd_api.h" -#ifdef CFG_DRIVERS_NANDFLASH -#include "nandflash_config.h" -#include "yaffs_nand_drv.h" -#endif -#if defined(TPTYPE_TMA525B) -#include "tma525b_drv1.h" -#elif defined(TPTYPE_ZTW523) -#include "ztw523_touch1.h" -#elif defined(TPTYPE_FT6X46) -#include "ft6x46_touch1.h" -#else -#include "ztw523_touch1.h" -#endif -#include "thread_pri_init.h" -#if DSP_EXIST == YES -#include "soc_uapi_audio_sys.h" -#include "soc_uapi_vendor.h" -#include "soc_uapi_sound.h" -/* Audio codec vendor select according to hardware connection: - * define AUDIO_SMARTPA_AW88166 : macro to init smartpa aw88166; - * define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 : macro to specify i2s id connecting to smartpa aw88166; - */ -#if 0 -#define AUDIO_SMARTPA_AW88262 -#define AUDIO_SMARTPA_AW88262_I2S_ID UAPI_SND_OUT_PORT_I2S2 -#else -#define AUDIO_SMARTPA_AW88166 -#define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 -#endif -#endif /* DSP_EXIST */ -#include "panic.h" -#include "board_init.h" -#include "kernel_init.h" -#ifdef SUPPORT_AT_OHOSFWK -#include "ohosfwk_startup.h" -#endif -#include "clocks_config.h" - -#define EMMC_BASE_ADDR 0x52062000 -#define TASK_PRIORITY_APP (osPriority_t)(17) -#define TICK_TEN_MS (10U) -#define WAIT_BT_BOOTUP_TIME 200U - -static void thread_main(const void *unused); -void bt_acore_btc_ipc_receive_init(void); - -app_task_definition_t g_thread_pri = { { "thread_pri", 0, NULL, 0, NULL, (0x1000), TASK_PRIORITY_APP, 0, 0 }, - (osThreadFunc_t)thread_main, NULL, NULL, USE_DTCM_MEM }; -store_class g_store_init_select = STORE_CLASS_NAND; - -#if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) -static void sample_gfx_init(void) -{ -#if defined(TPTYPE_TMA525B) - tma525b_host_init_sample(); -#elif defined(TPTYPE_ZTW523) - ztw523_host_init_sample(); -#elif defined(TPTYPE_FT6X46) - ft6x46_host_init_sample(); -#else - ztw523_host_init_sample(); -#endif - uapi_lcd_init(); -#ifdef SUPPORT_GPU_GMMU - drv_gmmu_module_init(); -#endif - uapi_vau_module_init(); - uapi_dpu_module_init(); -#ifdef SUPPORT_GPU_JPEG - uapi_jpeg_module_init(); -#endif -} -#endif - -#ifdef CFG_DRIVERS_MMC -static void emmc_init(void) -{ - /** - * FPGA解复位, 设置CMD_CONFLICT_CHECK - * 之后才能设置管脚 - */ - writew(EMMC_BASE_ADDR + 0x508, 0); - init_emmc_pinmux(); - int ret = emmc_drv_context_init(); - if (ret != ENOERR) { - PRINT("emmc init error:[%d]"NEWLINE, ret); - } - mmc_set_first_init_flag(true); - mmc_set_sleep_init_flag(true); - PRINT("emmc init success\r\n"); - -#if defined(SAVE_EXC_INFO) - if (emmc_exc_info_write() != ERRCODE_SUCC) { - PRINT("emmc_exc_info_write failed"NEWLINE); - } -#endif -} -#endif - -#ifdef CFG_DRIVERS_NANDFLASH -static void nandflash_init(void) -{ - int32_t ret = 0; - ret = nandflash_filesystem_init(); - if (ret != 0) { - PRINT("nandflash init error[%d]"NEWLINE, ret); - } - PRINT("nandflash init success\r\n"); -} -#endif - -static void board_version_class_print(void) -{ - PRINT("**********startup info**********\r\n"); - PRINT("os init class is %s."NEWLINE, (g_os_init_select == OS_CLASS_LITEOS) ? "liteos" : "freertos"); - PRINT("store init class is %s."NEWLINE, (g_store_init_select == STORE_CLASS_NAND) ? "nandflash" : "emmc"); - PRINT("display init class is %s."NEWLINE, (g_display_init_select == DISPLAY_CLASS_QSPI) ? "QSPI" : "MIPI"); - PRINT("board init class is %s."NEWLINE, (g_board_init_select == BOARD_CLASS_E0B2) ? "E0B2" : "E0B4"); -#ifdef CONFIG_PSRAM_SUPPORT - PRINT("psram density is %s."NEWLINE, (get_psram_density() == PSRAM_DENSITY_16M) ? "16MB" : "32MB"); -#endif - PRINT("**********startup info**********\r\n"); -} - -#if DSP_EXIST == YES -/** - * The sample code of the vendor, - * which will be implemented by the customer in the future - */ -#ifdef AUDIO_SMARTPA_AW88262 -td_s32 audio_aw88262_init(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88262_deinit(td_void); - -static uapi_vendor_driver g_aw88262_driver = { - .out_port = AUDIO_SMARTPA_AW88262_I2S_ID, - .init = audio_aw88262_init, - .deinit = audio_aw88262_deinit, - .set_aef_profile = TD_NULL, -}; - -static td_s32 audio_aw88262_register_driver(void) -{ - return uapi_audio_vendor_register(&g_aw88262_driver); -} -#endif /* AUDIO_SMARTPA_AW88262 */ - -#ifdef AUDIO_SMARTPA_AW88166 -td_s32 audio_aw88166_init(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88166_deinit(td_void); /* Call when device power off */ -td_s32 audio_aw88166_start(const uapi_vendor_codec_attr *attr); -td_s32 audio_aw88166_stop(td_void); -td_s32 audio_aw88166_set_aef_profile(uapi_snd_aef_profile aef_profile); - -static uapi_vendor_driver g_aw88166_driver = { - .out_port = AUDIO_SMARTPA_AW88166_I2S_ID, - .init = audio_aw88166_start, - .deinit = audio_aw88166_stop, - .set_aef_profile = audio_aw88166_set_aef_profile, -}; - -static td_s32 audio_aw88166_register_driver(void) -{ - const uapi_vendor_codec_attr attr = {}; - - audio_aw88166_init(&attr); /* Init aw88166 once when device power on */ - - return uapi_audio_vendor_register(&g_aw88166_driver); -} -#endif /* AUDIO_SMARTPA_AW88166 */ - -static void audio_smartpa_init(void) -{ - uint32_t ret; - -#ifdef AUDIO_SMARTPA_AW88262 - ret = (uint32_t)audio_aw88262_register_driver(); - if (ret != 0) { - PRINT("aw88262 register driver error\r\n"); - } -#endif /* AUDIO_SMARTPA_AW88262 */ - -#ifdef AUDIO_SMARTPA_AW88166 - ret = (uint32_t)audio_aw88166_register_driver(); - if (ret != 0) { - PRINT("aw88166 register driver error\r\n"); - } -#endif /* AUDIO_SMARTPA_AW88166 */ -} -#endif /* DSP_EXIST */ - -#if DSP_EXIST == YES -static void audio_init() -{ - (void)osDelay(TICK_TEN_MS); - uapi_watchdog_kick(); - - audio_smartpa_init(); - - uint32_t ret = (uint32_t)uapi_audio_init(); - if (ret != 0) { - PRINT("audio init error:[%d]\r\n", ret); - } else { - PRINT("audio init OK\r\n"); - } -} -#endif - -void rc_calibration_func_notify(void) -{ -#ifdef SUPPORT_RC_CALIBRATION - /* BT核用来通知MCU 32K校准值 */ - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG3, 0x0); - /* 通知BTæ ¸ 32K时钟来源 */ - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG2, CLOCK_SOURCE_RC); -#else - writew(GLB_CTL_D_RB_BASE + GLB_GP_D_REG2, CLOCK_SOURCE_XO); -#endif -} - -static void force_to_sleep(void) -{ - if (reg16_getbits(0x5702C010, 0x8, 0x8) == 0x5A) { // 特殊模式下,强制进入深睡中 - reg16_clrbits(0x5702C010, 0x8, 0x8); - uapi_tcxo_delay_ms(WAIT_BT_BOOTUP_TIME); - hal_pmu_cldo_enable_slp_bypass(HAL_PMU_CLDO1, TURN_OFF); - uapi_sys_force_mcu_only_deep_sleep_mode(0); - } -} - -static void thread_main(const void *unused) -{ - PRINT("thread_main start "NEWLINE); - unused(unused); - rc_calibration_func_notify(); - bt_acore_btc_ipc_receive_init(); - uapi_pm_control(PM_BT_POWER_UP_AND_RUN); -#ifdef FORCE_TO_DEEP_SLEEP - force_to_sleep(); -#endif - los_vfs_init(); - uint32_t ret = dpal_driver_base_init(); - if (ret != 0) { - PRINT("dpal driver base init error"NEWLINE); - panic(PANIC_ASSERT, __LINE__); - } -#ifdef CFG_DRIVERS_MMC - emmc_init(); - g_store_init_select = STORE_CLASS_EMMC; - sdiom_internal_freq_handler_register(mmc_set_internal_clk); -#endif -#ifdef CFG_DRIVERS_NANDFLASH - yaffs_nand_drv_checkptset(YAFFS_CHECKPT_SKIPED); - nandflash_init(); - g_store_init_select = STORE_CLASS_NAND; -#endif - uapi_pm_control(PM_DISPLAY_POWER_UP_AND_RUN); - (void)osDelay(TICK_TEN_MS); - -#if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) - sample_gfx_init(); -#else - uapi_pm_control(PM_DISPLAY_POWER_OFF); -#endif - -#if DSP_EXIST == YES - audio_init(); -#endif - board_version_class_print(); - uapi_watchdog_kick(); - thread_init(); - button_app_init(); - uapi_calendar_init(); -#ifdef SUPPORT_AT_OHOSFWK - ohos_startup(); -#endif - uapi_pm_remove_sleep_veto(PM_ID_DEBUG); - set_startup_finish_flag(); -} - -void thread_pri_init(void) -{ - /* Create tasks */ - g_thread_pri.task_handle = osThreadNew(g_thread_pri.func, NULL, &(g_thread_pri.attr)); - if (g_thread_pri.task_handle == NULL) { - PRINT("create thread pri failed!"); - } -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp b/fd230_driver_patch/20240628.170448/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp deleted file mode 100644 index 35ba07c27..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Reboot Presenter - * Create: 2022-04-28 - */ - -#include "RebootPresenter.h" -#include "RebootView.h" -#include "RebootModel.h" -#include "drag_event.h" -#include "wearable_log.h" - -namespace OHOS { -static RebootPresenter *g_pRebootPresenter = nullptr; - -RebootPresenter::RebootPresenter() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::RebootPresenter"); - g_pRebootPresenter = this; -} - -RebootPresenter::~RebootPresenter() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::~RebootPresenter"); - g_pRebootPresenter = nullptr; -} - -RebootPresenter *RebootPresenter::GetInstance() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter GetInstance"); - return g_pRebootPresenter; -} - -void RebootPresenter::OnStart() -{ - Presenter::OnStart(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::On Start "); -} - -void RebootPresenter::OnPause(void) {} - -void RebootPresenter::OnResume(void) {} - -void RebootPresenter::OnStop(void) {} - - -extern "C" -{ -extern void uapi_sys_shipmode(uint32_t arg); -extern uint32_t mcu_os_sys_reset(uint8_t *para, uint32_t para_len); -} -bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) -{ - UNUSED(event); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnClick OnClick"); - if (strcmp(view.GetViewId(), REBOOT_BUTTON) == 0) { - RebootView::GetInstance()->ChangeView(REBOOTVIEW, REBOOTDEVICEVIEW); - } else if (strcmp(view.GetViewId(), SHUTDOWN_BUTTON) == 0) { - RebootView::GetInstance()->ChangeView(REBOOTVIEW, SHUTDOWNDEVICEVIEW); - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_BUTTON) == 0) { - // 重启 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "REBOOTDEVICE_BUTTON OnClick"); - mcu_os_sys_reset(NULL,NULL); - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_BUTTON) == 0) { - // 关机 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SHUTDOWNDEVICE_BUTTON OnClick"); - uapi_sys_shipmode(0); - } - return true; -} - -bool RebootPresenter::OnDrag(UIView& view, const DragEvent& event) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootPresenter::OnDrag"); - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - if (strcmp(view.GetViewId(), REBOOT_VIEW) == 0) { - NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE); - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_VIEW) == 0) { - if (RebootModel::GetInstance()->GetExitsView() == 0) { - RebootView::GetInstance()->ChangeView(REBOOTDEVICEVIEW, REBOOTVIEW); - } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - RebootModel::GetInstance()->SetExitsView(false); - } - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_VIEW) == 0) { - if (RebootModel::GetInstance()->GetExitsView() == 0) { - RebootView::GetInstance()->ChangeView(SHUTDOWNDEVICEVIEW, REBOOTVIEW); - } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - RebootModel::GetInstance()->SetExitsView(false); - } - } - } - return true; -} -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/build/config/target_config/brandy/config.py b/fd230_driver_patch/20240628.170448/code/sdk/build/config/target_config/brandy/config.py deleted file mode 100644 index 12f9ef163..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/build/config/target_config/brandy/config.py +++ /dev/null @@ -1,306 +0,0 @@ -#!/usr/bin/env python3 -# encoding=utf-8 -# ============================================================================ -# @brief Target Definitions File -# Copyright CompanyNameMagicTag 2022-2022. All rights reserved. -# ============================================================================ - -target = { - #target1: liteos + lvgl + nandflash + mipi + no psram + mini_audio 典型单封LVGL版本 - 'brandy-target1': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'std_libs': [], - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_ZDIAG_NV_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'MEMORY_MINI', 'ENABLE_LVGL', 'SW_UART_DEBUG', "SAVE_EXC_INFO", - "CONFIG_LOW_POWER_TEST", 'MIPI_ULPS_SUPPORT', 'ENABLE_ECC', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'CONFIG_NV_SUPPORT_ASYNCHRONOUS_STORE=0'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc','fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media_mini', 'gpu', 'graphic_lvgl_mini', 'dfx_set'], - 'image_analysis': True, - 'dsp_version': 'mini', - 'packet': True, - 'fs_image': False, - }, - #target3: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-target3': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY','MIPI_ULPS_SUPPORT', 'CONFIG_LOW_POWER_TEST', - 'ENABLE_ECC', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'graphic_test', 'bgh_audio', 'dfx_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - #target4: liteos + nandflash + psram + mini_audio + no gui 外设类版本 - 'brandy-target4': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'std_libs': ['c++', 'c++abi', 'unwind'], - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'I2C_SLAVE_REG_ADDR_4BYTE', 'SUPPORT_CXX', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'HASH_MEM_COPY', - 'CONFIG_ZDIAG_NV_SUPPORT', 'SUPPORT_BLE', 'SUPPORT_BREDR', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'CONFIG_PSRAM_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', - 'CONFIG_LOW_POWER_TEST', 'CONFIG_ADC_SUPPORT_AUTO_SCAN', - 'CONFIG_ADC_SUPPORT_LONG_SAMPLE', 'ENABLE_ECC', 'CONFIG_DIAG_GPU_PROC_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'partition', 'partition_brandy', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc','fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'app_at_service', - 'audio_at_service', 'bt_manager_at_service', "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'gpu', 'media_target4', 'update_app', 'dfx_set', 'bgh_audio', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False, - }, - #target5: freertos + lvgl + nand + mipi + psram + audio + media 典型合封LVGL版本 - 'brandy-target5': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_freertos_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', "SUPPORT_BREDR", 'ENABLE_LVGL', "SUPPORT_GPU_JPEG", "SUPPORT_GPU_GMMU", "SUPPORT_GPU_OPENVG", - 'SW_UART_DEBUG', 'MEMORY_NO_CACHE', "SAVE_EXC_INFO", "HASH_MEM_COPY", 'MIPI_ULPS_SUPPORT', - 'CONFIG_LOW_POWER_TEST', 'ENABLE_ECC', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - 'lcd', 'qspi_display', 'partition', 'partition_brandy', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd','graphic_at_service', 'app_at_service', - 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_lvgl', 'bgh_audio', 'update_app', 'dfx_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - #native-js: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-native-js': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', - 'FT_SINGLE_UART', - 'TPTYPE_FT6X46', - 'ENABLE_ECC', 'MIPI_ULPS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', 'bt_manager_at_service', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc",'bts_header', 'baidumapsdk'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': True - }, - #native-js-user: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - #离线日志版本 - 'brandy-native-js-user': { - 'base_target_name': 'brandy-native-js', - 'defines': ['-:SW_UART_DEBUG'], - }, - #native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - 'brandy-xts': { - 'board': 'evb', - 'base_target_name': 'target_standard_brandy_application_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT', - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', - 'ENABLE_ECC', 'XTS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'ulp_aon', 'hal_l2ram', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', - 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc", 'bts_header', 'baidumapsdk'], - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'xts_set', 'xts_test_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, - 'fs_image': False - }, - - 'brandy-target1-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'MEMORY_MINI', 'SW_UART_DEBUG', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target3-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target4-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', 'HASH_MEM_COPY', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'pm_service', 'pm_brandy', - 'ulp_aon', 'hal_l2ram', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-target5-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_freertos_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", "__FREERTOS__", 'ENABLE_UIKIT', 'SW_UART_DEBUG', - "HASH_MEM_COPY", 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'pm_service', 'pm_brandy', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set', 'gpu'] - }, - 'brandy-native-js-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'FT_SINGLE_UART','TPTYPE_FT6X46', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header', - 'at_cmd' - ], - 'ram_component_set': ['pinctrl', 'dfx_set' ,'gpu'] - }, - 'brandy-xts-r': { - 'board': 'evb', - 'base_target_name': 'target_brandy_recovery_template', - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", - 'ENABLE_ECC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', - 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], - 'ram_component_set': ['pinctrl', 'dfx_set'] - }, - 'testsuite-brandy-sdk': { - 'base_target_name': 'target_brandy_testsuite_application', - 'board': 'evb', - 'defines': ['SW_UART_DEBUG', 'USE_CMSIS_OS', 'CFG_DRIVERS_NANDFLASH', - 'PRE_ASIC', 'BRANDY_PRODUCT_EVB4', - '_ALL_SOURCE', '__LITEOS__', 'SUPPORT_CXX', 'ENABLE_UIKIT', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'MULTIPLEXING_UART', - 'CONFIG_SPI_SUPPORT_POLL_AND_DMA_AUTO_SWITCH', 'CONFIG_SPI_AUTO_SWITCH_DMA_THRESHOLD=0x8', - 'CONFIG_I2C_SUPPORT_POLL_AND_DMA_AUTO_SWITCH', 'CONFIG_I2C_POLL_AND_DMA_AUTO_SWITCH_THRESHOLD=0x8'], - 'ram_component': ["osal", "arch_port", "liteos_port", 'psram', 'pm_service', 'pm_brandy', - 'hal_mips', 'lcd', 'qspi_display', 'hal_dma_v100', "dfx_port_brandy", - 'dfx_log_brandy', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', 'ulp_aon', - 'hal_l2ram', "test_security", "test_spi", 'dfx_file_operation', - "test_timer", "test_int", "test_pm", - "test_lcd", "test_qspi_display", "test_systick", "test_tcxo", "test_watchdog", - "test_vfs_emmc", "test_flash", "test_pwm", "test_i2c", "test_cmsis", - "test_xip", "test_mipi", "test_touch", 'algorithm', 'test_sdio', 'x_vfs_private', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2' , 'nand_flash' , 'mtd_com', - 'cmn_header', 'test_calendar', 'test_gpio', 'test_pinctrl', 'test_dma', 'test_uart', - 'test_reboot', 'test_rtc_unified', - 'test_nandflash', 'test_adc', 'test_pmp', 'efuse', 'hal_efuse_v100', 'efuse_porting'], - 'ram_component_set': ['dfx_set', '-:gpu_test', 'rtc_unified'], - 'os': 'liteos', - }, - 'brandy-ssb': { - 'base_target_name': 'target_ssb_template_brandy', - 'board': 'evb', - 'defines': ["-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", "PRE_ASIC", "BRANDY_PRODUCT_EVB4", - "SSB_USE_PLL", "VERSION_STANDARD", "BUILD_APPLICATION_SSB", "LIBBOOTLOADER", "LIBCODELOADER", - "LIBCPU_UTILS", "LIBAPP_VERSION", "LIBPANIC", "LIBCONNECTIVITY", "LIBERROR_CODE", "LIBSEC_RANDOM", - "LIBCODELOADER_SSB", "LIBJLINK_LOAD", "LIBLIB_UTILS", "LIBBUILD_VERSION", - 'ENABLE_ECC', - "CFG_DRIVERS_NANDFLASH", - "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER', - 'FT_SINGLE_UART' - ], - 'ram_component': ['arch_port', 'hal_l2ram', 'sec_boot', 'libboundscheck', - 'dfx_exception', 'error_code', 'psram', 'osal', 'cmn_header', 'boot_ulp', 'boot_nandflash'], - 'ram_component_set': ['pinctrl'], - 'target': 'ssb', - } -} - -target_group = { - # ci protect target list - 'pack_brandy_target1': ['brandy-ssb', 'brandy-target1-r', 'brandy-target1'], - 'pack_brandy_target3': ['brandy-ssb', 'brandy-target3-r', 'brandy-target3'], - 'pack_brandy_target4': ['brandy-ssb', 'brandy-target4-r', 'brandy-target4'], - 'pack_brandy_target5': ['brandy-ssb', 'brandy-target5-r', 'brandy-target5'], - 'pack_brandy_native_js': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js'], - 'pack_brandy_native_js_user': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-user'], - 'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'], - - 'brandy_all': ['brandy-ssb', - 'brandy-target1', 'brandy-target3', 'brandy-target4', 'brandy-target5', 'brandy-native-js', 'brandy-native-js-user', 'brandy-xts', - 'brandy-target1-r', 'brandy-target3-r', 'brandy-target4-r', 'brandy-target5-r', 'brandy-native-js-r', 'brandy-xts-r', - 'testsuite-brandy-sdk'] -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h deleted file mode 100644 index a063a8c24..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2018-2021. All rights reserved. - * Description: brandy evb board config - * Author: @CompanyNameTag - * Create: 2020-02-19 - */ -#ifndef BOARD_EVB_CONFIG_H -#define BOARD_EVB_CONFIG_H - -#include "pinctrl_porting.h" -#include "gpio_porting.h" -#include "platform_types.h" - -#ifdef SUPPORT_CAT1_SERVICE -#include "cat1_ctl.h" -#endif - -#ifdef ENABLE_CYWEE -extern void cywee_int_callback(pin_t pin, uintptr_t param); -#endif -/** - * @addtogroup connectivity_config_boards - * @{ - */ -/** - * @brief Global evb pio functions. - */ -const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO0 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO1 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO2 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO3 - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO4 clk - { HAL_PIO_FUNC_QSPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO5 cs - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_EGPIO6 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO7 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO8 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO9 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO10 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO11 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO12 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO13 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO14 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO15 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO16 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO17 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO18 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO19 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO20 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO21 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO22 clk - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_EGPIO23 ce - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO24 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO25 - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 NC -#if (defined CFG_DRIVERS_NANDFLASH) - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO10 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO11 cs0 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO12 cs1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO13 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO14 - { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO15 clk -#else - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO11 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 emmc clk -#endif - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO0 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO1 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO2 NC - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO3 NC - -// #if (defined BRANDY_PRODUCT_EVB4) - { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO4 NC -// #else - // { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 NC -// #endif - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 - { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC - - { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC - { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA - { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c - { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 uart1 rts - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 uart1 cts - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO23 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO24 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO25 NC - { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO26 NC -#if (defined QSPI_DISPLAY) - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO27 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO28 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO29 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO30 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO31 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO32 -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO27 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO28 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO29 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO30 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO31 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO32 -#endif - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO33 huart tx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO34 huart rx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO35 - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO36 -#if 0 - { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx - { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO38 uart rx -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO38 uart rx NC -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L0 NC - - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L1 i2s1 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L2 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L3 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L4 - - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L5 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 i2s0 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L7 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L8 - -#if (defined FT_BT_UART) - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L9 uart2 txd - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 uart2 rxd -#else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 G_INT1 - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L14 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L15 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà - - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ -#ifdef QSPI_DISPLAY - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE -#else - { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE -#endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC - - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ-// #if VIB_USE_PWM - // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -// #else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -// #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable - -#if CORE == APPS - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO0 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO1 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO2 mode not config - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO3 mode not config - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO4 - { HAL_PIO_FUNC_SWD, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // ULP_GPIO5 - { HAL_PIO_FUNC_SWD, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // ULP_GPIO6 -#endif -}; -/** - * @} - */ - - -/** - * @addtogroup connectivity_config_boards - * @{ - */ -/** - * @brief Global evb gpio functions. - * - * - * typedef struct { - pin_t gpio; - hal_gpio_direction_t direction; - hal_gpio_level_t level; - uint32_t triger; - hal_gpio_callback_t callback; -} hal_gpio_config_t; - */ - - -//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 -#define DEFAULT_POWERON_CAT1 0 - -//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ -const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { - -#if DEFAULT_POWERON_CAT1 - // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, - // S_AGPIO_L28 Cat1 reset ---- low reset - { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#else - // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L28 Cat1 reset ---- low reset - { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -#endif - // S_AGPIO_L17 HX3507_INT - // { S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L12 SDIO_BT - { S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L13 SCLK_BT - { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - - // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset - { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - - //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ - { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#if 1 //ĬÈÏÕý³£³äµç -// #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç - { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -#else - { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#endif - -//ĬÈϹرÕÂí´ï - { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 - { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, - -#ifdef ENABLE_CYWEE - /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 ²ÉÓÃtimer ʱÕâЩÖжÏÒªÆÁ±Î*/ - { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, - //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, -#endif - /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ - { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef SUPPORT_CAT1_SERVICE - /**cat1 ring input key*/ - // { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cat1_ring_isr_callback}, - { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cat1_ring_isr_callback}, -#endif -}; -/** - * @} - */ -#endif diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h deleted file mode 100644 index 925e372f9..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h +++ /dev/null @@ -1,517 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: Default memory configurations - * Author: @CompanyNameTag - * Create: 2022-03-09 - */ - -#ifndef MEMORY_CONFIG_COMMON_H -#define MEMORY_CONFIG_COMMON_H - -#include "product.h" -#include "chip_definitions.h" -#include "chip_core_definition.h" -#include "psram.h" - -/** - * @defgroup connectivity_config_memory MEMORY - * @ingroup connectivity_config - * @{ - */ -/* Standard lengths */ -#define BT_VECTORS_LENGTH 0x800 -/* Copy the startup of the app to the start address of the itcm in the ssb. - * Do not overwrite the ssb code segment. - * app startup = ssb startup + ssb version */ -#define APP_VECTORS_LENGTH 436 -#define VERSION_LENGTH 88 -#define CHANGE_ID_LENGTH 16 - -#ifdef MASTER_LOAD_SLAVE -#define BUILD_INFO_LENGRH 552 -#else -#define BUILD_INFO_LENGRH 0 -#endif - -#define FILL_4_BYTE 4 - -#define BCPU_RAM_START 0x0 - -/* rom ram text */ -#define BCPU_STARTUP_LENGTH 0x800 -#define BCPU_PATCH_TBL_LENGTH 0x800 -#define BCPU_ROM_RAM_START (BCPU_RAM_START + BCPU_STARTUP_LENGTH + BCPU_PATCH_TBL_LENGTH) -/* ----------------------------------------------------------------------------------------------------------------- */ -/* Share MEM defines, 64K in FPGA, 160K in ASIC - * SHARE MEM IPC Mailbox - * SYSTEM CONFIG - * SYSTEM STATUS - * BT LOG - * APP LOG - * DSP LOG - */ -#define SHARED_MEM_START 0x87000000 -#if CHIP_ASIC -#define SHARED_MEM_LENGTH 0x18000 -#else -#define SHARED_MEM_LENGTH 0x10000 -#endif -#define SHARED_MEM_END (SHARED_MEM_START + SHARED_MEM_LENGTH) - -/* - * ********************* ROM ALLOCATION *********************** - * - * Used solely by the MCU Core ROM image built into the chip. - */ -/* 48K ROM */ -#define ROM_START 0x00000000 -#define ROM_LENGTH 0xC000 - -/* APP ITCM config */ -#define APP_ITCM_ORIGIN 0x10000 -#define APP_ITCM_LENGTH 0x30000 - -/* APP DTCM config */ -#define APP_DTCM_ORIGIN 0x20000000 -#define APP_DTCM_LENGTH 0x70000 - -#ifdef SW_RTT_DEBUG -#define MCU_RTT_LEN 0x500 -#endif -/* - * ********************* L2M ALLOCATION *********************** - * Description addr:mcpu/others len:FPGA/ASIC - * L2M_DSP_RAM_DSP_SHARE 0x60100000 / 0x80100000 0k/1024k // can used as DSP RAM - * L2M_DSP_RAM_MCU_SHARE 0x60200000 / 0x80200000 0k/256k // can used for mcu - * L2M_GPU_RAM_MCU_SHARE 0x60240000 / 0x00240000 0k/128k // can used for mcu - * L2M_GPU_RAM_GPU_SHARE 0x60260000 / 0x00260000 0k/1280k // can used as GPU RAM - */ -/* L2M_DSP_RAM */ -#ifndef CONFIG_PSRAM_SUPPORT // 无PSRAM场景 -#define L2M_DSP_RAM_RESERVED_ORIGIN 0x60100000 -#define L2M_DSP_RAM_MCU_SHARE_ORIGIN 0x60136000 -#define L2M_DSP_RAM_DSP_SHARE_ORIGIN 0x60180000 - -#define L2M_DSP_RAM_RESERVED_LENGTH 0x36000 // ASIC version 216K for mcu -#define L2M_DSP_RAM_MCU_SHARE_LENGTH 0x4A000 // ASIC version 296K for mcu -#define L2M_DSP_RAM_DSP_SHARE_LENGTH 0xC0000 // ASIC version 768K for dsp -#else -#ifdef CONFIG_SEA_PHS_SUPPORT // 有PSRAM场景,DSP带语音唤醒特性 -#define L2M_DSP_RAM_MCU_SHARE_ORIGIN 0x60100000 -#define L2M_DSP_RAM_DSP_SHARE_ORIGIN 0x60100000 - -#define L2M_DSP_RAM_MCU_SHARE_LENGTH 0x0 // ASIC version 0K for mcu -#define L2M_DSP_RAM_DSP_SHARE_LENGTH 0x140000 // ASIC version 1280K for dsp -#else // 有PSRAM场景,DSP不带语音唤醒特性 -#define L2M_DSP_RAM_MCU_SHARE_ORIGIN 0x60100000 -#define L2M_DSP_RAM_DSP_SHARE_ORIGIN 0x60140000 - -#define L2M_DSP_RAM_MCU_SHARE_LENGTH 0x40000 // ASIC version 256K for mcu -#define L2M_DSP_RAM_DSP_SHARE_LENGTH 0x100000 // ASIC version 1024K for dsp -#endif -#endif - -/* L2M_GPU_RAM */ -#ifndef CONFIG_PSRAM_SUPPORT // 无PSRAM场景 -#define L2M_GPU_RAM_SHARE_MCU_ORIGIN 0x60240000 -#define L2M_GPU_RAM_GPU_SHARE_ORIGIN 0x60240000 - -#define L2M_GPU_RAM_MCU_SHARE_LENGTH 0x0 // ASIC version 0K for mcu -#define L2M_GPU_RAM_GPU_SHARE_LENGTH 0x160000 // ASIC version 1408K for gpu -#else // 有PSRAM场景 -#define L2M_GPU_RAM_SHARE_MCU_ORIGIN 0x60240000 -#define L2M_GPU_RAM_GPU_SHARE_ORIGIN 0x60280000 - -#define L2M_GPU_RAM_MCU_SHARE_LENGTH 0x40000 // ASIC version 256K for mcu -#define L2M_GPU_RAM_GPU_SHARE_LENGTH 0x120000 // ASIC version 1152K for gpu -#endif - -/* - * ********************* FLASH ALLOCATION ********************* - * Flash is shared between the cores, and also handles a limited number of - * non-volatile storage areas. - * - * Flash is split into 2 main areas - * IMAGE Area - * Managed by the BT core - * This contains, in order from the bottom of Flash: - * SSB - SSB image starting at the bottom of flash. Variable size depending on the SSB on the chip that - * the package is loaded on. The values in this file only apply to the SSB built with this file. - * RECOVERY_Image - starts in the page after the SSB. - * BT_Image - starts in the page after the RECOVERY_Image - * DSP_Image - starts in the page after the BT_Image - * APP_Image - starts in the page after the DSP_Image - * System On-demand region - dynamically allocated flash for FOTA etc - * NV Area - * Ends at the last page of flash, is configurable in size above a minimum allocation. - * NV Area, of 12 pages, is allocated, from the lowest address: - * 8 pages of general use (pages are not fixed and self-identifying), consisting of - * 1 Page for Asset Store defragmentation - * 3 pages for Asset Store - * 2 Pages for App and DSP Core KV defragmentation - * 1 page for DSP Core KV - * 1 page for App Core KV - * 2 pages for BT core use (last 2 pages in Flash) - * 1 page for BT Core KV - * 1 page for BT Core KV defragmentation - */ - -#define FLASH_START 0x70000000 -#define FLASH_LENGTH 0x1000000 //8MB 0x800000, 16MB 0x1000000 -#define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) - -#define FLASH_PAGE_SIZE 4096 -/* APP ITCM config */ -#define MCU_ITCM_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) - -#define SSB_BOOT_RAM_ORIGIN APP_ITCM_ORIGIN -#define SSB_BOOT_RAM_LENGTH APP_ITCM_LENGTH - -/* ----------------------------------------------------------------------------------------------------------------- */ -/* IMAGE Area Defines */ -/* MCU SSB Region */ -#define SSB_FLASH_REGION_PAGES (SSB_IMAGE_PAGES + 5) -#define KV_PAGES 0 -#define SSB_FLASH_REGION_START (FLASH_START) -#define SSB_FLASH_REGION_LENGTH (SSB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define SSB_VECTORS_LOAD_ORIGIN (SSB_FLASH_REGION_START) -#define SSB_VERSION_LOAD_ORIGIN (SSB_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) -#define SSB_CHANGEID_LOAD_ORIGIN (SSB_VERSION_LOAD_ORIGIN + VERSION_LENGTH) - -#define SSB_PROGRAM_ORIGIN (SSB_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define SSB_PROGRAM_LENGTH ((SSB_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) - -/* MCU SSB BACK-UP Region */ -#define SSB_BACKUP_FLASH_REGION_PAGES 32 -#define SSB_BACKUP_FLASH_REGION_START (SSB_FLASH_REGION_START + SSB_FLASH_REGION_LENGTH + KV_PAGES * FLASH_PAGE_SIZE) -#define SSB_BACKUP_FLASH_REGION_LENGTH (SSB_BACKUP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* SEC_BOOT Region for Signature Certificate */ -#define SEC_BOOT_FLASH_REGION_PAGES 15 -#define SEC_BOOT_FLASH_REGION_START (SSB_BACKUP_FLASH_REGION_START + SSB_BACKUP_FLASH_REGION_LENGTH) -#define SEC_BOOT_FLASH_REGION_LENGTH (SEC_BOOT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define PARTITION_TABLE_REGSION_PAGE 1 -#define PARTITION_TABLE_REGION_START (SEC_BOOT_FLASH_REGION_START + SEC_BOOT_FLASH_REGION_LENGTH) -#define PARTITION_TABLE_REGION_LENGTH (PARTITION_TABLE_REGSION_PAGE * FLASH_PAGE_SIZE) - -/* DTB Region */ -#define DTB_FLASH_REGION_PAGES (DTB_IMAGE_PAGES) -#define DTB_FLASH_REGION_START (PARTITION_TABLE_REGION_START + PARTITION_TABLE_REGION_LENGTH) -#define DTB_FLASH_REGION_LENGTH (DTB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* RECOVERY Region */ -#define RECOVERY_FLASH_REGION_PAGES (RECOVERY_IMAGE_PAGES) -#define RECOVERY_FLASH_REGION_START (DTB_FLASH_REGION_START + DTB_FLASH_REGION_LENGTH) -#define RECOVERY_FLASH_REGION_LENGTH (RECOVERY_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define RECOVERY_VECTORS_LOAD_ORIGIN (RECOVERY_FLASH_REGION_START) -#define RECOVERY_VERSION_LOAD_ORIGIN (RECOVERY_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) -#define RECOVERY_CHANGEID_LOAD_ORIGIN (RECOVERY_VERSION_LOAD_ORIGIN + VERSION_LENGTH) - -#define RECOVERY_PROGRAM_ORIGIN (RECOVERY_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define RECOVERY_PROGRAM_LENGTH ((RECOVERY_FLASH_REGION_LENGTH) - \ - (BT_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) - -/* RESERVE Region */ -#define RESERVE_FLASH_REGION_PAGES (RESERVE_IMAGE_PAGES) -#define RESERVE_FLASH_REGION_START (RECOVERY_FLASH_REGION_START + RECOVERY_FLASH_REGION_LENGTH) -#define RESERVE_FLASH_REGION_LENGTH (RESERVE_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* BT Region */ -#define BT_FLASH_REGION_PAGES (BT_IMAGE_PAGES) -#define BT_FLASH_REGION_START (RESERVE_FLASH_REGION_START + RESERVE_FLASH_REGION_LENGTH) -#define BT_FLASH_REGION_LENGTH (BT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define BT_BUILD_INFO_ORIGIN (BT_FLASH_REGION_START) -#define BT_VECTORS_LOAD_ORIGIN (BT_BUILD_INFO_ORIGIN + BUILD_INFO_LENGRH) -#define BT_VERSION_LOAD_ORIGIN (BT_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) -#define BT_CHANGEID_LOAD_ORIGIN (BT_VERSION_LOAD_ORIGIN + VERSION_LENGTH) -#define DSP_CHANGEID_LOAD_ORIGIN (BT_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) - -/* Fill 4 byte to align flash 8 byte */ -#define BT_PROGRAM_ORIGIN (DSP_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define BT_PROGRAM_LENGTH ((BT_FLASH_REGION_LENGTH) - (BT_VECTORS_LENGTH + \ - VERSION_LENGTH + CHANGE_ID_LENGTH + CHANGE_ID_LENGTH)) - -/* DSP Region */ -#define DSP_FLASH_REGION_PAGES (HIFI0_IMAGE_PAGES) -#define DSP_FLASH_REGION_START (BT_FLASH_REGION_START + BT_FLASH_REGION_LENGTH) -#define DSP_FLASH_REGION_LENGTH (DSP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* DSP1 Region */ -#define DSP_CODEC_FLASH_REGION_PAGES (HIFI0_CODEC_PAGES) -#define DSP_CODEC_FLASH_REGION_START (DSP_FLASH_REGION_START + DSP_FLASH_REGION_LENGTH) -#define DSP_CODEC_FLASH_REGION_LENGTH (DSP_CODEC_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* APP Region */ -#define APP_FLASH_REGION_PAGES (APP_IMAGE_PAGES) -#define APP_FLASH_REGION_START (DSP_CODEC_FLASH_REGION_START + DSP_CODEC_FLASH_REGION_LENGTH) -#define APP_FLASH_REGION_LENGTH (APP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* NV data Region */ -#define NV_FLASH_REGION_PAGES (NV_IMAGE_PAGES) -#define NV_FLASH_REGION_START (APP_FLASH_REGION_START + APP_FLASH_REGION_LENGTH) -#define NV_FLASH_REGION_LENGTH (NV_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* Fota data Region */ -#define FOTA_FLASH_REGION_PAGES (FOTA_IMAGE_PAGES) -#define FOTA_FLASH_REGION_START (NV_FLASH_REGION_START + NV_FLASH_REGION_LENGTH) -#define FOTA_FLASH_REGION_LENGTH (FOTA_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define APP_VECTORS_LOAD_ORIGIN (APP_FLASH_REGION_START) -#define APP_VERSION_LOAD_ORIGIN (APP_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) - -#define APP_PROGRAM_ORIGIN (APP_VERSION_LOAD_ORIGIN + VERSION_LENGTH) -#define APP_PROGRAM_LENGTH ((APP_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH)) - -/* cores image flash region start */ -#define FLASH_CORE_IMAGES_START (FLASH_START + SSB_FLASH_REGION_LENGTH + SSB_BACKUP_FLASH_REGION_LENGTH + \ - SEC_BOOT_FLASH_REGION_LENGTH + \ - KV_PAGES * FLASH_PAGE_SIZE + PARTITION_TABLE_REGION_LENGTH) -/* ----------------------------------------------------------------------------------------------------------------- */ -/* KV Region Defines */ -/* Minimum System Configuration pages in FLASH reserved */ -#define SYSTEM_RESERVED_FLASH_PAGES 0 -/* Minimum reserved Non Volatile storage + Config Data. */ -#define FLASH_RESERVED_LENGTH (SYSTEM_RESERVED_FLASH_PAGES * FLASH_PAGE_SIZE) - -/* - * ********************* SEC BOOT REGION ********************* - */ -#define MCU_ROOT_PUBKEY_START SEC_BOOT_FLASH_REGION_START -#define MCU_SUB_PUBKEY_START (MCU_ROOT_PUBKEY_START + FLASH_PAGE_SIZE) -#define MCU_SSB_IMAGE_SIGN_START (MCU_SUB_PUBKEY_START + FLASH_PAGE_SIZE) -#define MCU_SUB_PUBKEY_BACKUP_START (MCU_SSB_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_SSB_IMAGE_SIGN_BACKUP_START (MCU_SUB_PUBKEY_BACKUP_START + FLASH_PAGE_SIZE) - -#define MCU_SEC_BOOT_SIGN_BACKUP_START MCU_SUB_PUBKEY_BACKUP_START -#define MCU_SEC_BOOT_SIGN_BACKUP_LEN (2 * FLASH_PAGE_SIZE) - -#define MCU_CFCT_START (MCU_SEC_BOOT_SIGN_BACKUP_START + MCU_SEC_BOOT_SIGN_BACKUP_LEN) -#define MCU_CFCT_LEN FLASH_PAGE_SIZE - -#define MCU_RECOVERY_IMAGE_SIGN_START (MCU_CFCT_START + MCU_CFCT_LEN) -#define MCU_BT_IMAGE_SIGN_START (MCU_RECOVERY_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_DSP_IMAGE_SIGN_START (MCU_BT_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_DSP1_IMAGE_SIGN_START (MCU_DSP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_APP_IMAGE_SIGN_START (MCU_DSP1_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_PARTITION_TABLE_SIGN_START (MCU_APP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) - -/* - * ********************* RAM ALLOCATION ********************* - * - * Three main RAM areas, the 'BCPU' RAM, the 'APP' RAM, and 'share' RAM. - * 'APP' RAM include 'ITCM' for code and 'DTCM' for DATA. - * As the name implies, every core can access it's RAM and they all allowed - * to access 'share' RAM - * - * BT core can access all RAM include APP RAM and DSP RAM. - * - * The 'shared' RAM is used by all cores, this area visible to them all - * to exchange larger amounts of data. - * - * SHARED RAM IPC mail box - * LOG Area - */ -/* ----------------------------------------------------------------------------------------------------------------- */ -/* BCPU RAM defines - * BCPU has base 640K RAM and can set other 96K at the share RAM - * as it's private, total 736K. - * BCPU RAM VECTORS TABLE - * STACK - * RAM TEXT - * RAM - * PRESERVE - * *VIRTUAL_OTP - */ -#define BCPU_ROM_START 0xA0000 -#define BCPU_ROM_LENGTH 0xE0000 - -#define BCPU_DIAG_START 0x80000 -#define BCPU_DIAG_LENGTH 0x10000 - -#define BCPU_PATCH_START BCPU_DIAG_START -#define BCPU_PATCH_LENGTH 0x4000 - -#define BCPU_RAM_LENGTH 0x90000 - -/* APP Core can also access the BT core RAM, need mapping out. */ -#define BT_RAM_ORIGIN_APP_MAPPING 0xA6000000 -#define BT_RAM_ORIGIN_APP_MAPPING_LENGTH BCPU_RAM_LENGTH - -/* 48 byte for BCPU system clocks status */ -#define BCPU_SYSTEM_CLOCKS_LENGTH 0x30 - -/* 4096 bits for virtual otp */ -#define OTP_SIZE_IN_BITS 4096 /* Size of OTP memory in bits */ -#define OTP_SIZE_IN_BYTES ((OTP_SIZE_IN_BITS) / 8) - -#define BCPU_SYSTEM_CLOCKS_ORIGIN (BT_USE_RAM_ORIGIN + BT_USE_RAM_LENGTH - BCPU_SYSTEM_CLOCKS_LENGTH) - -/* the minimum BT heap size (50kB) */ -#define BT_HEAP_MINIMUM_SIZE 0xC800 - -/* the minimum APP heap size */ -#define APP_HEAP_MINIMUM_SIZE (APP_HEAP_SIZE) - -/* for update the updater */ -#define UPDATER_PRESERVED_LENGTH 0x10000 -#define UPDATER_PRESERVED_ORIGIN (BCPU_SYSTEM_CLOCKS_ORIGIN - UPDATER_PRESERVED_LENGTH) - -#define BCPU_NEW_STACKS_LENGTH 0x10000 -#define BCPU_NEW_STACKS_ORIGIN (UPDATER_PRESERVED_ORIGIN - BCPU_NEW_STACKS_LENGTH) - -/* Define the Vectors table location in ram, used by link script. */ -/* BCPU (SSB, RECOVERY, BT) VECTORS region */ -#define BCPU_VECTORS_ORIGIN (BCPU_RAM_START) -#define BCPU_RAM_END (BCPU_RAM_START + BCPU_RAM_LENGTH) -/* BT core actually used ram, whole bt ram exclude VECTORS TABLE */ -#define BT_USE_RAM_LENGTH (BCPU_RAM_LENGTH - BT_VECTORS_LENGTH) -#define BT_USE_RAM_ORIGIN (BCPU_RAM_END - BT_USE_RAM_LENGTH) - -#define BCPU_USER_STACK_LEN 0x800 -#define BCPU_IRQ_STACK_LEN 0x1000 -#define BCPU_EXCP_STACK_LEN 0x800 -#define BCPU_NMI_STACK_LEN 0X800 -#define BCPU_STACK_LEN (BCPU_USER_STACK_LEN + BCPU_IRQ_STACK_LEN + BCPU_EXCP_STACK_LEN + BCPU_NMI_STACK_LEN) - -/* ----------------------------------------------------------------------------------------------------------------- */ -/* APP RAM defines - * APP has base 192K ITCM (Instruction TCM) for code - * 448K DTCM (Data TCM) for DATA. - * APP ITCM VECTORS TABLE - * RAM TEXT - * - * APP DTCM STACK - * RAM - */ -/* 192K ITCM for APP core code, start at end of vectors table */ -#define APP_RAMTEXT_ORIGIN (APP_ITCM_ORIGIN + APP_VECTORS_LENGTH) -#define APP_RAMTEXT_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) -#define APP_RAMTEXT_LENGTH (APP_RAMTEXT_END - APP_RAMTEXT_ORIGIN) - -/* 448K DTCM for APP core data */ -/* stack for normal 10k */ -#define APP_USER_STACK_BASEADDR APP_DTCM_ORIGIN -#define APP_USER_STACK_LEN 0xC00 -#define APP_USER_STACK_LIMIT (APP_USER_STACK_BASEADDR + APP_USER_STACK_LEN) - -/* stack for irq 4k */ -#define APP_IRQ_STACK_BASEADDR APP_USER_STACK_LIMIT -#define APP_IRQ_STACK_LEN 0xC00 -#define APP_IRQ_STACK_LIMIT (APP_IRQ_STACK_BASEADDR + APP_IRQ_STACK_LEN) - -/* stack for exception 4k */ -#define APP_EXCP_STACK_BASEADDR APP_IRQ_STACK_LIMIT -#define APP_EXCP_STACK_LEN 0xC00 -#define APP_EXCP_STACK_LIMIT (APP_EXCP_STACK_BASEADDR + APP_EXCP_STACK_LEN) - -/* stack for nmi 4k */ -#define APP_NMI_STACK_BASEADDR APP_EXCP_STACK_LIMIT -#define APP_NMI_STACK_LEN 0xC00 -#define APP_NMI_STACK_LIMIT (APP_NMI_STACK_BASEADDR + APP_NMI_STACK_LEN) - -/* 448K DTCM for APP core data, start at end of vectors table */ -#define APP_RAM_ORIGIN (APP_NMI_STACK_LIMIT) -#define APP_RAM_END (APP_DTCM_ORIGIN + APP_DTCM_LENGTH) -#define APP_RAM_LENGTH (APP_RAM_END - APP_RAM_ORIGIN) - -/* BT Core can also access the APP core RAM, need mapping out. */ -#define APP_ITCM_ORIGIN_BT_MAPPING 0x4C000000 -#define APP_DTCM_ORIGIN_BT_MAPPING 0x4E000000 - -/* Define the Vectors table location in ram, used by link script. */ -/* APP CPU VECTORS region */ -#define APP_VECTORS_ORIGIN (APP_ITCM_ORIGIN) - -/* ----------------------------------------------------------------------------------------------------------------- */ -/* DSP RAM use and manage by DSP team, M7 just need to know the access mapping. */ -#define DSP_CODE_ADDR_BT_MAPPING 0x58000000 - -/* 12*N bytes for cpu trace, trace line is 12 bytes, 8184 bytes */ -#define MCPU_TRACE_MEM_REGION_START 0x52006000 -#define BCPU_TRACE_MEM_REGION_START 0x5900E000 -#define CPU_TRACE_MEM_REGION_LENGTH 0x1FF8 - -/* IPC Mail box region, every core need have a send mail box to other cores - * so there is 6 mailbox totally, use (3KB+16B) * 3 share mem. - */ -#define IPC_MAILBOX_REGION_START (SHARED_MEM_START) -#define IPC_MAILBOX_REGION_LENGTH 0x4860 - -/* 176 bytes for BT core preserve region */ -#define PRESERVED_REGION_ORIGIN (IPC_MAILBOX_REGION_START + IPC_MAILBOX_REGION_LENGTH) -#define PRESERVED_REGION_LENGTH 0xfc - -/* 176 bytes for App core preserve region */ -#define APP_PRESERVED_REGION_ORIGIN (PRESERVED_REGION_ORIGIN + PRESERVED_REGION_LENGTH) -#define APP_PRESERVED_REGION_LENGTH 0x0 - -/* fix the memory map layout */ -#define IPC_MAILBOX_REGION_FIX_LENGTH (IPC_MAILBOX_REGION_LENGTH + \ - PRESERVED_REGION_LENGTH + APP_PRESERVED_REGION_LENGTH) // 0x49C0 - -/* System config region. */ -#define SYSTEM_CFG_REGION_START (APP_PRESERVED_REGION_ORIGIN + APP_PRESERVED_REGION_LENGTH) -#define SYSTEM_CFG_REGION_LENGTH 0x40 - -/* Reboot magic region. */ -#define REBOOT_MAGIC_START (SYSTEM_CFG_REGION_START + SYSTEM_CFG_REGION_LENGTH) -#define REBOOT_MAGIC_LENGTH 0x80 - -#define SYSTEM_PM_REGION_START (REBOOT_MAGIC_START + REBOOT_MAGIC_LENGTH) -#define SYSTEM_PM_REGION_LENGTH 0xC0 - -/* System status region. */ -#define SYSTEM_STATUS_ORIGIN (SYSTEM_PM_REGION_START + SYSTEM_PM_REGION_LENGTH) -#define SYSTEM_STATUS_LENGTH 0xc0 - -/* Mass data region */ -/* wear(BT - 1K, APP - 1K) tws(BT - 1K, APP - 2K) */ -#define MASSDATA_REGION_START (SYSTEM_STATUS_ORIGIN + SYSTEM_STATUS_LENGTH) -#define MASSDATA_REGION_LENGTH (BT_MASSDATA_LENGTH + APP_MASSDATA_LENGTH) - -/* LOG Region */ -/* wear(BT - 7K, APP - 3K, DSP - 7.5K) tws(BT - 7K, APP - 7K, DSP - 8K) */ -#define BT_LOGGING_LENGTH 0x1C00 - -#define LOGGING_REGION_START (MASSDATA_REGION_START + MASSDATA_REGION_LENGTH) -#define LOGGING_REGION_LENGTH (BT_LOGGING_LENGTH + APP_LOGGING_LENGTH + DSP_LOGGING_LENGTH) - -/* Trng data shared memory 512byte */ -#define TRNG_DATA_REGION_START (LOGGING_REGION_START + LOGGING_REGION_LENGTH) -#define TRNG_DATA_REGION_LENGTH 0x200 - -/* Prompt tone region 10K for tws and 5K for wear */ -#define PROMPT_TONE_REGION_START (TRNG_DATA_REGION_START + TRNG_DATA_REGION_LENGTH) - -/* Audio data stream region 8K for tws and 20K for wear */ -#define AUDIO_DATA_STREAM_REGION_START (PROMPT_TONE_REGION_START + PROMPT_TONE_REGION_LENGTH) - -/* RESERVED share mem */ -#define RESERVED_SHARE_MEM_ORIGIN (AUDIO_DATA_STREAM_REGION_START + AUDIO_DATA_STREAM_REGION_LENGTH) -#define RESERVED_SHARE_MEM_LENGTH (SHARED_MEM_START + SHARED_MEM_LENGTH - RESERVED_SHARE_MEM_ORIGIN) - -#if (RESERVED_SHARE_MEM_LENGTH < 0) -#error Share memory overflow -#endif - -#ifndef BUILD_APPLICATION_ATE -/* BT DIAG region, Use L2RAM */ -#define BT_DIAG_REGION_MEMORY_START 0x80100000 -#define BT_DIAG_REGION_MEMORY_LENGTH 0x20000 -#define BT_DIAG_REGION_MEMORY_END (BT_DIAG_REGION_MEMORY_START + BT_DIAG_REGION_MEMORY_LENGTH) -#endif - -/* - * ********************* ADDITIONAL MEMORY CONFIGURATION DEFINITIONS ********************* - * The offset in the BCPU (either flash or ROM) to where the version information starts. - */ -#define VERSION_INFORMATION_OFFSET (BT_VECTORS_LENGTH) - -/** - * @} - */ -#endif \ No newline at end of file diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h deleted file mode 100644 index 24d6e2bc3..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2020-2023. All rights reserved. - * Description: product EVB4 standard config - * Author: @CompanyNameTag - * Create: 2023-03-07 - */ -#ifndef PRODUCT_EVB4_STANDARD_CONFIG_H -#define PRODUCT_EVB4_STANDARD_CONFIG_H - -/** - * @defgroup connectivity_config_product PRODUCT - * @ingroup connectivity_config - * @{ - */ -/* Platform board config, need check if it support or not carefully. */ -#define BTH_WITH_SMART_WEAR YES -#define APP_WRITE_OTP_ENABLE NO -#define APP_HEAP_SIZE 0x18000 // the minimum APP heap size (96kB) -#define USE_FLASH_SUSPEND_AND_RESUME NO -#define WAIT_APPS_DUMP_FOREVER NO -#define TWS_MPU_XIP_PROTECT NO -#define SSB_IMAGE_PAGES 27 -#ifdef CONFIG_LOW_POWER_TEST -#define ENABLE_LOW_POWER YES -#else -#define ENABLE_LOW_POWER NO -#endif -#define DTB_IMAGE_PAGES 0 -#define RECOVERY_IMAGE_PAGES 64 -#define RESERVE_IMAGE_PAGES 0 -#define BT_IMAGE_PAGES 112 -#define HIFI0_IMAGE_PAGES 112 -#define HIFI0_CODEC_PAGES 320 -#define APP_IMAGE_PAGES 3401 -#define NV_IMAGE_PAGES 4 -#define FOTA_IMAGE_PAGES 3 -#define FOTA_IMAGE_START 0xFFD000 -#define SSB_FOTA_OFFSET 0x0 -#define XO_CTRIM_VALUR_DEFAULT 0x56 -#define DSP1_IPC_ENABLE NO -#define APP_BTN_TASK_MONITOR_ENABLE NO -#define SSB_FOTA_MODE_TWS YES -#define DSP_EXTEND_OCRAM_SIZE 1310720 // Unit byte, = 1280 KB -#define OSC_EN_CALLBACK_BY_PLT YES -#define BT_MIPS_DEBUG NO -#define NON_OS_CRITICAL_RECORD NO -#define ENABLE_MASSDATA_RECORD NO -#define USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG NO -#define COMPRESS_LOG_TRIGGER_THRESHOLD 0 -#define COMPRESS_LOG_COUNT_THRESHOLD 0xFFFFFFFF -#define EXCEPTION_TEST_ENABLE NO -#define LOG_LEVEL_APP_DEFAULT_CONFIG 3 // Info level -#define LOG_LEVEL_BT_DEFAULT_CONFIG 3 // Info level -#define LOG_LEVEL_DSP_DEFAULT_CONFIG 3 // Info level -#define BCPU_HEAP_MININUM_SIZE 0xA000 // 40KB -#define SYS_DEBUG_MODE_ENABLE YES -#define PROMPT_TONE_REGION_LENGTH 0x2800 -#define AUDIO_DATA_STREAM_REGION_LENGTH 0x2000 -#define BT_MASSDATA_LENGTH 0x400 -#define APP_MASSDATA_LENGTH 0x800 -#define APP_LOGGING_LENGTH 0x1C00 -#define DSP_LOGGING_LENGTH 0x2000 -#define PSRAM_DENSITY_MB 32 -#define RC_CLOCK_ON NO -#define SMART_WATCH_BT_COEX_PIN_SWITCH NO // pinmux switch in the Coexistence of BT and WiFi of smart watch -#define CAP_SENSOR_BUFF_LEN 128 -#define BT_L2RAM_AREA_SIZE 3 // 384k, Reference the enum Value of hal_b_memory_share_config_t -#define DSP_L2RAM_AREA_TOTAL 10 -#define GPU_L2RAM_AREA_TOTAL 11 -#ifndef CONFIG_PSRAM_SUPPORT -#define DSP_L2RAM_AREA_SIZE 6 // 无PSRAM & 小型化场景分配给DSP 6块*128K=768KB 剩余512K系统使用 -#else -#if defined(CONFIG_SEA_PHS_SUPPORT) -#define DSP_L2RAM_AREA_SIZE 10 // 语音唤醒场景分配给DSP 10块*128K=1280KB DSP L2M不给系统使用 -#else -#define DSP_L2RAM_AREA_SIZE 8 // 正常场景分配给DSP 8块*128K=1024KB 剩余256K系统使用 -#endif /* CONFIG_SEA_PHS_SUPPORT */ -#endif /* CONFIG_PSRAM_SUPPORT */ -#define PUYA_FLASH_SUPPORT YES - -/********************display config********************/ -#define DOUBLE_BUFFER 1 -#if defined(QSPI_DISPLAY) -#define RESOLUTION_WIDTH 194 -#define RESOLUTION_HEIGHT 368 -#elif defined(MEMORY_MINI) -#define RESOLUTION_WIDTH 240 -#define RESOLUTION_HEIGHT 296 -#elif defined(SUPPORT_SOFT_SEND_FRM) -#define RESOLUTION_WIDTH 368 -#define RESOLUTION_HEIGHT 448 -#else -#define RESOLUTION_WIDTH 466//454 -#define RESOLUTION_HEIGHT 466//454 -#endif - -/********************Other module board config********************/ -#define BTC_SWITCH_COEX YES -#define BTC_SMART_WEAR_WLCOEX YES -#define BTC_WITH_SMART_WEAR YES -#define BTC_TWS_MONITOR YES -#define BTC_ICO_SUPPORT YES -#define BTC_DUAL_ANT_SWITCH_SUPPORT NO -#define BTC_GET_EMC_FROM_PLATFORM YES // 后续耳机产品通过HCI传递NV数据实现后,该选项需要置为NO -#define BTSNOOP_ENABLE NO -#define TWS_USER_CHR_RECORD NO -#define BTH_WEAR_ENABLE_AUDIO_SINK NO -#define BTH_WEAR_ENABLE_AUDIO_GATEWAY NO -#define BTH_WEAR_BREDR_DOUBLE_CONNECT NO -#define BTC_DFX_LOG_HELP_SUPPORT NO -#define FACTORY_CALI NO -#define BTH_WEAR_ENABLE_CONNECT_MANAGER NO -#define BTH_WEAR_ENABLE_BLE_FEATURES YES -#define BTH_WEAR_ENABLE_HFP_FEATURES NO -#define WEAR_USER_CONFIG NO -#define BTH_HIGH_POWER YES -#define MULTI_CONNECT YES -#define BTH_CONFIG_HDAP YES -#define DEVICE_MANAGE_FEATURE YES -#define BTH_CALL_LC3_32K YES -#define BTH_ENABLE_LC3_CODEC YES -#define ENABLE_CHANGE_DEVICE_NAME YES -#define BTH_DIP_PRODUCT_ID 0x4106 -#define BTH_ENABLE_L2HC_CODEC YES -#define ENABLE_BT_XO_16M NO -#define BTH_WSTP_CMD_SUPPORT YES -#define PRODUCT_SUPPORT_MODE_SWITCH YES -#define BT_MANAGER_DEPLOYED 2 -#define BT_CODEC_TID 2 -#define BTH_WEAR_ENABLE_AVRCP_TARGET NO -#define BTH_WEAR_ENABLE_AVRCP_CONTROLLER NO -#define BTH_WEAR_ENABLE_AUDIO_SOURCE NO -#define BTH_WEAR_ALLOW_INQUIRY_SCAN YES -#define BTH_WEAR_ENABLE_HALL_STATE NO - -// 音频内置输入设备 -#define BUILTIN_AI_PORT 0x50 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_LPADC0 枚举 -#define BUILTIN_AI_PORT_ATTR_ADC_RX_TYPE 0 // 参考 soc_uapi_ai.h 中 UAPI_AI_RX_DEFAULT 枚举 -#define BUILTIN_AI_PCM_ATTR_AUDIO_CH 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_1 枚举 -#define BUILTIN_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_AI_PCM_ATTR_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define BUILTIN_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 - -// 音频内置输出设备 -#define BUILTIN_SND_OUT_PORT 0x10 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S0 枚举 -#define BUILTIN_SND_OUT_PORT_NUM 1 // 端口个数 -#define BUILTIN_SND_OUT_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define BUILTIN_SND_OUT_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_SND_OUT_SAMPLE_RATE 48000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_48K 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_BCLK 8 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_8_DIV 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_STD_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_MCLK 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_256_FS 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_I2S_PCM_DELAY 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 -#define BUILTIN_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 - -// 音频外挂输入设备 -#define EXTERNAL_AI_PORT 1 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_I2S1 枚举 -#define EXTERNAL_AI_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -#define EXTERNAL_AI_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 -#define EXTERNAL_AI_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 -#define EXTERNAL_AI_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_AI_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_AI_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 -#define EXTERNAL_AI_I2S_ATTR_PCM_DELAY_CYCLE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 -#define EXTERNAL_AI_PCM_ATTR_CHANNELS 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 50 // 每秒帧数 , EG810 pcm 20ms 一帧 - -// 音频外挂输出设备 -#define EXTERNAL_SND_OUT_PORT 0x11 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S1 枚举 -#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_SND_OUT_AUDIO_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -#define EXTERNAL_SND_OUT_PORT_NUM 1 // 端口个数 -#define EXTERNAL_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 12.288M /16k = -#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -#define EXTERNAL_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 -#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 12.288M / 256k = 48 - -// Sleep option -#define CONFIG_PM_TICKLESS_EN YES -#define CONFIG_PM_POWER_GATING_EN YES -#define CONFIG_PM_SLEEP_RECORD_EN YES -#define CONFIG_PM_VETO_TRACK_EN NO -#define CONFIG_PM_SLEEP_INT_EN NO - -// Double-click the key -#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK YES - -// LCD VCI_EN -#define VCI_LCD_GPIO S_AGPIO_L24 -#define DISPLAY_TE_GPIO S_AGPIO_L22 -#define RESET_LCD_GPIO S_AGPIO_L27 - -// TP CONFIG -#define ZTW523_I2C_BUS I2C_BUS_1 -#define ZTW523_INT_GPIO S_AGPIO_R5 -#define ZTW523_RESET_GPIO S_AGPIO_R4 -#define TMA525B_I2C_BUS I2C_BUS_1 -#define TMA525B_INT_GPIO S_AGPIO_R5 -#define TMA525B_RESET_GPIO S_AGPIO_R4 -#define FT6X46_I2C_BUS I2C_BUS_1 -#define FT6X46_INT_GPIO S_AGPIO_R5 -#define FT6X46_RESET_GPIO S_AGPIO_R4 - -/** - * @} - */ -#endif diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c deleted file mode 100644 index d2203a1b0..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c +++ /dev/null @@ -1,491 +0,0 @@ -/** - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n - * - * Description: Provides uart port template \n - * Author: @CompanyNameTag \n - * History: \n - * 2022-06-06, Create file. \n - */ -#include -#include "dma_porting.h" -#include "debug_print.h" -#include "hal_uart_v120.h" -#include "uart_porting.h" -#ifdef SUPPORT_HAL_PINCTRL -#include "pinctrl_porting.h" -#include "pinctrl.h" -#endif -#include "uart.h" -#include "oal_interface.h" -#include "platform_core.h" -#include "securec.h" -#include "soc_osal.h" -#ifdef SUPPORT_CLOCKS_CORE -#include "clocks_core_common.h" -#endif -#if defined(SUPPORT_TEST_COMMON) -#include "test_suite_uart.h" -#endif -#if defined(SUPPORT_AT_CMD) -#include "at_cmd_api.h" -#endif -#ifndef BUILD_APPLICATION_SSB -#include "log_uart.h" -#include "cmsis_os.h" -#endif -#if defined(SW_RTT_DEBUG) -#include "SEGGER_RTT.h" -#endif - -#ifdef BUILD_APPLICATION_SSB -#define UART_RX_BUFFER_SIZE 1 -#else -#define UART_RX_BUFFER_SIZE 56 -#endif - -#define AT_BLE_HEADER_LENGTH 49 -#define AT_CMD_BUFSIZE_MAX 256 -#define UARTILPR 0x20 -#define UARTIBRD 0x24 -#define UARTFBRD 0x28 -#define UARTLCRH 0x2c -#define UARTCR 0x30 -#define UARTIFLS 0x34 -#define UARTIMSC 0x38 -#define UARTDMACR 0x48 -#define UARTRESET (M_CTL_RB_BASE + 0x0168) -#define UARTBUS0 0x1 -#define UARTBUS1 0x0 - -/** - * CUSTOM_UART_RATE = 500000 可以看蓝牙日志 - * 2000000 可以加快下载文件速度 -*/ -#define CUSTOM_UART_RATE 2000000 -typedef struct { - pin_mode_t tx_pin_mode; - pin_mode_t rx_pin_mode; - pin_mode_t cts_pin_mode; - pin_mode_t rts_pin_mode; -} uart_pin_mode_t; - -typedef struct uart_config { - uart_pin_config_t pin; - uart_pin_mode_t pin_mode; - core_irq_t irq_num; - osal_irq_handler irq_func; - uart_rx_callback_t rx_callback; - uart_attr_t line_config; - uart_buffer_config_t buffer_config; -#ifndef BUILD_APPLICATION_SSB - osal_mutex uart_mutex; - bool support_mutex; -#endif -} uart_config_t; - -const uintptr_t g_uart_base_addrs[UART_BUS_MAX_NUM] = { - (uintptr_t)UART0_BASE, - (uintptr_t)UART1_BASE, -}; - -uintptr_t uart_porting_base_addr_get(uart_bus_t bus) -{ - return g_uart_base_addrs[bus]; -} - -static bool g_sw_debug_uart_enabled = false; -uint8_t g_uart0_rx_buffer[UART_RX_BUFFER_SIZE]; -uint8_t g_uart1_rx_buffer[UART_RX_BUFFER_SIZE]; -#if defined(SUPPORT_AT_CMD) -static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining); -#endif - -void log_factory_at_callback(const void *buffer, uint16_t length, bool remaining); - -static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { -#ifdef BUILD_APPLICATION_SSB - /* UART_BUS_0 for debug print */ - { - { - .tx_pin = S_MGPIO19, - .rx_pin = S_MGPIO20, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_0_IRQN, - (osal_irq_handler)irq_uart0_handler, - NULL, - { - .baud_rate = 115200, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart0_rx_buffer, - } - }, - /* UART_BUS_1 for codeloader */ - { - { - .tx_pin = S_MGPIO33, - .rx_pin = S_MGPIO34, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - }, - UART_1_IRQN, - (osal_irq_handler)irq_uart1_handler, - NULL, - { - .baud_rate = 115200, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart1_rx_buffer, - } - } -#else - /** UART_BUS_0, which is used to at cmd and debug print in wstp version, - * and which is used to testustie and debug print in testsuite version - */ - { - { - .tx_pin = S_MGPIO19, - .rx_pin = S_MGPIO20, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART1, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_0_IRQN, - (osal_irq_handler)irq_uart0_handler, -#if defined(SUPPORT_TEST_COMMON) - test_suite_uart_rx_callback, -#elif defined(SUPPORT_AT_CMD) - at_cmd_uart_rx_callback, -#else - NULL, -#endif - { - #ifdef ENABLE_SLIP - .baud_rate = 921600, - #else - .baud_rate = CUSTOM_UART_RATE, - #endif - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart0_rx_buffer, - }, - NULL, -#if defined(SUPPORT_TEST_COMMON) - false, -#else - true, -#endif - }, - /* UART_BUS_1 is used to hso uart */ - { - { - .tx_pin = S_MGPIO33, - .rx_pin = S_MGPIO34, - .cts_pin = PIN_NONE, - .rts_pin = PIN_NONE - }, - { - .tx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .rx_pin_mode = (pin_mode_t)HAL_PIO_FUNC_UART_HS_UART, - .cts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX, - .rts_pin_mode = (pin_mode_t)HAL_PIO_FUNC_MAX - }, - UART_1_IRQN, - (osal_irq_handler)irq_uart1_handler, -#ifndef FT_SINGLE_UART -#if SYS_DEBUG_MODE_ENABLE == YES - log_uart_rx_callback, -#endif -#else - log_factory_at_callback, -#endif - { - .baud_rate = CUSTOM_UART_RATE, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, - }, - { - .rx_buffer_size = UART_RX_BUFFER_SIZE, - .rx_buffer = g_uart1_rx_buffer, - }, - NULL, - false - } -#endif -}; -static uart_recovery_regs_t g_uart_recovery_reg[UART_BUS_MAX_NUMBER] = { 0 }; - -#ifdef FT_SINGLE_UART -void log_factory_at_callback(const void *buffer, uint16_t length, bool remaining) -{ - log_uart_rx_callback(buffer, length, remaining); - if (zdiag_is_enable() == false) { - at_cmd_msg_receive_handler((uint8_t *)buffer, length); - hal_uart_clear_pending(UART_BUS_1); - } -} -#endif - -void uart_port_register_hal_funcs(uart_bus_t bus) -{ - hal_uart_register_funcs(bus, hal_uart_v120_funcs_get()); -} - -void uart_port_unregister_hal_funcs(uart_bus_t bus) -{ - hal_uart_unregister_funcs(bus); -} - -uint32_t uart_port_get_clock_value(uart_bus_t bus) -{ - return uart_get_clock_value(bus); -} - -void uart_port_config_pinmux(uart_bus_t bus) -{ - UNUSED(bus); - uapi_pin_set_mode(g_uart_config[UART_BUS_1].pin.tx_pin, g_uart_config[UART_BUS_1].pin_mode.tx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_1].pin.rx_pin, g_uart_config[UART_BUS_1].pin_mode.rx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_0].pin.tx_pin, g_uart_config[UART_BUS_0].pin_mode.tx_pin_mode); - uapi_pin_set_mode(g_uart_config[UART_BUS_0].pin.rx_pin, g_uart_config[UART_BUS_0].pin_mode.rx_pin_mode); -} - -void uart_port_register_irq(uart_bus_t bus) -{ - osal_irq_request(g_uart_config[bus].irq_num, g_uart_config[bus].irq_func, NULL, NULL, NULL); - osal_irq_set_priority(g_uart_config[bus].irq_num, irq_prio(g_uart_config[bus].irq_num)); - osal_irq_enable(g_uart_config[bus].irq_num); -} - -void uart_port_unregister_irq(uart_bus_t bus) -{ - osal_irq_disable(g_uart_config[bus].irq_num); -} - -void irq_uart0_handler(void) -{ - hal_uart_irq_handler(UART_BUS_0); -} - -void irq_uart1_handler(void) -{ - hal_uart_irq_handler(UART_BUS_1); -} - -#ifdef SUPPORT_AT_CMD -static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining) -{ - unused(remaining); - #ifndef FT_SINGLE_UART - at_cmd_msg_receive_handler((uint8_t *)buf, buf_len); - #endif - - #ifdef ENABLE_SLIP - slip_receive_handler((uint8_t *)buf, buf_len); - #endif - hal_uart_clear_pending(SW_DEBUG_UART_BUS); -} -#endif - -void uart_config_init(void) -{ - for (uint8_t i = 0; i < UART_BUS_MAX_NUM; i++) { - if ((g_uart_config[i].pin.tx_pin != PIN_NONE) || (g_uart_config[i].pin.rx_pin != PIN_NONE)) { - uapi_uart_init(i, &(g_uart_config[i].pin), &(g_uart_config[i].line_config), NULL, - &(g_uart_config[i].buffer_config)); - } - if (g_uart_config[i].rx_callback != NULL) { - uapi_uart_register_rx_callback(i, UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA_OR_IDLE, - (uint32_t)(g_uart_config[i].buffer_config.rx_buffer_size), - g_uart_config[i].rx_callback); - } - -#ifndef BUILD_APPLICATION_SSB - if (g_uart_config[i].support_mutex == true) { - osal_mutex_init(&(g_uart_config[i].uart_mutex)); - } -#endif - } -} - -#if (defined SW_UART_DEBUG)||(defined FT_SINGLE_UART) -void sw_debug_uart_deinit(void) -{ - uapi_uart_deinit(SW_DEBUG_UART_BUS); -} - -void sw_debug_uart_init(uint32_t baud_rate) -{ - g_uart_config[SW_DEBUG_UART_BUS].line_config.baud_rate = baud_rate; - uapi_uart_init(SW_DEBUG_UART_BUS, &(g_uart_config[SW_DEBUG_UART_BUS].pin), - &(g_uart_config[SW_DEBUG_UART_BUS].line_config), NULL, - &(g_uart_config[SW_DEBUG_UART_BUS].buffer_config)); -} - -void sw_debug_uart_reset_baund(void) -{ - while (uapi_uart_has_pending_transmissions(SW_DEBUG_UART_BUS)) { } - uapi_uart_set_attr(SW_DEBUG_UART_BUS, &g_uart_config[SW_DEBUG_UART_BUS].line_config); -} -#endif - -void print_str(const char *str, ...) -{ - static uint8_t s[1024]; // 1024 means string max length. - va_list args; - int32_t str_len; - - if ((str == NULL) || (strlen(str) == 0)) { - return; - } - - va_start(args, str); - str_len = vsprintf_s((char *)s, sizeof(s), str, args); - va_end(args); - - if (str_len < 0) { - return; - } -#if defined(SW_RTT_DEBUG) - SEGGER_RTT_Write(0, (const char *)s, str_len); -#elif defined(SW_UART_DEBUG) - if (hal_uart_get_funcs(SW_DEBUG_UART_BUS) == NULL) { - return; - } - uapi_uart_write(SW_DEBUG_UART_BUS, (const void *)s, (uint32_t)str_len, 0); -#else -#endif -} - -void hal_uart_clear_pending(uart_bus_t uart) -{ - switch (uart) { - case UART_BUS_0: - int_clear_pending_irq(UART_0_IRQN); - break; - case UART_BUS_1: - int_clear_pending_irq(UART_1_IRQN); - break; - default: - break; - } -} - -#if defined(CONFIG_UART_SUPPORT_DMA) -uint8_t uart_port_get_dma_trans_dest_handshaking(uart_bus_t bus) -{ - switch (bus) { - case UART_BUS_0: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_L_TX; - case UART_BUS_1: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_H0_TX; - default: - return (uint8_t)HAL_DMA_HANDSHAKING_MAX_NUM; - } -} - -uint8_t uart_port_get_dma_trans_src_handshaking(uart_bus_t bus) -{ - switch (bus) { - case UART_BUS_0: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_L_RX; - case UART_BUS_1: - return (uint8_t)HAL_DMA_HANDSHAKING_UART_H0_RX; - default: - return (uint8_t)HAL_DMA_HANDSHAKING_MAX_NUM; - } -} -#endif /* CONFIG_UART_SUPPORT_DMA */ - -uint32_t uart_porting_lock(uart_bus_t bus) -{ -#ifndef BUILD_APPLICATION_SSB - if ((g_uart_config[bus].support_mutex == true) && (osKernelGetState() == osKernelRunning) && - (osal_in_interrupt() == 0)) { - return (uint32_t)osal_mutex_lock_timeout(&(g_uart_config[bus].uart_mutex), OSAL_MUTEX_WAIT_FOREVER); - } -#else - UNUSED(bus); -#endif - return ERRCODE_SUCC; -} - -void uart_porting_unlock(uart_bus_t bus, uint32_t irq_sts) -{ -#ifndef BUILD_APPLICATION_SSB - unused(irq_sts); - if ((g_uart_config[bus].support_mutex == true) && (osKernelGetState() == osKernelRunning) && - (osal_in_interrupt() == 0)) { - osal_mutex_unlock(&(g_uart_config[bus].uart_mutex)); - } -#else - UNUSED(bus); - UNUSED(irq_sts); -#endif -} - -void uart_save_reg(uart_bus_t bus) -{ - uint32_t base = uart_porting_base_addr_get(bus); - g_uart_recovery_reg[bus].uartilpr = readw(base + UARTILPR); - g_uart_recovery_reg[bus].uartibrd = readw(base + UARTIBRD); - g_uart_recovery_reg[bus].uartfbrd = readw(base + UARTFBRD); - g_uart_recovery_reg[bus].uartlcr_h = readw(base + UARTLCRH); - g_uart_recovery_reg[bus].uartcr = readw(base + UARTCR); - g_uart_recovery_reg[bus].uartifls = readw(base + UARTIFLS); - g_uart_recovery_reg[bus].uartimsc = readw(base + UARTIMSC); - g_uart_recovery_reg[bus].uartdmacr = readw(base + UARTDMACR); -} - -void uart_recovery_reg(uart_bus_t bus) -{ - uint16_t uart_bit = UARTBUS0; - if (bus == UART_BUS_0) { - uart_bit = UARTBUS0; - } else if (bus == UART_BUS_1) { - uart_bit = UARTBUS1; - } - reg16_clrbit(UARTRESET, uart_bit); - reg16_setbit(UARTRESET, uart_bit); - uint32_t base = uart_porting_base_addr_get(bus); - writew(base + UARTILPR, g_uart_recovery_reg[bus].uartilpr); - writew(base + UARTIBRD, g_uart_recovery_reg[bus].uartibrd); - writew(base + UARTFBRD, g_uart_recovery_reg[bus].uartfbrd); - writew(base + UARTLCRH, g_uart_recovery_reg[bus].uartlcr_h); - writew(base + UARTCR, g_uart_recovery_reg[bus].uartcr); - writew(base + UARTIFLS, g_uart_recovery_reg[bus].uartifls); - writew(base + UARTIMSC, g_uart_recovery_reg[bus].uartimsc); - writew(base + UARTDMACR, g_uart_recovery_reg[bus].uartdmacr); -} \ No newline at end of file diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_config.c deleted file mode 100644 index 7b6075f4f..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_config.c +++ /dev/null @@ -1,429 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd driver configuration. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include -#include "common_def.h" -#include "lcd_config.h" - -#define LCD_EDO_466X466_SCREEN_ID 0x1133 -#define LCD_EDO_454X454_SCREEN_ID 0xf00 -#define LCD_BOE_454X454_SCREEN_ID 0x500 -#define LCD_SH_240X296_SCREEN_ID 0x101 -#define LCD_BOE_194X368_SCREEN_ID 0x4a00 - -const combo_dev_cfg_t g_panel_466x466_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 10, // hsa 10 pixels - .hbp_pixels = 10, // hbp 10 pixels - .hact_pixels = 466, // hact 466 pixels - .hfp_pixels = 10, // hfp 10 pixels - .vsa_lines = 4, // vsa 4 lines - .vbp_lines = 12, // vbp 12 lines - .vact_lines = 466, // vact 466 lines - .vfp_lines = 10, // vfp 10 lines - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; -const combo_dev_cfg_t g_panel_454x454_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 10, // hsa 10 pixels - .hbp_pixels = 10, // hbp 10 pixels - .hact_pixels = 454, // hact 454 pixels - .hfp_pixels = 10, // hfp 10 pixels - .vsa_lines = 4, // vsa 4 lines - .vbp_lines = 12, // vbp 12 lines - .vact_lines = 454, // vact 454 lines - .vfp_lines = 10, // vfp 10 lines - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; - -const combo_dev_cfg_t g_panel_240x296_60_config = { - .devno = 0, - .lane_id = {0, -1}, - .out_mode = OUT_MODE_DSI_CMD, - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hsa_pixels = 4, // hsa 14 pixels hpw - .hbp_pixels = 11, // hbp 11 pixels HBP - .hact_pixels = 368, // hact 240 pixels HPX - .hfp_pixels = 14, // hfp 14 pixels hfp - .vsa_lines = 2, // vsa 2 lines vpw - .vbp_lines = 6, // vbp 6 lines vbp - .vact_lines = 448, // vact 296 lines vpx - .vfp_lines = 8, // vfp 8 lines vfp - }, - .phy_data_rate = 480, // 480Mbps - .pixel_clk = 20000, // 20000KHz -}; - -const combo_dev_cfg_t g_panel_194x368_qspi_config = { - .out_format = OUT_FORMAT_RGB_24BIT, - .sync_info = { - .hact_pixels = 194, // hact 368 pixels - .vact_lines = 368, // vact 368 lines - }, -}; - -/* display off sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_display_off[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ -}; - -/* display off sequence for common lcd */ -const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ - {1, 2, {0x4f, 0x01}, 0}, /* 进deepstandby 状态 */ -}; - -/* sleep in sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_sleep_in[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ -}; - -/* sleep in sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_sleep_out[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x11}, 120}, /* sleep out */ - {1, 1, {0x29}, 0}, /* display on */ -}; - -/* idle in sequence for EDO and BOE 454*454 lcd */ -lcd_cmd_sequ g_common_cmd_idle_in[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x39}, 0}, -}; - -/* idle out sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_idle_out[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x38}, 0}, -}; - -/* te on sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_te_on[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x35}, 0}, -}; - -/* te off sequence for EDO and BOE 454*454 lcd */ -const lcd_cmd_sequ g_common_cmd_te_off[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 1, {0x34}, 0}, -}; - -/* set brightness sequence for EDO and BOE 454*454 lcd */ -lcd_cmd_sequ g_common_cmd_brightness[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, -}; -const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x3a, 0x77}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {1, 2, {0x53, 0x20}, 0}, - // {1, 2, {0x51, 0xff}, 0}, - {1, 2, {0x63, 0xff}, 0}, - {1, 5, {0x2A, 0x00, 0x06, 0x01, 0xd7}, 0}, - {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xd1}, 0}, - {1, 3, {0x44, 0x01, 0xc5}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - - -/* init sequence for EDO 454*454 lcd */ -const lcd_cmd_sequ g_edo_454x454_screen_init_on[] = { - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x30, 0x43}, 0}, /* set LCD frequency to 15HZ */ - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x3a, 0x77}, 0}, - {1, 2, {0x53, 0x20}, 0}, - {1, 2, {0x51, 0xff}, 0}, - {0, 5, {0x2a, 0x00, 0x0e, 0x01, 0xd3}, 0}, - {0, 5, {0x2b, 0x00, 0x00, 0x01, 0xc5}, 0}, - {1, 3, {0x44, 0x01, 0xc5}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - -/* init sequence for BOE 454*454 lcd */ -const lcd_cmd_sequ g_boe_454x454_screen_init_on[] = { - {1, 2, {0xfe, 0x0d}, 0}, - {1, 2, {0x01, 0x00}, 0}, - {1, 2, {0x03, 0x00}, 0}, - {1, 2, {0x1b, 0x00}, 0}, - {1, 2, {0x1d, 0x00}, 0}, - {1, 2, {0x37, 0x00}, 0}, - {1, 2, {0x39, 0x00}, 0}, - {1, 2, {0x52, 0x58}, 0}, - {1, 2, {0x53, 0x00}, 0}, - - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x72, 0x05}, 0}, - {1, 2, {0x73, 0x16}, 0}, - {1, 2, {0x74, 0x0c}, 0}, - - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x18, 0x55}, 0}, - {1, 2, {0xc5, 0x10}, 0}, - {1, 2, {0x72, 0x0e}, 0}, - {1, 2, {0x73, 0x1c}, 0}, - - {1, 2, {0xfe, 0x07}, 0}, - {1, 2, {0x15, 0x04}, 0}, - {1, 2, {0xfe, 0x01}, 0}, - {1, 2, {0x0a, 0xf8}, 0}, - - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, - {1, 2, {0x35, 0x00}, 0}, - {0, 5, {0x2a, 0x00, 0x0c, 0x01, 0xd1}, 0}, - {0, 5, {0x2b, 0x00, 0x00, 0x01, 0xc5}, 0}, - {1, 2, {0x53, 0x20}, 0}, - {1, 1, {0x11}, 120}, - {1, 1, {0x29}, 0}, -}; - -const lcd_cmd_sequ g_sh_240x296_screen_init_on[] = { - {1, 1, {0x11}, 5}, - {1, 5, {0x2a, 0x00, 0x00, 0x01, 0x6f}, 1}, - {1, 5, {0x2b, 0x00, 0x00, 0x01, 0xbf}, 1}, - {1, 3, {0x44, 0x01, 0xbf}, 1}, - {1, 2, {0x35, 0x00}, 1}, - {1, 2, {0x3a, 0x77}, 1}, - {1, 2, {0x53, 0x20}, 80}, - {1, 1, {0x29}, 0}, -}; - -const lcd_cmd_sequ g_boe_194x368_screen_init_on[] = { - {0, 2, {0xfe, 0x00}, 0}, - {0, 3, {0x44, 0x00, 0xB7}, 0}, - {0, 2, {0x3a, 0x77}, 0}, - {0, 2, {0x51, 0x80}, 0}, - {0, 2, {0x35, 0x0}, 0}, - {0, 5, {0x2a, 0x00, 0x00, 0x00, 0xc1}, 0}, - {0, 1, {0x11}, 120}, - {0, 1, {0x29}, 100}, - {0, 1, {0x39}, 0}, -}; - -const lcd_cmds_sequ g_display_off_cmds = { - .cmd = g_common_cmd_display_off, - .cmd_cnt = array_size(g_common_cmd_display_off), -}; - -const lcd_cmds_sequ g_466x466_display_off_cmds = { - .cmd = g_common_466x466_cmd_display_off, - .cmd_cnt = array_size(g_common_466x466_cmd_display_off), -}; - -const lcd_cmds_sequ g_idle_in_cmds = { - .cmd = g_common_cmd_idle_in, - .cmd_cnt = array_size(g_common_cmd_idle_in), -}; - -const lcd_cmds_sequ g_idle_out_cmds = { - .cmd = g_common_cmd_idle_out, - .cmd_cnt = array_size(g_common_cmd_idle_out), -}; - -const lcd_cmds_sequ g_te_on_cmds = { - .cmd = g_common_cmd_te_on, - .cmd_cnt = array_size(g_common_cmd_te_on), -}; - -const lcd_cmds_sequ g_te_off_cmds = { - .cmd = g_common_cmd_te_off, - .cmd_cnt = array_size(g_common_cmd_te_off), -}; - -const lcd_cmds_sequ g_brightness_cmds = { - .cmd = g_common_cmd_brightness, - .cmd_cnt = array_size(g_common_cmd_brightness), -}; - -const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = { - .cmd = g_edo_466x466_screen_init_on, - .cmd_cnt = array_size(g_edo_466x466_screen_init_on), -}; - -const lcd_cmds_sequ g_edo_454x454_screen_init_on_cmds = { - .cmd = g_edo_454x454_screen_init_on, - .cmd_cnt = array_size(g_edo_454x454_screen_init_on), -}; - -const lcd_cmds_sequ g_boe_454x454_screen_init_on_cmds = { - .cmd = g_boe_454x454_screen_init_on, - .cmd_cnt = array_size(g_boe_454x454_screen_init_on), -}; - -const lcd_cmds_sequ g_sh_240x296_screen_init_on_cmds = { - .cmd = g_sh_240x296_screen_init_on, - .cmd_cnt = array_size(g_sh_240x296_screen_init_on), -}; - -const lcd_cmds_sequ g_boe_194x368_screen_init_on_cmds = { - .cmd = g_boe_194x368_screen_init_on, - .cmd_cnt = array_size(g_boe_194x368_screen_init_on), -}; - -const lcd_cmds_sequ g_sleep_in_cmds = { - .cmd = g_common_cmd_sleep_in, - .cmd_cnt = array_size(g_common_cmd_sleep_in), -}; - -const lcd_cmds_sequ g_sleep_out_cmds = { - .cmd = g_common_cmd_sleep_out, - .cmd_cnt = array_size(g_common_cmd_sleep_out), -}; - -const lcd_drv_cfg g_lcd_driver_ops[] = { - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_466x466_60_config, - .x_start = 0x6, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_EDO_466X466_SCREEN_ID, - .display_on_cmds = &g_edo_466x466_screen_init_on_cmds, - .display_off_cmds = &g_466x466_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, - .x_start = 0xe, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_EDO_454X454_SCREEN_ID, - .display_on_cmds = &g_edo_454x454_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, - .x_start = 0xc, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_BOE_454X454_SCREEN_ID, - .display_on_cmds = &g_boe_454x454_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_240x296_60_config, - .x_start = 0, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_SH_240X296_SCREEN_ID, - .display_on_cmds = &g_sh_240x296_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0xda, - .lcd_id_info.read_len = 3, - }, - { - .bus_type = BUS_DISPLAY_QSPI, - .bus_cfg = &g_panel_194x368_qspi_config, - .x_start = 0, - .y_start = 0, - .fps = 60, - .lcd_id = LCD_BOE_194X368_SCREEN_ID, - .display_on_cmds = &g_boe_194x368_screen_init_on_cmds, - .display_off_cmds = &g_display_off_cmds, - .enter_idle_cmds = &g_idle_in_cmds, - .exit_idle_cmds = &g_idle_out_cmds, - .te_on_cmds = &g_te_on_cmds, - .te_off_cmds = &g_te_off_cmds, - .set_brightnes_cmds = &g_brightness_cmds, - .sleep_in_cmds = &g_sleep_in_cmds, - .sleep_out_cmds = &g_sleep_out_cmds, - .lcd_id_info.reg_addr = 0x04, - .lcd_id_info.read_len = 3, - } -}; - -lcd_drv_cfg *lcd_get_driver_ops(void) -{ - return g_lcd_driver_ops; -} - -uint32_t lcd_get_ops_num(void) -{ - return array_size(g_lcd_driver_ops); -} - -combo_dev_cfg_t *lcd_get_bus_escape_config(void) -{ - return g_lcd_driver_ops[0].bus_cfg; -} - -lcd_drv_cfg *lcd_get_driver_config(uint32_t id) -{ - uint32_t i; - if (id == 0) { - return NULL; - } - - for (i = 0; i < array_size(g_lcd_driver_ops); i++) { - if (g_lcd_driver_ops[i].lcd_id == id) { - return &(g_lcd_driver_ops[i]); - } - } - - return NULL; -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_private.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_private.c deleted file mode 100644 index 064395295..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/lcd_private.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd private interface. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include "lcd_private.h" -#include "tcxo.h" -#include "chip_io.h" -#include "platform_core.h" -#include "gpio.h" -#include "pinctrl_porting.h" -#include "product.h" -#include "pinctrl.h" -static void lcd_drv_power_on(void) -{ -#ifndef QSPI_DISPLAY - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_HIGH); -#endif - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_HIGH); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ -} -#define USE_OUTPUT_CTL 1 -static void lcd_drv_power_off(void) -{ -#if USE_OUTPUT_CTL - //uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - //uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - #ifndef QSPI_DISPLAY - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO); - int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO); - printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -#else - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿ - uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN); - #ifndef QSPI_DISPLAY - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_INPUT); - uapi_pin_set_pull(VCI_LCD_GPIO, PIN_PULL_DOWN); - #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - int resetvalue = uapi_gpio_get_val(RESET_LCD_GPIO); - int lcd_envalue = uapi_gpio_get_val(VCI_LCD_GPIO); - printf("Input RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -#endif - -} - -static lcd_drv_private g_lcd_private_api = { - .power_on = lcd_drv_power_on, - .power_off = lcd_drv_power_off, -}; - -lcd_drv_private *lcd_drv_get_private_api(void) -{ - return &g_lcd_private_api; -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c deleted file mode 100644 index 56f8542af..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c +++ /dev/null @@ -1,767 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. - * Description: Lcd driver. - * Author: @CompanyNameTag - * Create: 2022-03-05 - */ - -#include "soc_lcd_api.h" -#include -#include "soc_errno.h" -#include "soc_osal.h" -#include "soc_mipi_tx.h" -#include "lcd_config.h" -#include "lcd_bus.h" -#include "lcd_mipi.h" -#include "lcd_qspi.h" -#include "lcd_common.h" -#include "lcd_private.h" -#include "pinctrl_porting.h" - -typedef struct lcd_attr { - bool info_register; /* 注册指定屏幕组件标志 */ - bool is_inited; /* LCD组件初始化标志 */ - lcd_type screen_type; /* LCD屏类型 */ - uint32_t lcd_id; /* LCD ID号 */ - lcd_drv_cfg *lcd_cfg; /* LCD参数 */ - uint8_t brightness; /* 显示亮度参数 */ - ext_lcd_status status; /* LCD状态标志 */ - osal_mutex lcd_mutex; /* LCD驱动多线程调用保护信号量 */ - lcd_bus_api *bus_api; /* 总线接口 */ - lcd_drv_common *common_api; /* LCD公共接口 */ - lcd_drv_private *private_api; /* LCD差异化接口 */ -} lcd_attr; - -lcd_attr g_lcd_info = {0}; -volatile bool g_idle_before_sleep = false; /* false: normal display, true: idle mode */ -static bool g_lcd_on_flag = false; - -bool lcd_get_status(void) -{ - return g_lcd_on_flag; -} - -void lcd_set_status(bool lcd_on) -{ - g_lcd_on_flag = lcd_on; -} - -static ext_errno lcd_lock_init(void) -{ - ext_errno ret; - if (g_lcd_info.lcd_mutex.mutex != NULL) { - return EXT_ERR_SUCCESS; - } - - ret = osal_mutex_init(&(g_lcd_info.lcd_mutex)); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.lcd_mutex.mutex = NULL; - return ret; - } - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return EXT_ERR_LCD_MUTEX_INIT_FAIL; - } - return EXT_ERR_SUCCESS; -} - -static void lcd_lock_deinit(void) -{ - if (g_lcd_info.lcd_mutex.mutex != NULL) { - osal_mutex_destroy(&(g_lcd_info.lcd_mutex)); - } - - g_lcd_info.lcd_mutex.mutex = NULL; -} - -static void lcd_lock(void) -{ - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return; - } - osal_mutex_lock(&(g_lcd_info.lcd_mutex)); -} - -static void lcd_unlock(void) -{ - if (g_lcd_info.lcd_mutex.mutex == NULL) { - return; - } - osal_mutex_unlock(&(g_lcd_info.lcd_mutex)); -} - -static void lcd_set_display_info(void) -{ - if (g_lcd_info.bus_api->bus_register_panel_info != NULL) { - g_lcd_info.bus_api->bus_register_panel_info(g_lcd_info.lcd_cfg->x_start, g_lcd_info.lcd_cfg->y_start, - g_lcd_info.lcd_cfg->fps); - } -} - -static ext_errno lcd_auto_adapt_init_prepare(void) -{ - ext_errno ret; - combo_dev_cfg_t *escape_config = lcd_get_bus_escape_config(); - - /* init with default parameter */ - ret = g_lcd_info.bus_api->bus_init(escape_config); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("default bus_init fail, ret = %X\r\n", ret); - return ret; - } - - ret = g_lcd_info.common_api->get_chip_id(&g_lcd_info.lcd_id); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("get_chip_id fail, ret = %X\r\n", ret); - } - - if (g_lcd_info.bus_api->bus_deinit() != EXT_ERR_SUCCESS) { - lcd_err("bus deinit fail\r\n"); - } - - return ret; -} - -static ext_errno lcd_assigned_id_check(void) -{ - if (g_lcd_info.common_api->chip_id_check == NULL) { - return EXT_ERR_LCD_INVALID_NULL_POINTER; - } - - return g_lcd_info.common_api->chip_id_check(); -} - -static ext_errno lcd_get_ops(void) -{ - ext_errno ret = 0; - g_lcd_info.bus_api = lcd_get_bus_api(); - g_lcd_info.common_api = lcd_drv_get_common_api(); - g_lcd_info.private_api = lcd_drv_get_private_api(); - - if (g_lcd_info.bus_api == NULL || g_lcd_info.common_api == NULL || g_lcd_info.private_api == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - - if (g_lcd_info.private_api->power_on == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - g_lcd_info.private_api->power_on(); - - if (!g_lcd_info.info_register) { - ret = lcd_auto_adapt_init_prepare(); - if (ret != EXT_ERR_SUCCESS) { - goto fail; - } - } - - g_lcd_info.lcd_cfg = g_lcd_info.common_api->get_lcd_config(); - if (g_lcd_info.lcd_cfg == NULL) { - lcd_err("lcd_cfg empty!\r\n"); - goto fail; - } - ret = g_lcd_info.bus_api->bus_init(g_lcd_info.lcd_cfg->bus_cfg); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_init fail, ret = %X\r\n", ret); - return ret; - } - - if (g_lcd_info.info_register) { - ret = lcd_assigned_id_check(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("chip id check error, ret = 0x%x\r\n", ret); - g_lcd_info.bus_api->bus_deinit(); - goto fail; - } - } - - if (g_lcd_info.brightness == 0) - g_lcd_info.brightness = DEFAULT_BRIGHTNESS; - - return EXT_ERR_SUCCESS; -fail: - - if (g_lcd_info.private_api->power_off != NULL) { - g_lcd_info.private_api->power_off(); - } - g_lcd_info.bus_api = NULL; - g_lcd_info.common_api = NULL; - g_lcd_info.private_api = NULL; - return ret; -} - -ext_lcd_status uapi_lcd_get_status(void) -{ - return g_lcd_info.status; -} - -bool uapi_is_lcd_connect(void) -{ - return g_lcd_info.is_inited; -} - -static ext_errno lcd_display_on(void) -{ - ext_errno ret; - uint32_t retry_count = 3; - lcd_lock(); - - for (; retry_count > 0; retry_count--) { - ret = g_lcd_info.common_api->display_on(g_lcd_info.brightness); - if (ret == EXT_ERR_SUCCESS) { - ret = g_lcd_info.bus_api->bus_enable(); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - - g_lcd_info.private_api->power_off(); - g_lcd_info.private_api->power_on(); - - g_lcd_info.bus_api->bus_deinit(); - ret = g_lcd_info.bus_api->bus_init(g_lcd_info.lcd_cfg->bus_cfg); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.private_api->power_off(); - continue; - } - } - if (retry_count > 0) { - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - g_lcd_info.status.te_status = LCD_TE_ON; - } - - lcd_unlock(); - - return ret; -} - -ext_errno uapi_lcd_display_on(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_NORMAL_DISPLAY) { - return EXT_ERR_SUCCESS; - } - - ret = lcd_display_on(); - - return ret; -} - -ext_errno uapi_lcd_display_off(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_DISPLAY_OFF) { - return EXT_ERR_SUCCESS; - } - - ret = g_lcd_info.common_api->display_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("display_off fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - - g_lcd_info.status.disp_status = LCD_DISPLAY_OFF; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_sleep_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_SLEEP_MODE) { - return EXT_ERR_SUCCESS; - } else if (g_lcd_info.status.disp_status == LCD_DISPLAY_OFF) { - return EXT_ERR_LCD_NOT_SUPPORT_OFF_TO_SLEEP; - } - - if (g_lcd_info.status.disp_status == LCD_IDLE_MODE) { - g_idle_before_sleep = true; - } else { - g_idle_before_sleep = false; - } - - ret = g_lcd_info.common_api->enter_sleep_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enter sleep mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - return ret; - } - g_lcd_info.status.disp_status = LCD_SLEEP_MODE; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_exit_sleep_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status != LCD_SLEEP_MODE) { - return EXT_ERR_LCD_NOT_IN_SLEEP_MODE; - } - - ret = g_lcd_info.common_api->exit_sleep_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("exit sleep mode fail, ret = %X\r\n", ret); - return ret; - } - - lcd_lock(); - ret = g_lcd_info.bus_api->bus_enable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enable bus fail when exit sleep, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - - if (g_idle_before_sleep) { - g_lcd_info.status.disp_status = LCD_IDLE_MODE; - } else { - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - } - - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_idle_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status == LCD_IDLE_MODE) { - return EXT_ERR_SUCCESS; - } - if (g_lcd_info.status.disp_status != LCD_NORMAL_DISPLAY) { - return EXT_ERR_LCD_NOT_SUPPORT_CUR_TO_IDLE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->enter_idle_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("enter_idle_mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.disp_status = LCD_IDLE_MODE; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_exit_idle_mode(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status != LCD_IDLE_MODE) { - return EXT_ERR_LCD_NOT_IN_IDLE_MODE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->exit_idle_mode(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("exit_idle_mode fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.disp_status = LCD_NORMAL_DISPLAY; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -static ext_errno lcd_te_param_check(void) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.screen_type == VIDEO_LCD) { - return EXT_ERR_LCD_VIDEO_SCREEN_NOT_SUPPORT_TE; - } - if (g_lcd_info.status.disp_status != LCD_NORMAL_DISPLAY && g_lcd_info.status.disp_status != LCD_IDLE_MODE) { - return EXT_ERR_LCD_INVALID_TE_ON_MODE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_te_on(void) -{ - ext_errno ret = lcd_te_param_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - if (g_lcd_info.status.te_status == LCD_TE_ON) { - return EXT_ERR_SUCCESS; - } - - lcd_lock(); - ret = g_lcd_info.common_api->te_on(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("te_on fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.te_status = LCD_TE_ON; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_te_off(void) -{ - ext_errno ret = lcd_te_param_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - if (g_lcd_info.status.te_status == LCD_TE_OFF) { - return EXT_ERR_SUCCESS; - } - - lcd_lock(); - ret = g_lcd_info.common_api->te_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("te_off fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.status.te_status = LCD_TE_OFF; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_set_brightness(uint16_t value) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status > LCD_IDLE_MODE) { - return EXT_ERR_LCD_IN_DISPLAY_OFF_STATE; - } - - lcd_lock(); - ret = g_lcd_info.common_api->set_brightness(value); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("set_brightness fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - g_lcd_info.brightness = (uint8_t)value; - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_get_brightness(uint16_t *value) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - *value = g_lcd_info.brightness; - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_write_reg(lcd_cmd_sequ *cmds, uint32_t cmd_count) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - - if (cmds == NULL || cmd_count == 0) { - return EXT_ERR_LCD_INVALID_WRITE_CMD; - } - lcd_lock(); - ret = g_lcd_info.common_api->write(cmds, cmd_count); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("write reg fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_read_reg(uint8_t cmd, uint8_t *buff, uint8_t buff_len) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - if (g_lcd_info.status.disp_status > LCD_SLEEP_MODE) { - return EXT_ERR_LCD_IN_DISPLAY_OFF_STATE; - } - if (buff == NULL || buff_len == 0) { - return EXT_ERR_LCD_INVALID_READ_CMD; - } - lcd_lock(); - ret = g_lcd_info.common_api->read(cmd, buff, buff_len); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("read reg fail, ret = %X\r\n", ret); - lcd_unlock(); - return ret; - } - lcd_unlock(); - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_init(void) -{ - if (g_lcd_info.is_inited) { - return EXT_ERR_SUCCESS; - } - - ext_errno ret = lcd_get_ops(); - if (ret != EXT_ERR_SUCCESS && ret != EXT_ERR_MIPI_ALREADY_INIT) { - lcd_err("lcd_get_ops fail, ret = %X\r\n", ret); - return ret; - } - - ret = lcd_lock_init(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("lcd_lock_init fail, ret = %X\r\n", ret); - return ret; - } - - lcd_set_display_info(); - - ret = lcd_display_on(); - if (ret != EXT_ERR_SUCCESS) { - g_lcd_info.bus_api->bus_deinit(); - lcd_lock_deinit(); - lcd_err("lcd_display_on fail, ret = %X\r\n", ret); - return ret; - } - - g_lcd_info.is_inited = true; - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_deinit(void) -{ - ext_errno ret; - if (!g_lcd_info.is_inited) { - return EXT_ERR_SUCCESS; - } - - if (g_lcd_info.status.disp_status != LCD_DISPLAY_OFF) { - ret = g_lcd_info.common_api->display_off(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("display_off fail, ret = %X\r\n", ret); - } - - ret = g_lcd_info.bus_api->bus_disable(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_disable fail, ret = %X\r\n", ret); - } - } - lcd_lock(); - ret = g_lcd_info.bus_api->bus_deinit(); - if (ret != EXT_ERR_SUCCESS) { - lcd_err("bus_deinit fail, ret = %X\r\n", ret); - } - g_lcd_info.private_api->power_off(); - - g_lcd_info.status.disp_status = LCD_DISPLAY_OFF; - g_lcd_info.is_inited = false; - lcd_unlock(); - - lcd_lock_deinit(); - - return EXT_ERR_SUCCESS; -} - -static ext_errno lcd_lp_ctrl_check(void) -{ - if (!g_lcd_info.is_inited) { - return EXT_ERR_LCD_NOT_INIT; - } - - if (g_lcd_info.bus_api == NULL) { - return EXT_ERR_LCD_GET_ATTR_FAIL; - } - - if (g_lcd_info.bus_api->bus_lp_ctrl == NULL) { - return EXT_ERR_LCD_NOT_SUPPORT_FUNC; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_enter_sdlp(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_ENTER_SDLP); -} - -ext_errno uapi_lcd_exit_sdlp(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_EXIT_SDLP); -} - -ext_errno uapi_lcd_exit_ulps(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_EXIT_ULPS); -} - -ext_errno uapi_lcd_clear_exit_ulps(void) -{ - ext_errno ret; - - ret = lcd_lp_ctrl_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return g_lcd_info.bus_api->bus_lp_ctrl(LP_CTRL_CLEAR_EXIT_ULPS); -} - -static void lcd_register_qspi_bus(void) -{ - lcd_bus_api qspi_bus_api = {0}; - - qspi_bus_api.bus_init = lcd_qspi_init; - qspi_bus_api.bus_deinit = lcd_qspi_deinit; - qspi_bus_api.bus_enable = lcd_qspi_enable; - qspi_bus_api.bus_disable = lcd_qspi_disable; - qspi_bus_api.bus_write_cmd = lcd_qspi_write_cmd; - qspi_bus_api.bus_read_cmd = lcd_qspi_read_cmd; - qspi_bus_api.bus_send_frame = lcd_qspi_send_frame; - qspi_bus_api.bus_suspend = lcd_qspi_suspend; - qspi_bus_api.bus_resume = lcd_qspi_resume; - qspi_bus_api.bus_register_te_isr = lcd_qspi_register_te_isr; - - lcd_bus_register_api(&qspi_bus_api, BUS_DISPLAY_QSPI); -} - -static void lcd_register_mipi_bus(void) -{ - lcd_bus_api mipi_bus_api = {0}; - - mipi_bus_api.bus_init = mipi_bus_init, - mipi_bus_api.bus_deinit = mipi_bus_deinit, - mipi_bus_api.bus_enable = mipi_bus_enable, - mipi_bus_api.bus_disable = mipi_bus_disable, - mipi_bus_api.bus_write_cmd = mipi_bus_write, - mipi_bus_api.bus_read_cmd = mipi_bus_read, - mipi_bus_api.bus_lp_ctrl = mipi_bus_lp_ctrl, - mipi_bus_api.bus_register_panel_info = mipi_bus_register_panel_info, - mipi_bus_api.bus_get_panel_timing = mipi_bus_get_panel_timing, - mipi_bus_api.bus_get_partial_display_cmd = mipi_bus_get_partial_display_cmd, - mipi_bus_api.bus_update_panel = mipi_bus_update_panel, - mipi_bus_api.bus_refresh_area = mipi_bus_refresh_area, - mipi_bus_api.bus_suspend = mipi_bus_suspend, - mipi_bus_api.bus_resume = mipi_bus_resume, - lcd_bus_register_api(&mipi_bus_api, BUS_DISPLAY_MIPI); -} - -static ext_errno lcd_info_check(const lcd_drv_cfg *info) -{ - if (info == NULL) { - return EXT_ERR_LCD_INVALID_NULL_POINTER; - } - - if ((info->bus_type != BUS_DISPLAY_MIPI) && (info->bus_type != BUS_DISPLAY_QSPI)) { - return EXT_ERR_LCD_INVALID_SCREEN_OPS; - } - - if (info->lcd_id == 0) { - return EXT_ERR_LCD_INVALID_CHIP_ID; - } - - if ((info->display_on_cmds == NULL) || (info->display_off_cmds == NULL)) { - return EXT_ERR_LCD_INVALID_WRITE_CMD; - } - - if (info->lcd_id_info.read_len == 0) { - return EXT_ERR_LCD_INVALID_READ_CMD; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno uapi_lcd_info_register(lcd_drv_cfg *info) -{ - ext_errno ret; - - ret = lcd_info_check(info); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - if (g_lcd_info.is_inited) { - return EXT_ERR_LCD_INIT_ALREADY; - } - - if (g_lcd_info.common_api == NULL) { - g_lcd_info.common_api = lcd_drv_get_common_api(); - } - - if (g_lcd_info.common_api->set_lcd_config == NULL) { - return EXT_ERR_LCD_NOT_SUPPORT_FUNC; - } - - ret = g_lcd_info.common_api->set_lcd_config(info); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - if (info->bus_type == BUS_DISPLAY_MIPI) { - lcd_register_mipi_bus(); - } else { - lcd_register_qspi_bus(); - } - - g_lcd_info.info_register = true; - - return EXT_ERR_SUCCESS; -} diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt deleted file mode 100644 index 6971096df..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt +++ /dev/null @@ -1,92 +0,0 @@ -#=============================================================================== -# @brief cmake file -# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. -#=============================================================================== -set(COMPONENT_NAME "touch") - -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/touch_screen_drv.c - ${CMAKE_CURRENT_SOURCE_DIR}/touch_screen_queue1.c -) - -if("TPTYPE_TMA525B" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch/tma525b_touch1.c -) -elseif("TPTYPE_ZTW523" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c -) -elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_touch1.c -) -else() -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c -) -endif() - -if("TPTYPE_TMA525B" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/tma525b_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -elseif("TPTYPE_ZTW523" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -else() -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include -) -endif() - -set(PRIVATE_HEADER -) - -set(PRIVATE_DEFINES -) - -set(PUBLIC_DEFINES -) - -# use this when you want to add ccflags like -include xxx -set(COMPONENT_PUBLIC_CCFLAGS -) - -set(COMPONENT_CCFLAGS - -Wno-incompatible-function-pointer-types - -Wno-unused-function -) - -set(WHOLE_LINK - true -) - -set(MAIN_COMPONENT - false -) - -build_component() - -install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*") diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c deleted file mode 100644 index f6a42fdb1..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.c +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "ft6x46_ctrl.h" -#include "securec.h" -#include "cmsis_os2.h" -#include "soc_osal.h" -#include "common_def.h" -#include "pinctrl.h" -#include "chip_io.h" -#include "tcxo.h" -#include "time.h" -#include "i2c.h" -#include "gpio.h" -#include "hal_gpio.h" -#include "hal_i2c.h" -#include "touch_screen_def.h" - -bool g_host_dev_init_flag = TD_FALSE; -ft6x46_ctrl_attr g_ctrl_attr; -touch_callback g_ft6x46_callback = NULL; - -static uint8_t g_tp_recv_buf[FT6X46_INPUT_SIZE] = {0}; - -static void ft6x46_gpio_isr_handle(pin_t pin, uintptr_t param) -{ - unused(pin); - unused(param); - if (g_ft6x46_callback != NULL) { - g_ft6x46_callback(); - } -} - -ext_errno ft6x46_register_handle(const ft6x46_ctrl_ops *peri_data, touch_callback func) -{ - unused(peri_data); - ext_errno ret; - - - //tp_err("ft6x46_register_handle*****************888888888"); - g_ft6x46_callback = func; - /* register int io interrupt handler */ - uapi_gpio_init(); - gpio_select_core(FT6X46_INT_GPIO, CORE); - uapi_gpio_set_dir(FT6X46_INT_GPIO, GPIO_DIRECTION_INPUT); - ret = uapi_gpio_register_isr_func(FT6X46_INT_GPIO, GPIO_INTERRUPT_FALLING_EDGE, ft6x46_gpio_isr_handle); - if (ret != 0) { - tp_err("ft6x46 int callback register fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_unregister_handle(const ft6x46_ctrl_ops *peri_data) -{ - unused(peri_data); - ext_errno ret; - - /* unregister interrupt handler */ - uapi_gpio_unregister_isr_func(FT6X46_INT_GPIO); - g_ft6x46_callback = NULL; - - return EXT_ERR_SUCCESS; -} - -static ext_errno tp_peripheral_init_status_check(void) -{ - if (g_host_dev_init_flag != TD_TRUE) { - return EXT_ERR_TP_DEV_INFO_NOT_REGISTER; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_ctrl_attr_check(const ft6x46_ctrl_attr *device_attr) -{ - unused(device_attr); - return EXT_ERR_SUCCESS; -} - -static ext_errno tp_i2c_rd_wr_param_check(const uint8_t *data_buf, uint32_t data_len) -{ - unused(data_buf); - unused(data_len); - ext_errno ret = tp_peripheral_init_status_check(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data read param invalid! ret=0x%x", ret); - return ret; - } - - if (memset_s(g_tp_recv_buf, data_len, 0, data_len) != EOK) { - tp_err("tp read buff set fail! ret=0x%x", ret); - return EXT_ERR_FAILURE; - } - - data.send_buf = ®_addr; - data.send_len = FT6X46_CMD_SEND_LEN; - data.receive_buf = g_tp_recv_buf; - data.receive_len = data_len; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_writeread(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data read fail! ret=0x%x", ret); - return ret; - } - ret = (uint32_t)memcpy_s(data_buf, data_len, g_tp_recv_buf, data_len); - if (ret != EOK) { - tp_err("tp data buf content copy fail! ret=0x%x", ret); - return ret; - } - return EXT_ERR_SUCCESS; -} - - -ext_errno tp_ft6x46_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_REG_BYTE_LEN]; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data read param invalid! ret=0x%x", ret); - return ret; - } - - memset_s(data_buf, data_len, 0, data_len); - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = reg_addr & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (reg_addr >> OFFSET_8_BITS) & 0xff; - - data.send_buf = ®_addr; - data.send_len = sizeof(reg_addr); - data.receive_buf = data_buf; - data.receive_len = data_len; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_writeread(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data read fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_cmd_write(uint8_t cmd) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_CMD_SEND_LEN]; - - ret = tp_peripheral_init_status_check(); - if (ret != 0) { - tp_err("host peripheral not init! ret=0x%x", ret); - return ret; - } - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = cmd & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (cmd >> OFFSET_8_BITS) & 0xff; - - data.send_buf = &cmd; - data.send_len = FT6X46_CMD_SEND_LEN; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno tp_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - uint8_t *write_data = NULL; - uint16_t send_len; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data write param invalid! ret=0x%x", ret); - return ret; - } - - send_len = data_len + sizeof(uint8_t); - - write_data = (uint8_t *)osal_kmalloc(send_len, OSAL_GFP_KERNEL); - if (write_data == NULL) { - tp_err("tp send buff malloc fail!"); - return EXT_ERR_MALLOC_FAILURE; - } - - write_data[FT6X46_I2C_SEND_INDEX0] = reg_addr; - ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); - if (ret != EOK) { - tp_err("tp send_buf content copy fail! ret=0x%x", ret); - osal_kfree(write_data); - return ret; - } - - data.send_buf = write_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - osal_kfree(write_data); - return ret; - } - - osal_kfree(write_data); - return EXT_ERR_SUCCESS; -} - -ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len) -{ - errcode_t ret; - uint32_t retry; - i2c_data_t data; - uint8_t *write_data = NULL; - uint16_t send_len; - - ret = tp_i2c_rd_wr_param_check(data_buf, data_len); - if (ret != 0) { - tp_err("tp data write param invalid! ret=0x%x", ret); - return ret; - } - - send_len = data_len + sizeof(uint8_t); - - write_data = (uint8_t *)osal_kmalloc(send_len, OSAL_GFP_KERNEL); - if (write_data == NULL) { - tp_err("tp send buff malloc fail!"); - return EXT_ERR_MALLOC_FAILURE; - } - - write_data[FT6X46_I2C_SEND_INDEX0] = reg_addr; - ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); - if (ret != EOK) { - tp_err("tp send_buf content copy fail! ret=0x%x", ret); - osal_kfree(write_data); - return ret; - } - - data.send_buf = write_data; - data.send_len = send_len; - data.receive_buf = NULL; - data.receive_len = 0; - - for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { - ret = uapi_i2c_master_write(FT6X46_I2C_BUS, FT6X46_I2C_ADDR, &data); - if (ret == EXT_ERR_SUCCESS) { - break; - } - } - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp data write fail! ret=0x%x", ret); - osal_kfree(write_data); - return ret; - } - - osal_kfree(write_data); - return EXT_ERR_SUCCESS; -} - -ext_errno tp_ft6x46_i2c_data_write_reg(uint8_t addr, uint8_t val) -{ - return tp_ft6x46_i2c_data_write(addr, &val, 1); -} - - -ext_errno ft6x46_host_peripheral_init(ft6x46_ctrl_attr *attr) -{ - ext_errno ret; - - if (attr == NULL) { - tp_err("ft6x46 communication interface cfg is empty!"); - return EXT_ERR_FAILURE; - } - ret = ft6x46_ctrl_attr_check(attr); - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp invalid dev attr! ret=0x%x", ret); - return ret; - } - - ret = (ext_errno)memcpy_s(&(g_ctrl_attr), sizeof(ft6x46_ctrl_attr), attr, sizeof(ft6x46_ctrl_attr)); - if (ret != EOK) { - tp_err("tp attr content copy fail! ret=0x%x", ret); - return ret; - } - - /* init i2c */ - errcode_t result; - result = uapi_i2c_master_init(FT6X46_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ - if (result != EXT_ERR_SUCCESS) { - tp_err("tp i2c init fail! ret=0x%x", result); - return EXT_ERR_SUCCESS; - } - - tp_print("TOUCH:i2c_id = %d i2c_speed = %d slave_addr = 0x%x \r\n", - g_ctrl_attr.i2c_id, g_ctrl_attr.i2c_speed, FT6X46_I2C_ADDR); - g_host_dev_init_flag = true; - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_host_init_sample(void) -{ - ext_errno ret; - PRINT("**********ft6x46_host_init_sample**********\r\n"); - ret = ft6x46_host_peripheral_init(&g_ctrl_attr); - ret = ft6x46_init(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("tp host init fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_reset(void) -{ - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_OUTPUT); - /* Config Gpio For Reset Pin */ - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* reset high delay 20ms */ - osDelay(20); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_LOW); - /* reset low delay 100ms */ - osDelay(100); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* reset high delay 200ms */ - osDelay(200); - return EXT_ERR_SUCCESS; -} - -void ft6x46_resume_reset(void) -{ - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_OUTPUT); - /* drvdata is global variable point and no need to handle null */ - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - osDelay(1); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_LOW); - /* delay 10ms */ - osDelay(10); - uapi_gpio_set_val(FT6X46_RESET_GPIO, GPIO_LEVEL_HIGH); - /* delay 100ms */ - osDelay(200); - uapi_gpio_set_dir(FT6X46_RESET_GPIO, GPIO_DIRECTION_INPUT); -} - diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h deleted file mode 100644 index 24ef8f419..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_ctrl.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#ifndef FT6X46_CTRL_H -#define FT6X46_CTRL_H - -#include "stdio.h" -#include "debug_print.h" -#include "stdint.h" -#include "product.h" -#include "td_base.h" -#include "platform_core.h" -#include "ft6x46_touch1.h" - -/* host peripheral definitions */ - -//#define FT6X46_I2C_ADDR 0x20 -#define FT6X46_I2C_ADDR 0x38 -#define FT6X46_I2C_SPEED I2C_SPEED_MODE_SS -#define FT6X46_REG_BYTE_LEN 2 -#define OFFSET_8_BITS 8 -#define FT6X46_REG_WRITE_LEN 4 - -#define FT6X46_CMD_SEND_LEN 2 -// #define FT6X46_CMD_SEND_LEN 1 - -#define FT6X46_REG_DATA_LEN 2 -#define FT6X46_I2C_TIME_MAX 3 -#define FT6X46_INPUT_SIZE 156 - -#define FT6X46_I2C_SEND_INDEX0 0 -#define FT6X46_I2C_SEND_INDEX1 1 -#define FT6X46_I2C_SEND_INDEX2 2 -#define FT6X46_I2C_SEND_INDEX3 3 - - -#define FTS_REG_POWER_MODE 0xA5 - - -typedef struct { - uint32_t int_gpio; - uint32_t reset_gpio; - i2c_bus_t i2c_id; - uint32_t i2c_speed; -} ft6x46_ctrl_attr; - -typedef ext_errno (*ft6x46_bus_init)(ft6x46_ctrl_attr *attr); - -typedef struct { - ft6x46_ctrl_attr attr; - ft6x46_bus_init bus_init; -} ft6x46_ctrl_ops; - -ext_errno ft6x46_host_peripheral_init(ft6x46_ctrl_attr *attr); -ext_errno ft6x46_register_handle(const ft6x46_ctrl_ops *peri_data, touch_callback func); -ext_errno ft6x46_unregister_handle(const ft6x46_ctrl_ops *peri_data); -ext_errno ft6x46_reset(void); -void ft6x46_resume_reset(void); -void ft6x46_delay(uint32_t ms); - -ext_errno tp_ft6x46_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_len); -ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len); -ext_errno tp_ft6x46_i2c_data_write_reg(uint8_t addr, uint8_t val); - -#endif diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c deleted file mode 100644 index 928c58eac..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "ft6x46_drv1.h" -#include "touch_screen_def.h" -#include "ft6x46_ctrl.h" -#include "i2c.h" -#include "debug_print.h" -#include "hal_i2c.h" - -static ext_errno ft6x46_drv_init(ft6x46_ctrl_ops *config) -{ - ext_errno ret; - ft6x46_ctrl_ops *ops = config; - - tp_err("ft6x46_drv_init!11111"); - - if (ops == NULL) { - tp_err("peripheral ops is empty!"); - return EXT_ERR_FAILURE; - } - - if (ops->bus_init == NULL) { - tp_err("peripheral bus_init func is empty!"); - return EXT_ERR_FAILURE; - } - - ret = ops->bus_init(&(ops->attr)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("ZTW523 bus_init fail! ret = 0x%x", ret); - return ret; - } - - ret = ft6x46_init(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("ZTW523 init fail! ret = 0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_deinit(void) -{ - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_get_info(uint8_t *data, uint8_t data_len) -{ - return ft6x46_irq_callback(data, data_len); -} - -static ext_errno ft6x46_drv_suspend(void) -{ - //return ft6x46_set_power_mode(MC_TP_SUSPEND_SCAN); - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_resume(void) -{ - //return ft6x46_set_power_mode(MC_TP_RESUME_SCAN); - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_drv_sleep(void) -{ - //return ft6x46_set_power_mode(MC_TP_SLEEP_WORK_MODE); - return EXT_ERR_SUCCESS; -} - -touch_peripheral_api g_ft6x46_api = { - .touch_init = ft6x46_drv_init, - .touch_deinit = ft6x46_drv_deinit, - .touch_get_tpinfo = ft6x46_drv_get_info, - .touch_suspend = ft6x46_drv_suspend, - .touch_resume = ft6x46_drv_resume, - .touch_sleep = ft6x46_drv_sleep, - .touch_bus_init = ft6x46_host_peripheral_init, - .register_callback = ft6x46_register_handle, - .unregister_callback = ft6x46_unregister_handle, -}; - -ft6x46_ctrl_ops g_ft6x46_ctrl = { - .attr = { - .int_gpio = FT6X46_INT_GPIO, - .i2c_id = FT6X46_I2C_BUS, - .i2c_speed = I2C_SPEED_MODE_SS, - }, - .bus_init = (ft6x46_bus_init)ft6x46_host_peripheral_init, -}; - -void *touch_screen_get_api(void) -{ - return ((void *)&g_ft6x46_api); -} - -void *touch_screen_get_peri_attr(void) -{ - return ((void *)&g_ft6x46_ctrl); -} \ No newline at end of file diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h deleted file mode 100644 index c26f3a4f0..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_drv1.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#ifndef FT6X46_DRV1_H -#define FT6X46_DRV1_H - -void *touch_screen_get_api(void); -void *touch_screen_get_peri_attr(void); - -#endif \ No newline at end of file diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c deleted file mode 100644 index 85f2db5a9..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.c +++ /dev/null @@ -1,977 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ft6x46 touch driver. - * Author: @CompanyNameTag - * Create: 2021-05-29 - */ - -#include "ft6x46_touch1.h" -#include "time.h" -#include "soc_osal.h" -#include "osal_timer.h" -#include "osal_mutex.h" -#include "securec.h" -#include "ft6x46_ctrl.h" -#include "tcxo.h" -#include "cmsis_os2.h" -#include "common_def.h" - -#ifdef __cplusplus -#if __cplusplus -extern "C" { -#endif -#endif - -ft6x46_drv_data g_ft6x46_drv = { - .chip_status = FT6X46_NOT_READY, - .ops_mux = {0}, - .int_mask = FT6X46_INT_MASK, - .work_status = FT6X46_WORK_INVALID, - .fw_upgrade_flag = TD_FALSE, - .gesture_wakeup = TD_FALSE, - .host_dev_init_flag = TD_FALSE, - .chip_info = FT6X46_DEVICE_INFO, - .p_void = NULL, -}; -static ext_errno ft6x46_config(void); -static void ft6x46_set_irq_mode(ft6x46_irq_status irq_status, uint16_t irq_mask) -{ - unused(irq_mask); - ext_errno ret; - uint16_t reg_write = 0; - - tp_print("TOUCH:set irq mode %d", irq_status); - - switch (irq_status) { - case FT6X46_IRQ_DISABLE: - /* Write Int Register */ - reg_write = FT6X46_INT_NONE; - // ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:set irq mode disable 0x%x", ret); - // return; - // } - break; - - case FT6X46_IRQ_ENABLE: - /* Write Int Register */ - reg_write = FT6X46_INT_MASK; - // ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:set irq mode enable 0x%x", ret); - // return; - // } - break; - - default: - tp_err("TOUCH:not support irq mode 0x%x", irq_status); - break; - } - - return; -} - -static ext_errno ft6x46_parse_gesture_input(void) -{ - ext_errno ret; - uint16_t gesture_val; - uint16_t reg_read; - uint16_t reg_write; - - reg_read = 0; - // ret = tp_i2c_data_read(FT6X46_GESTURE_WAKEUP_REG, (uint8_t *)®_read, FT6X46_DATA_LEN); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:parse gesture input read fail 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - gesture_val = reg_read; - tp_print("TOUCH:parse gesture input ok 0x%x", reg_read); - - reg_write = 0; - // ret = tp_i2c_reg_write(FT6X46_GESTURE_WAKEUP_REG, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:parse gesture input write fail 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - - switch (gesture_val) { - case FT6X46_GESTURE_SIGNAL_CLICK: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SHORT_CLICK; - break; - case FT6X46_GESTURE_DOUBLE_CLICK: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_DOUBLE_CLICK; - break; - case FT6X46_GESTURE_SLIDE_UP: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SLIDE_UP; - break; - case FT6X46_GESTURE_SLIDE_DOWN: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_SLIDE_DOWN; - break; - default: - tp_err("TOUCH:gesture %d not Support", gesture_val); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_parse_touch_input(void) -{ - static uint8_t touch_input[FT6X46_TOUCHINFO_LEN] = { 0 }; - uint16_t touch_status; - uint16_t x_axis; - uint16_t y_axis; - uint8_t sub_status; - - ext_errno ret = tp_i2c_data_read(FT6X46_POINT_STATUS_REG, touch_input, FT6X46_TOUCHINFO_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:touch input read error! ret = 0x%x", ret); - return EXT_ERR_FAILURE; - } - touch_status = ((uint16_t)touch_input[FT6X46_STATUSH_OFFSET] << FT6X46_REGDATA_SHIFT) | - (touch_input[FT6X46_STATUSL_OFFSET]); - if ((touch_status & FT6X46_PALM_MASK) != 0) { - g_ft6x46_drv.touch_msg.tp_event = MC_TP_COVER; - return EXT_ERR_SUCCESS; - } - - if (touch_status != 0) { - sub_status = touch_input[FT6X46_SUBSTATUS_OFFSET] & FT6X46_TOUCHINFO_MASK; - x_axis = ((uint16_t)touch_input[FT6X46_XH_OFFSET] << FT6X46_REGDATA_SHIFT) | (touch_input[FT6X46_XL_OFFSET]); - y_axis = ((uint16_t)touch_input[FT6X46_YH_OFFSET] << FT6X46_REGDATA_SHIFT) | (touch_input[FT6X46_YL_OFFSET]); - - switch (sub_status) { - case FT6X46_TOUCH_DOWN: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_PRESS; - break; - /* Need To Modify For UI */ - case FT6X46_TOUCH_EXIST: - case FT6X46_TOUCH_MOVE: - case FT6X46_TOUCH_NONE: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_MOVE; - break; - case FT6X46_TOUCH_UP: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_RELEASE; - break; - - default: - tp_err("TOUCH:parse input wrong status|substatus 0x%08x", - ((uint32_t)touch_status << FT6X46_SHIFT_16_BIT) | (uint32_t)sub_status); - return EXT_ERR_FAILURE; - } - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0] = x_axis; - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0] = y_axis; - g_ft6x46_drv.touch_msg.tv_usec = (uint32_t)uapi_tcxo_get_ms(); - } else { - g_ft6x46_drv.touch_msg.tp_event = MC_TP_INVALID; - tp_print("TOUCH:parse wrong touchstatus %d", touch_status); - return EXT_ERR_SUCCESS; - } - - return EXT_ERR_SUCCESS; -} - - -/*Max point numbers of gesture trace*/ -#define MAX_POINTS_GESTURE_TRACE 6 -/*Length of gesture information*/ -#define MAX_LEN_GESTURE_INFO (MAX_POINTS_GESTURE_TRACE * 4 + 2) - -/*Max point numbers of touch trace*/ -#define MAX_POINTS_TOUCH_TRACE 1 -/*Length of touch information*/ -#define MAX_LEN_TOUCH_INFO (MAX_POINTS_TOUCH_TRACE * 6 + 2) - -/*Max touch points that touch controller supports*/ -#define FTS_MAX_POINTS_SUPPORT 10 - -struct fts_ts_event { - int x; /*x coordinate */ - int y; /*y coordinate */ - int p; /* pressure */ - int type; /* touch event flag: 0 -- down; 1-- up; 2 -- contact */ - int id; /*touch ID */ - int area; /*touch area*/ -}; - -static ext_errno fts_touch_process(void) -{ - ext_errno ret; - uint8_t i = 0; - uint8_t base = 0; - uint8_t regaddr = 0x01; - uint8_t buf[MAX_LEN_TOUCH_INFO];/*A maximum of two points are supported*/ - uint8_t point_num = 0; - uint8_t touch_event_nums = 0; - uint8_t point_id = 0; - struct fts_ts_event events[FTS_MAX_POINTS_SUPPORT]; /* multi-touch */ - - - /*read touch information from reg0x01*/ - ret = tp_ft6x46_i2c_data_read(regaddr, buf, MAX_LEN_TOUCH_INFO); - if (ret != EXT_ERR_SUCCESS) { - tp_err("Read touch information from reg0x01 fails"); - return ret; - } - - /*print touch buffer, for debug usage*/ - //log_touch_buf(buf, MAX_LEN_TOUCH_INFO); - - //if ((buf[1] == 0xFF) && (buf[2] == 0xFF) && (buf[3] == 0xFF)) { - // tp_err("FW initialization, need recovery"); - // if (fts_data->gesture_support && fts_data->suspended) - // fts_write_reg(FTS_REG_GESTURE_EN, FTS_REG_GESTURE_ENABLE); - //} - - /*parse touch information based on register map*/ - memset(events, 0xFF, sizeof(struct fts_ts_event) * FTS_MAX_POINTS_SUPPORT); - point_num = buf[1] & 0x0F; - if (point_num > FTS_MAX_POINTS_SUPPORT) { - tp_err("invalid point_num(%d)", point_num); - return EXT_ERR_FAILURE; - } - - for (i = 0; i < MAX_POINTS_TOUCH_TRACE; i++) { - base = 2 + i * 6; - point_id = buf[base + 2] >> 4; - if (point_id >= MAX_POINTS_TOUCH_TRACE) { - tp_err("abnormal touch data point_id %d\r\n",point_id); - break; - } - - events[i].x = ((buf[base] & 0x0F) << 8) + buf[base + 1]; - events[i].y = ((buf[base + 2] & 0x0F) << 8) + buf[base + 3]; - events[i].id = point_id; - events[i].type = (buf[base] >> 6) & 0x03; - events[i].p = buf[base + 4]; - events[i].area = buf[base + 5]; - if (((events[i].type == 0) || (events[i].type == 2)) & (point_num == 0)) { - tp_err("abnormal touch data from fw"); - return EXT_ERR_FAILURE; - } - - touch_event_nums++; - } - - if (touch_event_nums == 0) { - tp_err("no touch point information(%02x)", buf[1]); - return EXT_ERR_FAILURE; - } - - /*print touch information*/ - //log_touch_info(events, touch_event_nums); - - /*Now you have get the touch information, you can report anything(X/Y coordinates...) you want to system*/ - /*TODO...(report touch information to system)*/ - /*Below sample code is a pseudo code*/ - - for (i = 0; i < touch_event_nums; i++) { - #if 0 - if ((events[i].type == 0) || (events[i].type == 2)) { - /* The event of point(point id is events[i].id) is down event, the finger of this id stands for is - * pressing on the screen.*/ - /*TODO...(down event)*/ - } else { - /*TODO...(up event)*/ - } - #endif - switch (events[i].type) { - case 0: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_PRESS; - break; - /* Need To Modify For UI */ - case 2: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_MOVE; - break; - case 1: - g_ft6x46_drv.touch_msg.tp_event = MC_TP_RELEASE; - break; - - default: - tp_err("TOUCH:parse input wrong status|substatus"); - return EXT_ERR_FAILURE; - } - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0] = events[i].x; - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0] = events[i].y; - g_ft6x46_drv.touch_msg.tv_usec = (uint32_t)uapi_tcxo_get_ms(); - tp_print("event %d, x %d, y %d, time %d", - g_ft6x46_drv.touch_msg.tp_event, - g_ft6x46_drv.touch_msg.tp_event_info.x_axis[0], - g_ft6x46_drv.touch_msg.tp_event_info.y_axis[0], - g_ft6x46_drv.touch_msg.tv_usec); - } - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_parse_input(void) -{ - ext_errno ret = EXT_ERR_FAILURE; - uint16_t reg_write; - - if (g_ft6x46_drv.gesture_wakeup == TD_TRUE) { - ret = ft6x46_parse_gesture_input(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse gesture input fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } else { - ret = ft6x46_parse_touch_input(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse touch input fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } - /* clear int */ - reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:parse input clear int fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len) -{ - unused(data_len); - g_ft6x46_drv.touch_msg.tp_event = MC_TP_INVALID; - - int32_t mem_ret; - - fts_touch_process(); - - - mem_ret = memcpy_s(data_buf, sizeof(input_event_info), &(g_ft6x46_drv.touch_msg), sizeof(input_event_info)); - if (mem_ret != EOK) { - tp_err("TOUCH:mem cpy error, ret = 0x%x", mem_ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -/* chip id */ -#define FTS_CHIP_IDH 0x64 -#define FTS_CHIP_IDL 0x56 - - -#define FTS_CMD_READ_ID 0x90 - -/* register address */ -#define FTS_REG_CHIP_ID 0xA3 -#define FTS_REG_CHIP_ID2 0x9F - -#define FTS_CMD_START_DELAY 12 - - -static ext_errno ft6x46_power_sequence(void) -{ - ext_errno ret; - uint8_t chip_id[2] = { 0 }; - - /*delay 200ms,wait fw*/ - osDelay(FT6X46_GENERAL_DELAY_200); - - /*get chip id*/ - ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1); - if (ret != EXT_ERR_SUCCESS) { - tp_err("222222222get ic information, error1"); - return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID; - } - ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1); - if (ret != EXT_ERR_SUCCESS) { - tp_err("3333333get ic information, error2"); - return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID; - } - // tp_print("11111111111111get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]); - if ((FTS_CHIP_IDH == chip_id[0]) && (FTS_CHIP_IDL == chip_id[1])) { - tp_warning("get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]); - return EXT_ERR_SUCCESS; - } - - // tp_err("fw is invalid, need read boot id"); - ret = tp_ft6x46_i2c_data_write_reg(0x55, 0xAA); - if (ret != EXT_ERR_SUCCESS) { - tp_err("start cmd write fail"); - return ret; - } - - osDelay(FTS_CMD_START_DELAY); - ret = tp_ft6x46_i2c_data_read(FTS_CMD_READ_ID, chip_id, 2); - if((ret == EXT_ERR_SUCCESS) && ((FTS_CHIP_IDH == chip_id[0]) && (FTS_CHIP_IDL == chip_id[1]))) { - tp_err("get ic information, boot id = 0x%02x%02x", chip_id[0], chip_id[1]); - ret = EXT_ERR_SUCCESS; - } else { - tp_err("read boot id fail,read:0x%02x%02x", chip_id[0], chip_id[1]); - return EXT_ERR_FAILURE; - } - return ret; - -} - -static void ft6x46_clear_interrupt(uint8_t retry_times, uint16_t delay) -{ - uint16_t reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - ext_errno ret; - uint8_t times; - for (times = 1; times <= retry_times; times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - return; - } - osDelay(delay); - } - - if (times > retry_times) { - tp_warning("TOUCH:Clear Int Cmd1! ret = 0x%x", ret); - } -} - -static ext_errno ft6x46_reg_config(void) -{ - ext_errno ret; - // uint16_t reg_write; - - // /* Initial Touch Mode */ - // reg_write = FT6X46_POINT_MODE; -// ret = tp_i2c_reg_write(FT6X46_INITIAL_TOUCH_MODE, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_INIT_TOUCHMODE; -// } - -// ret = tp_i2c_reg_write(FT6X46_TOUCH_MODE, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_TOUCHMODE; -// } - -// /* Set Finger Num */ -// reg_write = FT6X46_MAX_SUPPORTED_FINGER_NUM; -// ret = tp_i2c_reg_write(FT6X46_SUPPORTED_FINGER_NUM, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_FINGER_NUM; -// } - -// /* Set X Resolution */ -// reg_write = FT6X46_RES_MAX_X; -// ret = tp_i2c_reg_write(FT6X46_X_RESOLUTION, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_XRES; -// } - -// /* Set Y Resolution */ -// reg_write = FT6X46_RES_MAX_Y; -// ret = tp_i2c_reg_write(FT6X46_Y_RESOLUTION, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_YRES; -// } - -// /* Set Lock Point Range */ -// ret = tp_i2c_reg_write(FT6X46_HOLD_POINT_TRESHHOLD, FT6X46_POINT_TRESHHOLD); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_YRES; -// } - -// /* Write Calib Cmd */ -// reg_write = FT6X46_CALIBRATE_CMD; -// ret = tp_i2c_cmd_write(reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_CALIBCMD; -// } - -// /* Write Int Register */ -// reg_write = FT6X46_INT_MASK; -// ret = tp_i2c_reg_write(FT6X46_INT_ENABLE_FLAG, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_INTMASK; -// } -// #ifdef FT6X46_GESTURE_WAKEUP -// /* Write Gesture Register */ -// reg_write = FT6X46_GESTURE_WAKEUP_INIT; -// ret = tp_i2c_reg_write(FT6X46_GESTURE_WAKEUP_REG, reg_write); -// if (ret != EXT_ERR_SUCCESS) { -// return EXT_ERR_TP_ZTW523_CONFIG_WRITE_GESWAKEUP; -// } -// #endif - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_configuration(void) -{ - ext_errno ret; - uint8_t retry_times = 0; - uint16_t reg_read; - uint16_t reg_write; - - /* Software Reset */ - reg_write = FT6X46_SWRESET_CMD; - for (retry_times = 0; retry_times < FT6X46_RETRY_TIMES; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - osDelay(FT6X46_RESETHIGH_DELAY); - } - - if (retry_times >= FT6X46_RETRY_TIMES) { - tp_err("TOUCH:configuration sw reset fail! ret = 0x%x", ret); - return EXT_ERR_TP_ZTW523_CONFIG_RESET; - } - - /* Read Firmware Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_FIRMWARE_VERSION, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_FWVERSION; - } - g_ft6x46_drv.firmware_version = reg_read; - - /* Read Minor Firmware Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_MINOR_FW_VERSION, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_FWMINORVERSION; - } - g_ft6x46_drv.minor_firmware_version = reg_read; - - /* Read Hw ID */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_HW_ID, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("configuration error (read hw id) 0x%x", ret); - return EXT_ERR_TP_ZTW523_GET_HWID_READ_ID; - } - g_ft6x46_drv.chip_hw_id = reg_read; - - /* Read Register Version */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_DATA_VERSION_REG, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_TP_ZTW523_CONFIG_READ_DATAREG; - } - g_ft6x46_drv.reg_version = reg_read; - - ret = ft6x46_reg_config(); - if (ret != EXT_ERR_SUCCESS) { - return ret; - } - - /* Write Clear Int Cmd */ - ft6x46_clear_interrupt(FT6X46_RETRY_TIMES, FT6X46_GENERAL_DELAY_1); - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_get_panel_info(void) -{ - ext_errno ret; - uint16_t reg_read = 0; - /* Read X Channel Num */ - ret = tp_i2c_data_read(FT6X46_TOTAL_NUMBER_OF_X, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:GetPanelInfo error read x channel 0x%x", ret); - return EXT_ERR_FAILURE; - } - - g_ft6x46_drv.panel_info.xchannel_num = reg_read; - /* Read Y Channel Num */ - reg_read = 0; - ret = tp_i2c_data_read(FT6X46_TOTAL_NUMBER_OF_Y, (uint8_t *)®_read, FT6X46_DATA_LEN); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:GetPanelInfo error read y channel 0x%x", ret); - return EXT_ERR_FAILURE; - } - - g_ft6x46_drv.panel_info.ychannel_num = reg_read; - g_ft6x46_drv.panel_info.total_dnd_num = - g_ft6x46_drv.panel_info.xchannel_num * g_ft6x46_drv.panel_info.ychannel_num; - g_ft6x46_drv.panel_info.total_self_dnd_num = - g_ft6x46_drv.panel_info.xchannel_num + g_ft6x46_drv.panel_info.ychannel_num; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_standby(void) -{ - ext_errno ret; - uint16_t reg_write; - uint8_t retry_times; - - if ((g_ft6x46_drv.work_status == FT6X46_WORK_STANDBY) || (g_ft6x46_drv.work_status == FT6X46_WORK_SLEEP)) { - tp_print("alread standby or sleep"); - return EXT_ERR_SUCCESS; - } - /* Disabel Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_DISABLE, FT6X46_INT_NONE); - - reg_write = FT6X46_POWER_CTL_BEGIN; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - tp_err("standby failed 0x%x", ret); - return EXT_ERR_FAILURE; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - /* Send Clear Int Cmd */ - reg_write = FT6X46_CLEAR_INT_STATUS_CMD; - for (retry_times = 0; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - } - - /* Send Idle Cmd */ - reg_write = FT6X46_IDLE_CMD; - for (retry_times = 0; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - ret = tp_i2c_cmd_write(reg_write); - if (ret == EXT_ERR_SUCCESS) { - break; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - } - - reg_write = FT6X46_POWER_CTL_END; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - tp_err("standby failed 0x%x", ret); - return EXT_ERR_FAILURE; - } - /* delay 10 ms */ - osDelay(FT6X46_GENERAL_DELAY_10); - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - g_ft6x46_drv.work_status = FT6X46_WORK_STANDBY; - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_suspend(void) -{ - ext_errno ret; - // uint16_t reg_write; - // uint8_t retry_times = 0; - - if (g_ft6x46_drv.work_status == FT6X46_WORK_SLEEP) { - tp_print("TOUCH:alread suspend"); - return EXT_ERR_SUCCESS; - } - /*Host writes 0x03 to register address 0xA5 to enter into sleep mode.*/ - ret = tp_ft6x46_i2c_data_write_reg(FTS_REG_POWER_MODE, 0x03); - if(ret != 0) { - tp_err("ft6x46_suspend enter sleep mode fails.ret:0x%X",ret); - return EXT_ERR_FAILURE; - } else { - tp_warning("ft6x46_suspend enter sleep mode success."); - } - - ft6x46_set_irq_mode(FT6X46_IRQ_DISABLE, FT6X46_INT_MASK); - g_ft6x46_drv.work_status = FT6X46_WORK_SLEEP; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_resume_post(void) -{ - ext_errno ret; - // uint16_t reg_write; - // uint16_t cmd_write; - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_CMD_ENABLE, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg cmd failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - // /* delay for ms */ - // osDelay(FT6X46_GENERAL_DELAY_1); - - // cmd_write = FT6X46_REG_INTN_CLEAR; - // ret = tp_i2c_cmd_write(cmd_write); - // if (ret != EXT_ERR_SUCCESS) { - // return EXT_ERR_TP_ZTW523_POWERUP_INTN_CLEAR; - // } - // osDelay(FT6X46_GENERAL_DELAY_1); - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_NVM, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg nvm failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - // osDelay(FT6X46_GENERAL_DELAY_1); - - // reg_write = FT6X46_ENABLE; - // ret = tp_i2c_reg_write(FT6X46_REG_PROGRAM_START, reg_write); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume post reg program start failed 0x%x", ret); - // return EXT_ERR_FAILURE; - // } - - // osDelay(FT6X46_GENERAL_DELAY_50); /* delay 50 ms */ - - return EXT_ERR_SUCCESS; -} -ext_errno ft6x46_resume(void) -{ - ext_errno ret; - uint8_t retry_times = 0; - - g_ft6x46_drv.work_status = FT6X46_WORK_RESUME; - - ft6x46_resume_reset(); - - // for (; retry_times < FT6X46_INIT_RETRY_TIMERS; retry_times++) { - // ret = ft6x46_resume_post(); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("resume: post err %d", ret); - // /* retry delay 200ms */ - // osDelay(FT6X46_GENERAL_DELAY_200); - // } else { - // break; - // } - // } - - // if (retry_times == FT6X46_INIT_RETRY_TIMERS) { - // tp_err("resume: overtimes %d", retry_times); - // goto resume_exit; - // } - ret = ft6x46_config(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init fail 0x%x", ret); - goto resume_exit; - } - // ret = ft6x46_configuration(); - // if (ret != EXT_ERR_SUCCESS) { - // tp_err("TOUCH:resume config fail 0x%x", ret); - // return EXT_ERR_TP_ZTW523_INIT_CONFIG; - // } - - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - /* Enable Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - - return EXT_ERR_SUCCESS; - -resume_exit: - - /* Enable Irq */ - ft6x46_set_irq_mode(FT6X46_IRQ_DISABLE, FT6X46_INT_MASK); - - tp_err("resume failed 0x%x", ret); - - return EXT_ERR_FAILURE; -} - -ext_errno ft6x46_get_power_mode(uint32_t *power_mode) -{ - if (power_mode == NULL) { - return EXT_ERR_FAILURE; - } - - *power_mode = (uint32_t)(g_ft6x46_drv.work_status); - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_standby_mode(void) -{ - ext_errno ret; - - ret = ft6x46_standby(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 set standby 0x%x", ret); - return EXT_ERR_FAILURE; - } -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_TRUE; -#endif - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_sleep_mode(void) -{ - ext_errno ret; - - ret = ft6x46_suspend(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 set suspend fail 0x%x", ret); - } -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - g_ft6x46_drv.work_status = FT6X46_WORK_SLEEP; - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_set_normal_mode(void) -{ - ext_errno ret; - uint16_t reg_write; - - if (g_ft6x46_drv.work_status == FT6X46_WORK_NORMAL) { - return EXT_ERR_SUCCESS; - } - - reg_write = FT6X46_SDRAM_RESET; - ret = tp_i2c_cmd_write(reg_write); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_FAILURE; - } - /* delay 50ms */ - osDelay(FT6X46_GENERAL_DELAY_50); - ret = ft6x46_power_sequence(); - if (ret != EXT_ERR_SUCCESS) { - return EXT_ERR_FAILURE; - } - ft6x46_set_irq_mode(FT6X46_IRQ_ENABLE, FT6X46_INT_MASK); - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; -#ifdef FT6X46_GESTURE_WAKEUP - g_ft6x46_drv.gesture_wakeup = TD_FALSE; -#endif - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_set_power_mode(tp_work_mode power_mode) -{ - ext_errno ret = EXT_ERR_SUCCESS; - - switch (power_mode) { - case MC_TP_SLEEP_WORK_MODE: - case MC_TP_SUSPEND_SCAN: - ret = ft6x46_set_sleep_mode(); - break; - case MC_TP_NORMAL_WORK_MODE: - case MC_TP_RESUME_SCAN: - ret = ft6x46_set_normal_mode(); - break; - case MC_TP_STANDBY_WORK_MODE: - ret = ft6x46_set_standby_mode(); - break; - default: - tp_err("TOUCH:ft6x46 not support powermode 0x%x", power_mode); - ret = EXT_ERR_FAILURE; - break; - } - - return ret; -} - -static ext_errno ft6x46_config(void) -{ - ext_errno ret; - - /* Step 1 hardware reset */ - ret = ft6x46_reset(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:Init reset fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_RESET; - } - - /* Step 2 power up */ - ret = ft6x46_power_sequence(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init powerup fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_POWERUP; - } - -#if 0 - /* Step 3 configuration */ - ret = ft6x46_configuration(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init config fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_CONFIG; - } - - /* Step 3 Panel Info */ - ret = ft6x46_get_panel_info(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:init get panelinfo fail 0x%x", ret); - return EXT_ERR_TP_ZTW523_INIT_GETINFO; - } -#endif - - /* Record Status For Init */ - g_ft6x46_drv.chip_status = FT6X46_READY; - g_ft6x46_drv.work_status = FT6X46_WORK_NORMAL; - - return EXT_ERR_SUCCESS; -} - -static ext_errno ft6x46_resource_deinit(void) -{ - g_ft6x46_drv.work_status = FT6X46_WORK_INVALID; - g_ft6x46_drv.fw_upgrade_flag = TD_FALSE; - osal_mutex_destroy(&g_ft6x46_drv.ops_mux); - - return EXT_ERR_SUCCESS; -} - -ext_errno ft6x46_init(void) -{ - ext_errno ret = EXT_ERR_FAILURE; - ext_errno err_ret; - - /* create tp operation mutex */ - if (g_ft6x46_drv.ops_mux.mutex == NULL) { - ret = osal_mutex_init(&(g_ft6x46_drv.ops_mux)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init create mux lock fail 0x%x", ret); - return EXT_ERR_FAILURE; - } - } - - /* get tp operater mutex */ - ret = osal_mutex_lock_timeout(&g_ft6x46_drv.ops_mux, FT6X46_OPERATER_MUTEX_WAIT_TIME); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init wait mux lock fail 0x%x", ret); - goto init_fail; - } - - /* tp hardware reset and init */ - ret = ft6x46_config(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:ft6x46 init fail 0x%x", ret); - goto init_fail; - } - - /* release tp operater mutex */ - osal_mutex_unlock(&g_ft6x46_drv.ops_mux); - - tp_print("TOUCH:ft6x46 init succ!"); - return EXT_ERR_SUCCESS; - -init_fail: - /* release tp operater mutex */ - osal_mutex_unlock(&g_ft6x46_drv.ops_mux); - err_ret = ft6x46_resource_deinit(); - if (err_ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH:delete mux lock err! ret = 0x%x", err_ret); - } - return ret; -} - -ext_errno ft6x46_deinit(void) -{ - ext_errno ret = ft6x46_resource_deinit(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("TOUCH: ft6x46 deinit fail! ret = 0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -#ifdef __cplusplus -#if __cplusplus - } -#endif -#endif diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h deleted file mode 100644 index b0e57762f..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ft6x46_touch1.h +++ /dev/null @@ -1,421 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: ztw523 touch driver. - * Author: @CompanyNameTag - * Create: 2021-05-29 - */ - -#ifndef FT6X46_TOUCH1_H -#define FT6X46_TOUCH1_H - -#include "stdio.h" -#include "soc_errno.h" -#include "soc_osal.h" -#include "touch_screen_def.h" -#include "platform_core.h" - -#ifdef __cplusplus -#if __cplusplus -extern "C" { -#endif -#endif - -/* ztw523 definitions */ -/* max wait time */ -#define FT6X46_OPERATER_MUTEX_WAIT_TIME 3000 /* operater tp mutex timeout ms */ -#define FT6X46_CMCP_WAIT_TIMEOUT 1000 -/* define some properties value */ -#define FT6X46_ENABLE 0x0001 -#define FT6X46_DISABLE 0x0000 -#define FT6X46_DATA_LEN 2 -#define FT6X46_POWERON_DELAY 100 -#define FT6X46_POWEROFF_DELAY 100 -#define FT6X46_RESETHIGH_DELAY 10 -#define FT6X46_CLEARINT_DELAY 10 -#define FT6X46_FIRMWAREON_DELAY 200 -#define FT6X46_INIT_RETRY_TIMERS 3 -#define FT6X46_SETMODE_RETRY_TIMERS 3 -#define FT6X46_SOFTRESET_RETRY_TIMES 10 -#define FT6X46_RETRY_TIMES 10 -#define FT6X46_DEVICE_INFO "zinitix,ft6x46" -#define FT6X46_DEVICE_INFO_SIZE sizeof(FT6X46_DEVICE_INFO) -#define FT6X46_MAX_SUPPORTED_FINGER_NUM 1 -#define FT6X46_POINT_MODE 1 -#define FT6X46_CALIB_TOUCH_MODE 0x07 -#define FT6X46_REGDATA_SHIFT 8 -#define FT6X46_GENERAL_DELAY_1 1 -#define FT6X46_GENERAL_DELAY_5 5 -#define FT6X46_GENERAL_DELAY_10 10 -#define FT6X46_GENERAL_DELAY_20 20 -#define FT6X46_GENERAL_DELAY_25 25 -#define FT6X46_GENERAL_DELAY_30 30 -#define FT6X46_GENERAL_DELAY_50 50 -#define FT6X46_GENERAL_DELAY_100 100 -#define FT6X46_GENERAL_DELAY_200 200 -#define FT6X46_GENERAL_DELAY_500 500 -#define FT6X46_GENERAL_RETRY_1 1 -#define FT6X46_GENERAL_RETRY_2 2 -#define FT6X46_GENERAL_RETRY_3 3 -#define FT6X46_GENERAL_RETRY_4 4 -#define FT6X46_GENERAL_RETRY_10 10 -#define FT6X46_RAWDATA_DELAY_FOR_HOST 100 -#define FT6X46_FW_JUMP_CODE 0x0048 -#define FT6X46_REPORT_RATE 60 -#define FT6X46_PIXEL_THRESHOLD 5 - -#ifndef FT6X46_RES_MAX_X -#define FT6X46_RES_MAX_X 466 -#endif - -#ifndef FT6X46_RES_MAX_Y -#define FT6X46_RES_MAX_Y 466 -#endif - -#ifndef FT6X46_POINT_TRESHHOLD -#define FT6X46_POINT_TRESHHOLD 0x19 -#endif - -#define FT6X46_TOUCHINFO_HEAD_LEN 4 -#define FT6X46_POINTINFO_LEN 6 -#define FT6X46_TOUCHINFO_LEN (FT6X46_TOUCHINFO_HEAD_LEN + FT6X46_POINTINFO_LEN * FT6X46_MAX_SUPPORTED_FINGER_NUM) - -#define FT6X46_INT_NONE 0x0000 -#define FT6X46_INT_MASK 0x081F -#define FT6X46_PALM_MASK 0x0010 -#define FT6X46_GESTURE_WAKEUP_INIT 0 -#define FT6X46_FIRMWARE_SIZE 48 -#define ZTW_PAGE_SIZE_128 128 -#define ZTW_PAGE_SIZE_64 64 -#define ZTW_SECTOR_SIZE 8 -#define ZTW_CHIPID_F400 0xF400 -#define ZTW_CHIPID_E240 0xE240 -#define ZTW_CHIPID_E700 0xE700 -#define ZTW_CHIPID_E548 0xE548 -#define ZTW_CHIPID_E538 0xE538 -#define ZTW_CHIPID_E532 0xE532 -#define ZTW_VENDOR_ID 0x5A49 -#define FT6X46_CHIP_ID 0xE628 -/* define touch info offset */ -#define FT6X46_STATUSL_OFFSET 0 -#define FT6X46_STATUSH_OFFSET 1 -#define FT6X46_EVENTL_OFFSET 2 -#define FT6X46_EVENTH_OFFSET 3 -#define FT6X46_XL_OFFSET 4 -#define FT6X46_XH_OFFSET 5 -#define FT6X46_YL_OFFSET 6 -#define FT6X46_YH_OFFSET 7 -#define FT6X46_WIDTH_OFFSET 8 -#define FT6X46_SUBSTATUS_OFFSET 9 -/* define data shift and mask */ -#define FT6X46_SHIFT_8_BIT 8 -#define FT6X46_SHIFT_16_BIT 16 -#define FT6X46_SHIFT_24_BIT 24 -#define FT6X46_MASK_BYTE 0xFF -/* define FT6X46_HIGH_SPEED_DMA rely on iic dma support */ -#ifdef FT6X46_HIGH_SPEED_DMA -#define FT6X46_TOUCH_POINT_MODE 0 -#else -#define FT6X46_TOUCH_POINT_MODE 1 -#endif - -#define FT6X46_SEC_MODE 48 -#define FT6X46_NORMAL_MODE 5 -#define FT6X46_DND_MODE 11 /* mutual cap */ -#define FT6X46_SELF_DND_MODE 17 /* self cap */ -#define FT6X46_DNDSKIP_CNT 1 -#define FT6X46_SELFDNDSKIP_CNT 1 -/* Config Reg Info */ -#define FT6X46_REG_CMD_ENABLE 0xC000 -#define FT6X46_REG_CHIP_ID 0xCC00 -#define FT6X46_REG_INTN_CLEAR 0xC004 -#define FT6X46_REG_NVM 0xC002 -#define FT6X46_REG_NVM_VPP 0xC003 -#define FT6X46_REG_NVM_WP 0xC104 -#define FT6X46_REG_PROGRAM_START 0xC001 -#define FT6X46_POWER_CTL_BEGIN 0x000A -#define FT6X46_POWER_CTL_END 0x000B -#define FT6X46_CALIB_CTL1 0xC003 -#define FT6X46_CALIB_CTL2 0xC104 -#define FT6X46_SDRAM_RESET 0x0FF8 -#define FT6X46_REPORT_REG 0x0186 /* 设置中断上报频率 */ -#define FT6X46_PIXEL_THRESHOLD_REG 0x00C3 -/* Register Map */ -#define FT6X46_SWRESET_CMD 0x0000 -#define FT6X46_WAKEUP_CMD 0x0001 -#define FT6X46_IDLE_CMD 0x0004 -#define FT6X46_SLEEP_CMD 0x0005 -#define FT6X46_CLEAR_INT_STATUS_CMD 0x0003 -#define FT6X46_CALIBRATE_CMD 0x0006 -#define FT6X46_SAVE_STATUS_CMD 0x0007 -#define FT6X46_SAVE_CALIBRATION_CMD 0x0008 -#define FT6X46_RECALL_FACTORY_CMD 0x000f -#define FT6X46_SENSITIVITY 0x0020 -#define FT6X46_I2C_CHECKSUM_WCNT 0x016a -#define FT6X46_I2C_CHECKSUM_RESULT 0x016c -#define FT6X46_DEBUG_REG 0x0115 /* 0~7 */ -#define FT6X46_TOUCH_MODE 0x0010 -#define FT6X46_CHIP_REVISION 0x0011 -#define FT6X46_FIRMWARE_VERSION 0x0012 -#define FT6X46_MINOR_FW_VERSION 0x0121 -#define FT6X46_DATA_VERSION_REG 0x0013 -#define FT6X46_HW_ID 0x0014 -#define FT6X46_SUPPORTED_FINGER_NUM 0x0015 -#define FT6X46_EEPROM_INFO 0x0018 -#define FT6X46_INITIAL_TOUCH_MODE 0x0019 -#define FT6X46_CHIP_HW_REVISION 0x001A -#define FT6X46_IC_VENDOR_ID 0x001C -#define FT6X46_TSM_MODULE_ID 0x001E -#define FT6X46_TOTAL_NUMBER_OF_X 0x0060 -#define FT6X46_TOTAL_NUMBER_OF_Y 0x0061 -#define FT6X46_DELAY_RAW_FOR_HOST 0x007f -#define FT6X46_BUTTON_SUPPORTED_NUM 0x00B0 -#define FT6X46_BUTTON_SENSITIVITY 0x00B2 -#define FT6X46_X_RESOLUTION 0x00C0 -#define FT6X46_Y_RESOLUTION 0x00C1 -#define FT6X46_HOLD_POINT_TRESHHOLD 0x00C3 -#define FT6X46_POINT_STATUS_REG 0x0080 -#define FT6X46_ICON_STATUS_REG 0x00AA -#define FT6X46_AFE_FREQUENCY 0x0100 -#define FT6X46_DND_N_COUNT 0x0122 -#define FT6X46_DND_U_COUNT 0x0135 -#define FT6X46_RAWDATA_REG 0x0200 -#define FT6X46_EEPROM_INFO_REG 0x0018 -#define FT6X46_INT_ENABLE_FLAG 0x00f0 -#define FT6X46_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 -#define FT6X46_CHECKSUM_RESULT 0x012c -#define FT6X46_GESTURE_WAKEUP_REG 0x0126 - -#define FT6X46_TOUCHINFO_MASK 0x0F -#define FT6X46_TOUCH_EXIST 0x01 -#define FT6X46_TOUCH_DOWN 0x03 -#define FT6X46_TOUCH_MOVE 0x05 -#define FT6X46_TOUCH_UP 0x08 -#define FT6X46_TOUCH_NONE 0x07 - -#define FT6X46_SUB_BIT_EXIST 0 -#define FT6X46_SUB_BIT_DOWN 1 -#define FT6X46_SUB_BIT_MOVE 2 -#define FT6X46_SUB_BIT_UP 3 -#define FT6X46_SUB_BIT_UPDATE 4 -#define FT6X46_SUB_BIT_WAIT 5 - -#ifndef FT6X46_TSP_X_CHANNEL_NUM -#define FT6X46_TSP_X_CHANNEL_NUM 6 -#endif - -#ifndef FT6X46_TSP_Y_CHANNEL_NUM -#define FT6X46_TSP_Y_CHANNEL_NUM 6 -#endif - -#define FT6X46_TSP_DND_NUM (FT6X46_TSP_X_CHANNEL_NUM * FT6X46_TSP_Y_CHANNEL_NUM) -#define FT6X46_TSP_SELFDND_NUM (FT6X46_TSP_X_CHANNEL_NUM + FT6X46_TSP_Y_CHANNEL_NUM) - -/* firmware info */ -#define FT6X46_FIRMWARE_VERSION_L 0 -#define FT6X46_FIRMWARE_VERSION_H 1 -#define FT6X46_FIRMWARE_VERSION_OFFSET 52 -#define FT6X46_FIRMWARE_MINOR_VERSION_OFFSET 56 -#define FT6X46_FIRMWARE_DATA_VERSION_OFFSET 60 -#define FT6X46_FIRMWARE_OFFSET_ZERO 0 -#define FT6X46_FIRMWARE_CONVERT_DATA_STEP 2 -#define FT6X46_FIRMWARE_CONVERT_DATA_OFFSET 1 -/* file op code */ -#define FT6X46_FILE_ERROR (-1) -#define FT6X46_FILE_OK 0 -/* upgrade info */ -#define FT6X46_FWGRADE_CMD_NUM 3 -/* rawdata info */ -#define FT6X46_RAWDATA_CMD_NUM 2 -/* define gesture macro */ -#define FT6X46_GESTURE_WAKEUP 1 - -/* self_dnd dnd parameter */ -#define FT6X46_SEC_SELF_DND_N_COUNT 15 -#define FT6X46_SEC_SELF_DND_U_COUNT 2 -#define FT6X46_SEC_SELF_DND_FREQUENCY 80 - -#define FT6X46_SEC_DND_N_COUNT 27 -#define FT6X46_SEC_DND_U_COUNT 3 -#define FT6X46_SEC_DND_FREQUENCY 240 - -/* host peripheral typedef */ -typedef ext_errno (*tp_irq_callback)(void); - -/* ZTW523 driver typedef */ -typedef enum { - FT6X46_POWERDOWN = 0, - FT6X46_POWERUP, -} ft6x46_sw_power_status; - -typedef enum { - FT6X46_WORK_NORMAL = 0, - FT6X46_WORK_STANDBY, - FT6X46_WORK_GETCMCP, - FT6X46_WORK_SLEEP, - FT6X46_WORK_SUSPEND, - FT6X46_WORK_RESUME, - FT6X46_WORK_INVALID, -} ft6x46_work_status; - -typedef enum { - FT6X46_NOT_READY = 0, - FT6X46_READY, -} ft6x46_device_status; - -typedef enum { - MC_BUTTON_RELEASE = 0, /* button release */ - MC_BUTTON_PRESSED = 1, /* button pressed */ -} button_event_type; - -typedef enum { - MC_TOUCHKEY_EVENT_PRESS = 0, - MC_TOUCHKEY_EVENT_RELASSE, - MC_TOUCHKEY_EVENT_LONG_PRESS, - MC_TOUCHKEY_EVENT_INVALID, -} touch_key_event_type; - -typedef enum { - FT6X46_GESTURE_NONE = 0, - FT6X46_GESTURE_SIGNAL_CLICK = 1, - FT6X46_GESTURE_DOUBLE_CLICK = 2, - FT6X46_GESTURE_SLIDE_UP = 4, - FT6X46_GESTURE_SLIDE_DOWN = 5, -} ft6x46_gesture_event; - -typedef enum { - FT6X46_IRQ_DISABLE = 0, - FT6X46_IRQ_ENABLE, -} ft6x46_irq_status; - -typedef enum { - MC_TP_NORMAL_WORK_MODE = 0, /* tp normal mode */ - MC_TP_STANDBY_WORK_MODE, /* tp idle mode */ - MC_TP_BOOTLOADER_WORK_MODE, - MC_TP_SLEEP_WORK_MODE, - MC_TP_SUSPEND_SCAN, - MC_TP_RESUME_SCAN, - MC_TP_MAX_MODE, -} tp_work_mode; - -typedef enum { - MC_TP_UPGRADE_NEED_FLAG, - MC_TP_UPGRADE_START_ASYN, - MC_TP_UPGRADE_STATUS, - MC_TP_UPGRADE_SYNC, -} mc_tp_upgrade; - -typedef struct { - uint32_t reset_gpio; - uint32_t int_gpio; - i2c_bus_t i2c_id; - uint32_t i2c_baudrate; -} tp_peripheral_attr; - -typedef struct { - uint16_t button_code; -} button_dev_info; - -typedef struct { - uint16_t xchannel_num; - uint16_t ychannel_num; - uint16_t total_dnd_num; - uint16_t total_self_dnd_num; -} ft6x46_panel_data; - -typedef struct { - uint32_t skip_cnt; - int16_t dnd_data[FT6X46_TSP_DND_NUM]; - int16_t self_dnd_data[FT6X46_TSP_SELFDND_NUM]; -} ft6x46_tsp_rawdata; - -typedef enum { - MC_TP_RAW_DATA, - MC_TP_BASE_DATA, - MC_TP_NOS_DATA, - MC_TP_SIG_DATA, - MC_TP_FT_DATA, - MC_TP_NT_DATA, - MC_TP_MAX_DATA, - MC_TP_CM_CP_DATA, /* 7, CM CP data */ - MC_TP_INT_COUNT_DATA, /* 8, TP Int count */ - MC_TP_NOISE_METRICS_DATA, - MC_TP_DATA_STRUCTURE_DATA, - MC_TP_PANEL_SCAN_CM_DATA, - MC_TP_PANEL_SCAN_CP_DATA, - MC_TP_START_RAW_TRANS, - MC_TP_STOP_RAW_TRANS, - MC_TP_START_GET_WATER_TEMPR, /* 15, start get and print water level and temprature */ - MC_TP_STOP_GET_WATER_TEMPR, /* 16, stop get and print water level and temprature */ - MC_TP_RAW_MAX, -} mc_tp_rawdata; - -typedef struct { - mc_tp_rawdata cmd; - uint8_t *data_buf; - uint8_t data_in_len; - uint32_t data_out_len; - uint32_t data_addr; -} touch_rawdata_info; - -/* define for drv process talbe */ -typedef ext_errno (*touch_drv_upgrade_handle)(uint8_t *data_buff, uint8_t buf_len); -typedef struct { - mc_tp_upgrade cmd_id; - touch_drv_upgrade_handle process_cb; -} touch_drv_upgrade_proc; - -typedef ext_errno (*touch_hal_rawdata_handle)(uint8_t *data_buf, uint8_t buf_len); -typedef struct { - mc_tp_rawdata cmd_id; - touch_hal_rawdata_handle process_cb; -} touch_drv_rawdata_proc; - -typedef struct { - uint16_t chip_id; - uint16_t vendor_id; - uint16_t chip_hw_id; - uint8_t chip_info[FT6X46_DEVICE_INFO_SIZE]; - uint16_t firmware_version; - uint16_t minor_firmware_version; - uint16_t reg_version; - uint32_t flash_fw_version; - uint16_t int_mask; - uint16_t touch_mode; - uint32_t irq_count; - uint32_t touch_count; - uint32_t page_size; - uint16_t header_size; - uint16_t image_size; - osal_mutex ops_mux; - bool fw_upgrade_flag; - bool gesture_wakeup; - bool host_dev_init_flag; - ft6x46_sw_power_status power_status; - ft6x46_work_status work_status; - ft6x46_sw_power_status chip_sw_power_status; - ft6x46_device_status chip_status; - input_event_info touch_msg; - ft6x46_panel_data panel_info; - tp_peripheral_attr dev_attr; - ft6x46_tsp_rawdata tsp_raw_data; - void *p_void; - uint32_t tp_event; - touch_drv_upgrade_proc upgrade_table[FT6X46_FWGRADE_CMD_NUM]; - touch_drv_rawdata_proc raw_data_table[FT6X46_RAWDATA_CMD_NUM]; -} ft6x46_drv_data; - -ext_errno ft6x46_init(void); -ext_errno ft6x46_deinit(void); -ext_errno ft6x46_set_power_mode(tp_work_mode power_mode); -ext_errno ft6x46_get_power_mode(uint32_t *power_mode); -ext_errno ft6x46_resume(void); -ext_errno ft6x46_suspend(void); -ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len); -ext_errno ft6x46_host_init_sample(void); -#ifdef __cplusplus -#if __cplusplus - } -#endif -#endif - -#endif diff --git a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c b/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c deleted file mode 100644 index 4591a7d7e..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c +++ /dev/null @@ -1,491 +0,0 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: touch screen driver. - * Author: @CompanyNameTag - * Create: 2022-04-12 - */ - -#include "touch_screen_drv.h" -#include "tcxo.h" -#include "i2c.h" -#include "common_def.h" -#include "soc_osal.h" -#include "touch_screen_def.h" -#include "input_app.h" -#if defined(TPTYPE_TMA525B) -#include "tma525b_drv1.h" -#include "tma525b_ctrl.h" -#elif defined(TPTYPE_ZTW523) -#include "ztw523_drv1.h" -#include "ztw523_ctrl.h" -#elif defined(TPTYPE_FT6X46) -#include "ft6x46_drv1.h" -#include "ft6x46_ctrl.h" -#else -#include "ztw523_drv1.h" -#include "ztw523_ctrl.h" -#endif - -#if defined(TPTYPE_TMA525B) -#define TOUCH_I2C_BUS TMA525B_I2C_BUS -#define TOUCH_INT_GPIO TMA525B_INT_GPIO -#define TOUCH_RESET_GPIO TMA525B_RESET_GPIO -#elif defined(TPTYPE_ZTW523) -#define TOUCH_I2C_BUS ZTW523_I2C_BUS -#define TOUCH_INT_GPIO ZTW523_INT_GPIO -#define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -#elif defined(TPTYPE_FT6X46) -#define TOUCH_I2C_BUS FT6X46_I2C_BUS -#define TOUCH_INT_GPIO FT6X46_INT_GPIO -#define TOUCH_RESET_GPIO FT6X46_RESET_GPIO -#else -#define TOUCH_I2C_BUS ZTW523_I2C_BUS -#define TOUCH_INT_GPIO ZTW523_INT_GPIO -#define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -#endif - -#define TOUCH_SCREEN_DEV_NAME_LEN 16 -#define TOUCH_SCREEN_DEVNAME "input/event" -#define TOUCH_SCREEN_DYNAMIC_MINOR 65 -#define TOUCH_SCREEN_CMDID_MAX 16 - -#define TOUCH_SCREEN_TASK_PRIO 5 -#define TOUCH_SCREEN_TASK_SIZE 0x800 -#define TOUCH_SCREEN_QUEUE_MAX_SIZE 60 -#define TOUCH_SCREEN_READY_EVENT (1 << 0) - -struct ts_driver_data g_touch_drv = {0}; -struct ts_driver_data *g_attr = NULL; - -report_event_cb g_report_event_cb = NULL; - -#if defined(SUPPORT_POWER_MANAGER) -event_callback_func g_power_manager_cb = NULL; -#endif - -static struct ts_driver_data *touch_screen_get_driver_data(void) -{ - return &g_touch_drv; -} - -static uint32_t touch_screen_get_state(struct ts_driver_data *tsdd) -{ - if (tsdd != NULL && tsdd->queue != NULL) { - return (uint32_t)ts_queue_is_empty(tsdd->queue); - } - - if (tsdd == NULL) { - tp_err("tsdd is null!"); - return EXT_ERR_FAILURE; - } - if (tsdd->queue == NULL) { - tp_err("tsdd queue is null!"); - } - - return EXT_ERR_FAILURE; -} - -static void convert_touch_info(input_dev_data_t* data, input_event_info* touch_info) -{ - data->x = (int16_t)touch_info->tp_event_info.x_axis[0]; - data->y = (int16_t)touch_info->tp_event_info.y_axis[0]; - data->type = INDEV_TYPE_TOUCH; - data->timestamp = (uint32_t)touch_info->tv_usec; - if ((touch_info->tp_event == MC_TP_PRESS) || (touch_info->tp_event == MC_TP_MOVE)) { - data->state = INDEV_STATE_PRESS; - } else if (touch_info->tp_event == MC_TP_RELEASE) { - data->state = INDEV_STATE_RELEASE; - } else { - data->state = INDEV_STATE_UNKNOWN; - } -} - -static void report_or_enqueue_event(input_event_info* touch_info, struct ts_driver_data *tsdd) -{ - if (g_report_event_cb != NULL) { - input_dev_data_t data; - convert_touch_info(&data, touch_info); - if (data.state == INDEV_STATE_UNKNOWN) { - return; - } - g_report_event_cb(&data); - } else { - int32_t ret = ts_en_queue(tsdd->queue, touch_info); - if (ret != EXT_ERR_SUCCESS) { - tp_err("Failed to enqueue ts queue! ret=0x%x", ret); - } - } -} -#if defined(SUPPORT_POWER_MANAGER) -static void report_event_to_power_manager(input_event_info *touch_info) -{ - if (g_power_manager_cb != NULL) { - input_dev_data_t data; - convert_touch_info(&data, touch_info); - if (data.state == INDEV_STATE_UNKNOWN) { - return; - } - g_power_manager_cb(data.state, 0); - } - return; -} - -uint32_t ts_register_power_manager_cb(event_callback_func callback) -{ - if (g_power_manager_cb != NULL) { - return EXT_ERR_FAILURE; - } - g_power_manager_cb = callback; - return EXT_ERR_SUCCESS; -} -#endif -ext_errno touch_info_process(void) -{ - struct ts_driver_data *tsdd = touch_screen_get_driver_data(); - input_event_info touch_info; - int32_t ret = 0; - - if (tsdd->touch_api->touch_get_tpinfo != NULL) { - ret = tsdd->touch_api->touch_get_tpinfo((uint8_t *)(&touch_info), sizeof(input_event_info)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("get touch info fail! ret=0x%x", ret); - } - - report_or_enqueue_event(&touch_info, tsdd); -#if defined(SUPPORT_POWER_MANAGER) - report_event_to_power_manager(&touch_info); -#endif - } - - return EXT_ERR_SUCCESS; -} - -static void ts_callback_func(void) -{ - ext_errno ret; - if (g_attr != NULL) { - common_notify_mail_t mail = {0}; - mail.comm.app = APP_TOUCH; - ret = osal_msg_queue_write_copy(get_app_queue_id(), (void *)&mail, - sizeof(common_notify_mail_t), 0); - if (ret != OSAL_SUCCESS) { - tp_err("touch app msg send failed! err=0x%x! \r\n", ret); - } - } -} - -static ext_errno ts_register_callback(struct ts_driver_data *attr) -{ - ext_errno ret = EXT_ERR_FAILURE; - g_attr = attr; - - if (attr->touch_api->register_callback != NULL) { - ret = attr->touch_api->register_callback(attr->private_data, ts_callback_func); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register touch screen callback fail! ret=0x%x", ret); - return ret; - } - } else { - tp_err("touch screen callback register func is empty!"); - } - - return ret; -} - -static ext_errno ts_unregister_callback(struct ts_driver_data *attr) -{ - ext_errno ret = EXT_ERR_FAILURE; - - if (attr->touch_api->unregister_callback != NULL) { - ret = attr->touch_api->unregister_callback(attr->private_data); - if (ret != EXT_ERR_SUCCESS) { - tp_err("unregister touch screen callback fail! ret=0x%x", ret); - return ret; - } - g_attr = NULL; - } else { - tp_err("touch screen callback unregister func is empty!"); - } - - return ret; -} - -static int32_t ts_dev_open(const void *private_data) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - if (private_data == NULL) { - tp_err("ts_open: invalid dev or driver_data!\n"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - tsdd->queue = ts_init_queue(TOUCH_SCREEN_QUEUE_MAX_SIZE); - if (tsdd->queue == NULL) { - tp_err("create touch screen queue fail!\r\n"); - return EXT_ERR_FAILURE; - } - ret = osal_event_init(&(tsdd->event)); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch osal_event_init fail! ret=0x%x\r\n", ret); - return ret; - } - - tsdd->task_handle = osal_kthread_create((osal_kthread_handler)touch_info_process, - (void *)touch_screen_get_driver_data(), - "touch_screen", TOUCH_SCREEN_TASK_SIZE); - if (tsdd->task_handle == NULL) { - tp_err("create touch screen thread fail!\r\n"); - return EXT_ERR_FAILURE; - } - osal_kthread_set_priority(tsdd->task_handle, TOUCH_SCREEN_TASK_PRIO); - - if (tsdd->touch_api->touch_init != NULL) { - ret = tsdd->touch_api->touch_init(tsdd->private_data); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch_init fail! ret=0x%x\r\n", ret); - return ret; - } - } - - ret = ts_register_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register callback fail! ret=0x%x\r\n", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static int32_t ts_dev_release(const void *private_data) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - if (private_data == NULL) { - tp_err("ts_dev_release: invalid dev or driver_data!\n"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - ret = ts_unregister_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("unregister callback fail! ret=0x%x\r\n", ret); - return ret; - } - return EXT_ERR_SUCCESS; -} - -static uint32_t ts_dev_poll(const osal_poll *osal_poll, const void *private_data) -{ - unused(osal_poll); - unused(private_data); - // todo: get tsdd from private_data - struct ts_driver_data *tsdd = NULL; - tsdd = touch_screen_get_driver_data(); - if (tsdd == NULL) { - tp_err("ts_driver_data is NULL"); - return EXT_ERR_FAILURE; - } - - if (tsdd->ops->priv_operator != NULL && tsdd->ops->priv_operator(tsdd) == 0) { - return OSAL_POLLIN | OSAL_POLLRDNORM; - } - - return EXT_ERR_SUCCESS; -} - -static int32_t ts_ioctl_read_touch_info(uint32_t cmd, void *arg, const void *private_data) -{ - unused(cmd); - ext_errno ret; - struct ts_driver_data *tsdd = NULL; - input_event_info *touch_info = (input_event_info *)arg; - - if (private_data == NULL) { - tp_err("invalid dev or driver_data!"); - return EXT_ERR_FAILURE; - } - - // todo: get tsdd from private_data - tsdd = touch_screen_get_driver_data(); - if (tsdd->queue == NULL) { - tp_err("invalid touch screen queue!"); - return EXT_ERR_FAILURE; - } - - ret = ts_de_queue(tsdd->queue, touch_info); - if (ret != EXT_ERR_SUCCESS) { - tp_err("get touch info fail! ret=0x%x", ret); - return ret; - } - - return EXT_ERR_SUCCESS; -} - -static osal_ioctl_cmd g_ts_cmd_list[TOUCH_SCREEN_CMDID_MAX] = { - {TOUCH_SCREEN_GET_EVENT, ts_ioctl_read_touch_info}, -}; - -static osal_dev *g_ts_dev = NULL; -static osal_fileops g_ts_ops = { - .open = ts_dev_open, - .release = ts_dev_release, - .poll = ts_dev_poll, - .cmd_list = g_ts_cmd_list, - .cmd_cnt = sizeof(g_ts_cmd_list) / sizeof(g_ts_cmd_list[0]), -}; - -struct ts_ops g_ts_status_ops = { - .priv_operator = touch_screen_get_state, -}; - -static ext_errno touch_screen_register_device(void) -{ - ext_errno ret; - - g_touch_drv.private_data = touch_screen_get_peri_attr(); - g_touch_drv.touch_api = touch_screen_get_api(); - g_touch_drv.ops = &g_ts_status_ops; - g_ts_dev = osal_dev_create(TOUCH_SCREEN_DEVNAME); - g_ts_dev->minor = TOUCH_SCREEN_DYNAMIC_MINOR; - g_ts_dev->fops = &g_ts_ops; - - ret = osal_dev_register(g_ts_dev); - if (ret != 0) { - tp_err("touch screen osal_dev_register --------failed! ret=0x%x\n", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -ext_errno touch_screen_module_init(void) -{ - ext_errno ret; - - ret = touch_screen_register_device(); - if (ret != EXT_ERR_SUCCESS) { - tp_err("touch_screen_register_device ----------failed! ret=0x%x\n", ret); - } - tp_err("touch_screen_register_device ----------succ!!!\n"); - - return EXT_ERR_SUCCESS; -} - -ext_errno touch_screen_module_deinit(void) -{ - return EXT_ERR_SUCCESS; -} - -uint32_t ts_register_report_event_cb(report_event_cb callback) -{ - if (g_report_event_cb != NULL) { - return EXT_ERR_FAILURE; - } - g_report_event_cb = callback; - return EXT_ERR_SUCCESS; -} - -uint32_t ts_unregister_report_event_cb(void) -{ - g_report_event_cb = NULL; - return EXT_ERR_SUCCESS; -} - -uint32_t ts_init(void) -{ - int32_t ret; - struct ts_driver_data *tsdd = NULL; - - g_touch_drv.private_data = touch_screen_get_peri_attr(); - g_touch_drv.touch_api = touch_screen_get_api(); - g_touch_drv.ops = &g_ts_status_ops; - tsdd = touch_screen_get_driver_data(); - tsdd->queue = ts_init_queue(TOUCH_SCREEN_QUEUE_MAX_SIZE); - if (tsdd->queue == NULL) { - tp_err("create touch screen queue fail!\r\n"); - return EXT_ERR_FAILURE; - } - - ret = ts_register_callback(tsdd); - if (ret != EXT_ERR_SUCCESS) { - tp_err("register callback fail! ret=0x%x\r\n", ret); - return EXT_ERR_FAILURE; - } - - return EXT_ERR_SUCCESS; -} - -uint32_t ts_read(const input_dev_data_t* data) -{ - unused(data); - return EXT_ERR_SUCCESS; -} - -uint32_t ts_close(void) -{ - return EXT_ERR_SUCCESS; -} - -void touch_screen_suspend(void) -{ - touch_peripheral_api *touch_ptr = touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_sleep(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch sleep ret=0x%x", ret); } -#if defined(TPTYPE_FT6X46) - if (ft6x46_suspend() == EXT_ERR_SUCCESS){ - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt - } -#else - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -#endif -} - -void touch_screen_resume(void) -{ - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt - i2c_recovery_reg(TOUCH_I2C_BUS); -#if defined(TPTYPE_TMA525B) - tma525b_init(); - touch_peripheral_api *touch_ptr = (touch_peripheral_api*)touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_resume(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch resume ret=0x%x", ret); } -#elif defined(TPTYPE_ZTW523) - ztw523_resume(); -#elif defined(TPTYPE_FT6X46) - ft6x46_resume(); -#else - ztw523_resume(); -#endif - uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt -} - -void touch_suspend_for_i2c(void) -{ - i2c_save_reg(TOUCH_I2C_BUS); -} - -void touch_resume_for_i2c(void) -{ - i2c_recovery_reg(TOUCH_I2C_BUS); -} - -void touch_screen_restart(void) -{ - uapi_i2c_deinit(TOUCH_I2C_BUS); - uapi_i2c_master_init(TOUCH_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ -#if defined(TPTYPE_TMA525B) - tma525b_resume(); -#elif defined(TPTYPE_ZTW523) - ztw523_resume(); -#elif defined(TPTYPE_FT6X46) - ft6x46_resume(); -#else - ztw523_resume(); -#endif - uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt -} \ No newline at end of file diff --git a/fd230_driver_patch/20240628.170448/code/sdk/tools/pkg/chip_packet/brandy/packet.py b/fd230_driver_patch/20240628.170448/code/sdk/tools/pkg/chip_packet/brandy/packet.py deleted file mode 100644 index b4451d336..000000000 --- a/fd230_driver_patch/20240628.170448/code/sdk/tools/pkg/chip_packet/brandy/packet.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env python3 -# encoding=utf-8 -# ============================================================================ -# @brief packet files -# ============================================================================ - -import os -import sys - -PY_PATH = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(PY_PATH) -PKG_DIR = os.path.dirname(PY_PATH) -PKG_DIR = os.path.dirname(PKG_DIR) -from packet_create import create_sha_file -from packet_create import packet_bin - -TOOLS_DIR = os.path.dirname(PKG_DIR) -SDK_DIR = os.path.dirname(TOOLS_DIR) -sys.path.append(os.path.join(SDK_DIR, "build", "script")) -sys.path.append(os.path.join(SDK_DIR, 'build', 'config')) -sys.path.append(os.path.join(SDK_DIR, "build", "script", "nv")) -from enviroment import TargetEnvironment -from param_packet import gen_flash_part_bin -from nv_binary import nv_begin - -# brandy packet -def build_brandy_other_bin(pack_style_str): - ''' build brandy partition and nv ''' - chip_dir = os.path.join(SDK_DIR, "build", "config", "target_config", "brandy") - # 分区配置文件路径 - partition_cfg = os.path.join(chip_dir, "param_sector", "param_sector.json") - partition_bin = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") - # nv配置文件路径 - nv_config_json = os.path.join(chip_dir, "nv_bin_cfg") - if pack_style_str.endswith("-user"): - nv_config_json = os.path.join(nv_config_json, "mk_nv_bin_cfg_user.json") - else: - nv_config_json = os.path.join(nv_config_json, "mk_nv_bin_cfg_eng.json") - targets = ["acore"] - # 输出路径 - nv_output_path = os.path.join(SDK_DIR, "output", "brandy", "nv_bin") - - if not os.path.exists(nv_output_path): - os.makedirs(nv_output_path) - - gen_flash_part_bin(partition_cfg, partition_bin) - nv_begin(nv_config_json, targets, 0) - - -def make_all_in_one_packet(pack_style_str): - # make all in one packet - build_brandy_other_bin(pack_style_str) - - bin_dir = os.path.join(PKG_DIR, "bin", "brandy") - application_dir = os.path.join(SDK_DIR, - "output", - "brandy", - "acore", - pack_style_str) - recovery_target = "%s-r" % pack_style_str - recovery_target = recovery_target.replace('-user', '') - recovery_bin = os.path.join(SDK_DIR, - "output", - "brandy", - "acore", - recovery_target, - "recovery.bin") - recovery_bx = recovery_bin + "|0x70050000|0x40000|100" - - upload_app_fwpkg = os.path.join(PKG_DIR, "fwpkg", "brandy", "upload_app.fwpkg") - - ssb = os.path.join(SDK_DIR, "output", "brandy", "acore", "brandy-ssb", "ssb.bin") - if not os.path.exists(ssb): - ssb = os.path.join(bin_dir, "ssb.bin") - print("ssb_path: ", ssb) - ssb_bx = ssb + "|0x70000000|0x20000|0" - - partition = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") - partition_bx = partition + "|0x7004F000|0x1000|100" - nv = os.path.join(SDK_DIR, "output", "brandy", "nv_bin", "brandy_all_nv.bin") - # nv_bx = nv + "|0x707F9000|0x4000|100" - nv_bx = nv + "|0x70FF9000|0x4000|100" - - app = os.path.join(application_dir, "application.bin") - # app_bx = app + "|0x702B0000|0x549000|18" #origin - # define APP_IMAGE_PAGES (1353+2560) - # 2560*4*1024= 0xA00000 - app_bx = app + "|0x702B0000|0xD49000|18" - - bt = os.path.join(bin_dir, "bt.bin") - bt_bx = bt + "|0x70090000|0x70000|20" - - target_env = TargetEnvironment(pack_style_str) - dsp_version = target_env.get("dsp_version") - dsp_main = os.path.join(bin_dir, "dsp", dsp_version, "dsp_main.bin") - dsp_main_bx = dsp_main + "|0x70100000|0x70000|22" - dsp_overlay = os.path.join(bin_dir, "dsp", dsp_version, "dsp_overlay.bin") - dsp_overlay_bx = dsp_overlay + "|0x70170000|0x140000|26" - - fs = os.path.join(application_dir, "file.bin") - fs_bx = fs + "|0xFFFFFFFF|0xFFFFFFFF|101" - - try: - packet_post_agvs = list() - packet_post_agvs.append(ssb_bx) - packet_post_agvs.append(partition_bx) - packet_post_agvs.append(app_bx) - packet_post_agvs.append(recovery_bx) - packet_post_agvs.append(bt_bx) - packet_post_agvs.append(dsp_main_bx) - packet_post_agvs.append(dsp_overlay_bx) - packet_post_agvs.append(nv_bx) - packet_post_agvs.append(fs_bx) - packet_bin(upload_app_fwpkg, packet_post_agvs) - except Exception as e: - print(e) - exit(-1) - -def is_packing_files_exist(soc, pack_style_str): - """ - 判断打包文件是否存在 - :return: - """ - packing_files = get_packing_files(soc, pack_style_str) - lost_files = list() - for f_path in packing_files: - if not os.path.isfile(f_path): - lost_files.append(f_path) - return lost_files - -def get_packing_files(soc, pack_style_str): - """ - 直接添加需要打包的文件路径 - :return: - """ - packing_files = list() - packing_files.append(os.path.join(PKG_DIR, "bin", "brandy", "ssb.bin")) - application_path = os.path.join(SDK_DIR, - "output", - "brandy", - "acore", - pack_style_str, - "application.bin") - packing_files.append(application_path) - packing_files.append(os.path.join(PKG_DIR, "bin", "brandy", "bt.bin")) - - target_env = TargetEnvironment(pack_style_str) - dsp_version = target_env.get("dsp_version") - packing_files.append(os.path.join(PKG_DIR, "bin", "brandy", "dsp", dsp_version, "dsp_main.bin")) - packing_files.append(os.path.join(PKG_DIR, "bin", "brandy", "dsp", dsp_version, "dsp_overlay.bin")) - return packing_files diff --git a/fd230_driver_patch/20240628.170448/diff/commit.txt b/fd230_driver_patch/20240628.170448/diff/commit.txt deleted file mode 100644 index 5468b5899..000000000 --- a/fd230_driver_patch/20240628.170448/diff/commit.txt +++ /dev/null @@ -1 +0,0 @@ -73fe512feca37305ec4bf1c54c1e2d2ffe0933d0 diff --git a/fd230_driver_patch/20240628.170448/diff/local_diff_patch.txt b/fd230_driver_patch/20240628.170448/diff/local_diff_patch.txt deleted file mode 100644 index 55d6047ce..000000000 --- a/fd230_driver_patch/20240628.170448/diff/local_diff_patch.txt +++ /dev/null @@ -1,1154 +0,0 @@ -diff --git a/autobuild.sh b/autobuild.sh -index 2b5334b3c..5d2c71723 100644 ---- a/autobuild.sh -+++ b/autobuild.sh -@@ -5,6 +5,7 @@ DATE=$(date +%Y%m%d_%H%M%S) - HOMEDIR=$PWD - DEFAULT_BUILD_TYPE=release - DEFAULT_TARGET_PACK_NAME=pack_brandy_native_js -+DEFAULT_CUSTOM_FW_VERSION=1.0.7 - - TARGET_PACK_NAME=$DEFAULT_TARGET_PACK_NAME - RELEASE_BUILD=$DEFAULT_BUILD_TYPE -@@ -38,15 +39,50 @@ COMMIT_ID=`git rev-parse HEAD` - SOURCE_MODIFIED=`git status --short` - cp_releasepackage() - { -- #code/sdk/output/brandy/acore/brandy-native-js/package/brandy/ -- package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME -- filename=${TARGET_PACK_NAME}_${RELEASE_BUILD}_${DATE}_${USER}.fwpkg -- releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/${DATE} -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.bin -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.elf -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.lst -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/file.bin -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.bin -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.elf -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.lst -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.bin -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.elf -+ # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.lst -+ -+ package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME/ -+ application_path=$package_dir/brandy-native-js/application.bin -+ applicationelf_path=$package_dir/brandy-native-js/application.elf -+ applicationlst_path=$package_dir/brandy-native-js/application.lst -+ recovery_path=$package_dir/brandy-native-js-r/recovery.bin -+ recoveryelf_path=$package_dir/brandy-native-js-r/recovery.elf -+ recoverylst_path=$package_dir/brandy-native-js-r/recovery.lst -+ ssb_path=$package_dir/brandy-ssb/ssb.bin -+ ssbelf_path=$package_dir/brandy-ssb/ssb.elf -+ ssblst_path=$package_dir/brandy-ssb/ssb.lst -+ -+ dspmain_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin -+ dspoverlay_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_overlay.bin -+ bt_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/bt.bin -+ nv_path=$HOMEDIR/code/sdk/output/brandy/nv_bin/brandy_all_nv.bin -+ -+ resfile_path=$HOMEDIR/code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/file.bin -+ -+ filename=${TARGET_PACK_NAME}_${RELEASE_BUILD}_${DEFAULT_CUSTOM_FW_VERSION}_${DATE}_${USER}.fwpkg -+ releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/V${DEFAULT_CUSTOM_FW_VERSION}_${DATE} - packsource=$HOMEDIR/code/sdk/tools/pkg/fwpkg/brandy/upload_app.fwpkg - echo do release copy -- mkdir -p $releasedir -- cp -r $HOMEDIR/build.log $package_dir $releasedir/ -+ mkdir -p $releasedir/bin -+ -+ cp -r $application_path $applicationelf_path $applicationlst_path $releasedir/bin/ -+ cp -r $recovery_path $recoveryelf_path $recoverylst_path $releasedir/bin/ -+ cp -r $ssb_path $ssbelf_path $ssblst_path $releasedir/bin/ -+ cp -r $bt_path $dspmain_path $dspoverlay_path $nv_path $releasedir/bin/ -+ cp -r $resfile_path $releasedir/bin/ -+ cp -r $HOMEDIR/build.log $releasedir/ -+ cp -r $HOMEDIR/cat1modem/* $releasedir/ - cp $packsource $releasedir/$filename -+ - echo $filename > $releasedir/readme.txt - echo branch name $CURRENT_BRANCH >> $releasedir/readme.txt - echo commit $COMMIT_ID >> $releasedir/readme.txt -@@ -64,8 +100,10 @@ build_target() - { - - cd $HOMEDIR/code/sdk/ -- echo ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 -- python ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 -+ echo ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 -+ ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 -+ # ./build.py $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 -+ #./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 - ret_code=$? - if [ $ret_code == 0 ] - then -diff --git a/code/sdk/application/audio/vendor/CMakeLists.txt b/code/sdk/application/audio/vendor/CMakeLists.txt -index e3152c2ca..c1c31962b 100644 ---- a/code/sdk/application/audio/vendor/CMakeLists.txt -+++ b/code/sdk/application/audio/vendor/CMakeLists.txt -@@ -39,6 +39,21 @@ set(COMPONENT_INC ${COMPONENT_INC} - ) - endif() - -+if("${CFG_SAP_VENDOR_DRIVER_AW88166_SUPPORT}" STREQUAL "y") -+set(COMPONENT_SRC ${COMPONENT_SRC} -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw88166.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_calib.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/aw883xx_device.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166/aw883xx_pid_2066_init.c -+) -+set(COMPONENT_INC ${COMPONENT_INC} -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166 -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/product_init_files/aw88166 -+ ${CMAKE_CURRENT_SOURCE_DIR}/aw88166/config/aw88166/mono/16bit -+) -+endif() -+ - if("${CFG_SAP_VENDOR_DRIVER_ANC_CODEC_SUPPORT}" STREQUAL "y") - set(COMPONENT_SRC ${COMPONENT_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/anc_codec/anc_codec.c -diff --git a/code/sdk/application/audio/vendor/aw88166/aw88166.c b/code/sdk/application/audio/vendor/aw88166/aw88166.c -index d25e8db7f..a0f2d29a3 100644 ---- a/code/sdk/application/audio/vendor/aw88166/aw88166.c -+++ b/code/sdk/application/audio/vendor/aw88166/aw88166.c -@@ -19,8 +19,8 @@ - - static td_bool g_aw88166_i2c_inited = TD_FALSE; - --#define AW88166_PWR_ON_PIN S_MGPIO4 --#define AW88166_I2C_BUS_ID I2C_BUS_0 -+#define AW88166_PWR_ON_PIN S_AGPIO_L25 -+#define AW88166_I2C_BUS_ID I2C_BUS_3 - #define AW88166_I2C_DEV_ADDR 0x34 - - static td_s32 aw_dev0_i2c_write_func(td_u16 dev_addr, td_u8 reg_addr, td_u8 *pdata, td_u16 len) -diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -index 93c7f41df..479f285ec 100644 ---- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -+++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c -@@ -28,6 +28,8 @@ - #include "tma525b_drv1.h" - #elif defined(TPTYPE_ZTW523) - #include "ztw523_touch1.h" -+#elif defined(TPTYPE_FT6X46) -+#include "ft6x46_touch1.h" - #else - #include "ztw523_touch1.h" - #endif -@@ -40,9 +42,13 @@ - * define AUDIO_SMARTPA_AW88166 : macro to init smartpa aw88166; - * define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 : macro to specify i2s id connecting to smartpa aw88166; - */ -+#if 0 - #define AUDIO_SMARTPA_AW88262 - #define AUDIO_SMARTPA_AW88262_I2S_ID UAPI_SND_OUT_PORT_I2S2 -- -+#else -+#define AUDIO_SMARTPA_AW88166 -+#define AUDIO_SMARTPA_AW88166_I2S_ID UAPI_SND_OUT_PORT_I2S0 -+#endif - #endif /* DSP_EXIST */ - #include "panic.h" - #include "board_init.h" -@@ -51,19 +57,11 @@ - #include "ohosfwk_startup.h" - #endif - #include "clocks_config.h" --#include "board_init.h" --#include "upg.h" --#include "upg_definitions.h" --#include "nv.h" --#include "nv_upg.h" - - #define EMMC_BASE_ADDR 0x52062000 - #define TASK_PRIORITY_APP (osPriority_t)(17) - #define TICK_TEN_MS (10U) - #define WAIT_BT_BOOTUP_TIME 200U --#define UPG_HEAD_MAGIC 0x55AA55AA --#define UPG_END_MAGIC 0xAA55AA55 --#define UPG_FLAG_MAGIC 0xFFFFFFFF - - static void thread_main(const void *unused); - void bt_acore_btc_ipc_receive_init(void); -@@ -79,6 +77,8 @@ static void sample_gfx_init(void) - tma525b_host_init_sample(); - #elif defined(TPTYPE_ZTW523) - ztw523_host_init_sample(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_host_init_sample(); - #else - ztw523_host_init_sample(); - #endif -@@ -249,40 +249,6 @@ static void force_to_sleep(void) - } - } - --#ifdef CONFIG_OTA_UPDATE_SUPPORT --static void upg_check_upgrade(void) --{ -- uint32_t fota_address = 0; -- errcode_t ret_val = (errcode_t)upg_get_upgrade_flag_flash_start_addr(&fota_address); -- if (ret_val != ERRCODE_SUCC) { -- return; -- } -- -- fota_upgrade_flag_area_t upg_flag_info; -- ret_val = (errcode_t)upg_flash_read(fota_address, sizeof(fota_upgrade_flag_area_t), (uint8_t *)(&upg_flag_info)); -- if (ret_val != ERRCODE_SUCC) { -- return; -- } -- -- if (!(upg_flag_info.head_magic == UPG_HEAD_MAGIC && -- upg_flag_info.head_end_magic == UPG_END_MAGIC && -- upg_flag_info.complete_flag == UPG_FLAG_MAGIC)) { -- /* 不需要升级直接返回 */ -- PRINT("No need to upgrade...\r\n"); -- return; -- } -- -- PRINT("upgrading.......\r\n"); -- ret_val = uapi_upg_start(); -- if (ret_val != ERRCODE_SUCC) { -- PRINT("upgrade failed, ret = 0x%x\r\n", ret_val); -- } else { -- PRINT("upgrade success\r\n"); -- } -- upg_reboot(); --} --#endif -- - static void thread_main(const void *unused) - { - PRINT("thread_main start "NEWLINE); -@@ -323,11 +289,6 @@ static void thread_main(const void *unused) - #endif - board_version_class_print(); - uapi_watchdog_kick(); --#ifdef CONFIG_OTA_UPDATE_SUPPORT -- upg_check_upgrade(); --#endif -- /* nv init and file system init must be before nv_upg_upgrade_task_process */ -- (void)nv_upg_upgrade_task_process(); - thread_init(); - button_app_init(); - uapi_calendar_init(); -diff --git a/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -index 7dcdf3238..35ba07c27 100644 ---- a/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -+++ b/code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -@@ -43,6 +43,12 @@ void RebootPresenter::OnResume(void) {} - - void RebootPresenter::OnStop(void) {} - -+ -+extern "C" -+{ -+extern void uapi_sys_shipmode(uint32_t arg); -+extern uint32_t mcu_os_sys_reset(uint8_t *para, uint32_t para_len); -+} - bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) - { - UNUSED(event); -@@ -54,9 +60,11 @@ bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event) - } else if (strcmp(view.GetViewId(), REBOOTDEVICE_BUTTON) == 0) { - // 重启 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "REBOOTDEVICE_BUTTON OnClick"); -+ mcu_os_sys_reset(NULL,NULL); - } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_BUTTON) == 0) { - // 关机 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SHUTDOWNDEVICE_BUTTON OnClick"); -+ uapi_sys_shipmode(0); - } - return true; - } -diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py -index 3ee13945e..12f9ef163 100644 ---- a/code/sdk/build/config/target_config/brandy/config.py -+++ b/code/sdk/build/config/target_config/brandy/config.py -@@ -114,6 +114,8 @@ target = { - 'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT', - 'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG', - 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', -+ 'FT_SINGLE_UART', -+ 'TPTYPE_FT6X46', - 'ENABLE_ECC', 'MIPI_ULPS_SUPPORT', 'SUPPORT_ALIPAY_SEC'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', -@@ -125,7 +127,7 @@ target = { - 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], - 'dsp_version': 'max', - 'packet': True, -- 'fs_image': False -+ 'fs_image': True - }, - #native-js-user: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 - #离线日志版本 -@@ -219,12 +221,15 @@ target = { - 'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', - '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CFG_DRIVERS_NANDFLASH', - "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'ENABLE_UIKIT', 'SW_UART_DEBUG', "HASH_MEM_COPY", -+ 'FT_SINGLE_UART','TPTYPE_FT6X46', - 'ENABLE_ECC', 'SUPPORT_RECOVERY_DISPLAY'], - 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", "osal", "arch_port", "-:testsuite", - "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', - 'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch', - 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'x_vfs_private', -- 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header'], -+ 'ulp_aon', 'hal_l2ram', 'pm_service', 'pm_brandy', 'cmn_header', -+ 'at_cmd' -+ ], - 'ram_component_set': ['pinctrl', 'dfx_set' ,'gpu'] - }, - 'brandy-xts-r': { -@@ -272,7 +277,11 @@ target = { - "SSB_USE_PLL", "VERSION_STANDARD", "BUILD_APPLICATION_SSB", "LIBBOOTLOADER", "LIBCODELOADER", - "LIBCPU_UTILS", "LIBAPP_VERSION", "LIBPANIC", "LIBCONNECTIVITY", "LIBERROR_CODE", "LIBSEC_RANDOM", - "LIBCODELOADER_SSB", "LIBJLINK_LOAD", "LIBLIB_UTILS", "LIBBUILD_VERSION", -- "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER'], -+ 'ENABLE_ECC', -+ "CFG_DRIVERS_NANDFLASH", -+ "NO_TIMEOUT", "CONFIG_UART_BAUD_RATE_DIV_8", 'SW_UART_DEBUG', 'LARGE_BUFFER', -+ 'FT_SINGLE_UART' -+ ], - 'ram_component': ['arch_port', 'hal_l2ram', 'sec_boot', 'libboundscheck', - 'dfx_exception', 'error_code', 'psram', 'osal', 'cmn_header', 'boot_ulp', 'boot_nandflash'], - 'ram_component_set': ['pinctrl'], -diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -index eb3d405d1..a063a8c24 100644 ---- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -+++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -@@ -11,6 +11,13 @@ - #include "gpio_porting.h" - #include "platform_types.h" - -+#ifdef SUPPORT_CAT1_SERVICE -+#include "cat1_ctl.h" -+#endif -+ -+#ifdef ENABLE_CYWEE -+extern void cywee_int_callback(pin_t pin, uintptr_t param); -+#endif - /** - * @addtogroup connectivity_config_boards - * @{ -@@ -46,72 +53,69 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO24 - { HAL_PIO_FUNC_OPI, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_EGPIO25 - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 sdio -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO0 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO1 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO2 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO3 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO4 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_HGPIO5 NC - #if (defined CFG_DRIVERS_NANDFLASH) -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO6 -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_HGPIO7 -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO8 -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_HGPIO9 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO10 -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO11 cs0 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO12 cs1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO13 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO14 -- { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 clk -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO6 -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO10 -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO11 cs0 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO12 cs1 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO13 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO14 -+ { HAL_PIO_FUNC_QSPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_HGPIO15 clk - #else - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO6 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO7 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO8 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO9 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO10 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO11 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 -- { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO12 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO13 -+ { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_HGPIO14 - { HAL_PIO_FUNC_EMMC, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_HGPIO15 emmc clk - #endif -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO0 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO1 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO2 -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO3 -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO0 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO1 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO2 NC -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO3 NC - --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 --#else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 --#endif -+// #if (defined BRANDY_PRODUCT_EVB4) -+ { HAL_PIO_FUNC_SPI0, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO4 NC -+// #else -+ // { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO4 NC -+// #endif - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO5 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO6 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO7 --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO8 --#else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO8 E0B2 VCI_EN --#endif -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO9 -- { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO10 -- { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 evb2 dsp i2c smartpa -- { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 -- { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 touch i2c -- { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 -- { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 -- { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 -- { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 evb4 dsp i2c pa -- { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 -+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC -+ -+ { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC -+ { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA -+ { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c -+ { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA -+ { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ -+ { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor -+ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ -+ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx - { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx -- { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 -- { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO23 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO24 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO25 -- { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO26 -+ { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO21 uart1 rts -+ { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO22 uart1 cts -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO23 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO24 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO25 NC -+ { HAL_PIO_FUNC_SPI2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO26 NC - #if (defined QSPI_DISPLAY) - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO27 - { HAL_PIO_FUNC_QSPI2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO28 -@@ -131,67 +135,80 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO34 huart rx - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO35 - { HAL_PIO_FUNC_UART_HS_UART, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO36 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO38 -+#if 0 -+ { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx -+ { HAL_PIO_FUNC_UART2_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO38 uart rx -+#else -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO37 uart tx NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO38 uart rx NC -+#endif -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L0 NC - -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L0 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L1 i2s1 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L2 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L3 - { HAL_PIO_FUNC_I2S1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L4 -+ - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L5 --#if (defined BRANDY_PRODUCT_EVB4) -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 E0B4 VCI_EN --#else - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L6 i2s0 --#endif - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L7 - { HAL_PIO_FUNC_I2S0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L8 -+ - #if (defined FT_BT_UART) - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L9 uart2 txd - { HAL_PIO_FUNC_UART2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 uart2 rxd - #else -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 - #endif -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 a+g int1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 a+g int2 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L13 i2s2 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L14 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L15 -- { HAL_PIO_FUNC_I2S2_M5, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L16 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L17 dsp i2c -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L18 dsp i2c -- { HAL_PIO_FUNC_BT_FREQ, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 -- { HAL_PIO_FUNC_BT_STATUS, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L20 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L21 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 G_INT1 -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L14 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L15 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà -+ -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ - #ifdef QSPI_DISPLAY - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE - #else - { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE - #endif -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 emmc reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L29 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L31 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 -- -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R3 lcd reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_AGPIO_R4 tp reset -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 als int -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 -- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R10 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC -+ -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ-+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ-+// #if VIB_USE_PWM -+ // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+ // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+// #else -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å -+// #endif -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò -+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable - - #if CORE == APPS - { HAL_PIO_FUNC_INVALID, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // ULP_GPIO0 mode not config -@@ -214,18 +231,77 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { - */ - /** - * @brief Global evb gpio functions. -+ * -+ * -+ * typedef struct { -+ pin_t gpio; -+ hal_gpio_direction_t direction; -+ hal_gpio_level_t level; -+ uint32_t triger; -+ hal_gpio_callback_t callback; -+} hal_gpio_config_t; - */ -+ -+ -+//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -+//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 -+#define DEFAULT_POWERON_CAT1 0 -+ -+//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ - const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { - -- // S_AGPIO_L17 -- { -- S_AGPIO_L17, -- HAL_GPIO_DIRECTION_OUTPUT, -- HAL_GPIO_LEVEL_HIGH, -- 0, -- NULL -- }, -- -+#if DEFAULT_POWERON_CAT1 -+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on -+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+ // S_AGPIO_L28 Cat1 reset ---- low reset -+ { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#else -+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on -+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L28 Cat1 reset ---- low reset -+ { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+#endif -+ // S_AGPIO_L17 HX3507_INT -+ // { S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L12 SDIO_BT -+ { S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_L13 SCLK_BT -+ { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ -+ // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset -+ { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ-+ { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ -+ //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ -+ { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#if 1 //ĬÈÏÕý³£³äµç -+// #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -+// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç -+ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+#else -+ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+ { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#endif -+ -+//ĬÈϹرÕÂí´ï -+ { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -+//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 -+ { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+ -+#ifdef ENABLE_CYWEE -+ /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 ²ÉÓÃtimer ʱÕâЩÖжÏÒªÆÁ±Î*/ -+ { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, -+ //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, -+#endif -+ /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ -+ { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -+#ifdef SUPPORT_CAT1_SERVICE -+ /**cat1 ring input key*/ -+ // { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cat1_ring_isr_callback}, -+ { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cat1_ring_isr_callback}, -+#endif - }; - /** - * @} -diff --git a/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h b/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h -index 18bf0369c..925e372f9 100644 ---- a/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h -+++ b/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h -@@ -157,7 +157,7 @@ - */ - - #define FLASH_START 0x70000000 --#define FLASH_LENGTH 0x800000 -+#define FLASH_LENGTH 0x1000000 //8MB 0x800000, 16MB 0x1000000 - #define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) - - #define FLASH_PAGE_SIZE 4096 -diff --git a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -index 8eefb6bd2..24d6e2bc3 100644 ---- a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -+++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -@@ -31,10 +31,10 @@ - #define BT_IMAGE_PAGES 112 - #define HIFI0_IMAGE_PAGES 112 - #define HIFI0_CODEC_PAGES 320 --#define APP_IMAGE_PAGES 1353 -+#define APP_IMAGE_PAGES 3401 - #define NV_IMAGE_PAGES 4 - #define FOTA_IMAGE_PAGES 3 --#define FOTA_IMAGE_START 0x770000 -+#define FOTA_IMAGE_START 0xFFD000 - #define SSB_FOTA_OFFSET 0x0 - #define XO_CTRIM_VALUR_DEFAULT 0x56 - #define DSP1_IPC_ENABLE NO -@@ -90,8 +90,8 @@ - #define RESOLUTION_WIDTH 368 - #define RESOLUTION_HEIGHT 448 - #else --#define RESOLUTION_WIDTH 454 --#define RESOLUTION_HEIGHT 454 -+#define RESOLUTION_WIDTH 466//454 -+#define RESOLUTION_HEIGHT 466//454 - #endif - - /********************Other module board config********************/ -@@ -142,7 +142,7 @@ - #define BUILTIN_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 - - // 音频内置输出设备 --#define BUILTIN_SND_OUT_PORT 0x12 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S2 枚举 -+#define BUILTIN_SND_OUT_PORT 0x10 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S0 枚举 - #define BUILTIN_SND_OUT_PORT_NUM 1 // 端口个数 - #define BUILTIN_SND_OUT_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define BUILTIN_SND_OUT_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 -@@ -158,32 +158,32 @@ - - // 音频外挂输入设备 - #define EXTERNAL_AI_PORT 1 // 参考 soc_uapi_ai.h 中 UAPI_AI_PORT_I2S1 枚举 --#define EXTERNAL_AI_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 --#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 --#define EXTERNAL_AI_I2S_ATTR_MCLK 4 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_768_FS 枚举 --#define EXTERNAL_AI_I2S_ATTR_BCLK 24 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_24_DIV 枚举 -+#define EXTERNAL_AI_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 -+#define EXTERNAL_AI_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -+#define EXTERNAL_AI_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 -+#define EXTERNAL_AI_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 - #define EXTERNAL_AI_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 - #define EXTERNAL_AI_I2S_ATTR_AUDIO_CH 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_AI_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 - #define EXTERNAL_AI_I2S_ATTR_PCM_DELAY_CYCLE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_1_DELAY 枚举 --#define EXTERNAL_AI_PCM_ATTR_CHANNELS 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -+#define EXTERNAL_AI_PCM_ATTR_CHANNELS 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_AI_PCM_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 --#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 --#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 100 // 每秒帧数 -+#define EXTERNAL_AI_PCM_ATTR_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -+#define EXTERNAL_AI_PCM_ATTR_FRAME_PER_SEC 50 // 每秒帧数 , EG810 pcm 20ms 一帧 - - // 音频外挂输出设备 - #define EXTERNAL_SND_OUT_PORT 0x11 // 参考 soc_uapi_sound.h 中 UAPI_SND_OUT_PORT_I2S1 枚举 --#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 -+#define EXTERNAL_SND_OUT_AUDIO_CHANNEL 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 - #define EXTERNAL_SND_OUT_AUDIO_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 --#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 16000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 -+#define EXTERNAL_SND_OUT_AUDIO_SAMPLE_RATE 8000 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_SAMPLE_RATE_16K 枚举 - #define EXTERNAL_SND_OUT_PORT_NUM 1 // 端口个数 - #define EXTERNAL_SND_OUT_I2S_ATTR_BIT_DEPTH 16 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_BIT_DEPTH_16 枚举 - #define EXTERNAL_SND_OUT_I2S_ATTR_CHANNEL 2 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_CHANNEL_2 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 0 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_STD_MODE 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 4 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_768_FS 枚举 --#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 1 // 1:主设备,0:从设备 -+#define EXTERNAL_SND_OUT_I2S_ATTR_I2S_MODE 1 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_PCM_MODE 枚举 -+#define EXTERNAL_SND_OUT_I2S_ATTR_MCLK 6 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_MCLK_1536_FS 枚举 12.288M /16k = -+#define EXTERNAL_SND_OUT_I2S_ATTR_MASTER 0 // 1:主设备,0:从设备 - #define EXTERNAL_SND_OUT_I2S_ATTR_SAMPLE_RISE_EDGE 1 // 参考 soc_uapi_audio.h 中 pcm_sample_rise_edge 成员 --#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 24 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_24_DIV 枚举 -+#define EXTERNAL_SND_OUT_I2S_ATTR_BCLK 48 // 参考 soc_uapi_audio.h 中 UAPI_AUDIO_I2S_BCLK_48_DIV 枚举 12.288M / 256k = 48 - - // Sleep option - #define CONFIG_PM_TICKLESS_EN YES -@@ -193,12 +193,12 @@ - #define CONFIG_PM_SLEEP_INT_EN NO - - // Double-click the key --#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK NO -+#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK YES - - // LCD VCI_EN --#define VCI_LCD_GPIO S_AGPIO_L6 -+#define VCI_LCD_GPIO S_AGPIO_L24 - #define DISPLAY_TE_GPIO S_AGPIO_L22 --#define RESET_LCD_GPIO S_AGPIO_R3 -+#define RESET_LCD_GPIO S_AGPIO_L27 - - // TP CONFIG - #define ZTW523_I2C_BUS I2C_BUS_1 -@@ -207,6 +207,10 @@ - #define TMA525B_I2C_BUS I2C_BUS_1 - #define TMA525B_INT_GPIO S_AGPIO_R5 - #define TMA525B_RESET_GPIO S_AGPIO_R4 -+#define FT6X46_I2C_BUS I2C_BUS_1 -+#define FT6X46_INT_GPIO S_AGPIO_R5 -+#define FT6X46_RESET_GPIO S_AGPIO_R4 -+ - /** - * @} - */ -diff --git a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -index b6f409070..d2203a1b0 100644 ---- a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -+++ b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -@@ -56,6 +56,12 @@ - #define UARTRESET (M_CTL_RB_BASE + 0x0168) - #define UARTBUS0 0x1 - #define UARTBUS1 0x0 -+ -+/** -+ * CUSTOM_UART_RATE = 500000 可以看蓝牙日志 -+ * 2000000 可以加快下载文件速度 -+*/ -+#define CUSTOM_UART_RATE 2000000 - typedef struct { - pin_mode_t tx_pin_mode; - pin_mode_t rx_pin_mode; -@@ -181,7 +187,11 @@ static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { - NULL, - #endif - { -- .baud_rate = 115200, -+ #ifdef ENABLE_SLIP -+ .baud_rate = 921600, -+ #else -+ .baud_rate = CUSTOM_UART_RATE, -+ #endif - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, -@@ -221,7 +231,7 @@ static uart_config_t g_uart_config[UART_BUS_MAX_NUMBER] = { - log_factory_at_callback, - #endif - { -- .baud_rate = 500000, -+ .baud_rate = CUSTOM_UART_RATE, - .data_bits = UART_DATA_BIT_8, - .parity = UART_PARITY_NONE, - .stop_bits = UART_STOP_BIT_1, -@@ -298,7 +308,13 @@ void irq_uart1_handler(void) - static void at_cmd_uart_rx_callback(const void *buf, uint16_t buf_len, bool remaining) - { - unused(remaining); -+ #ifndef FT_SINGLE_UART - at_cmd_msg_receive_handler((uint8_t *)buf, buf_len); -+ #endif -+ -+ #ifdef ENABLE_SLIP -+ slip_receive_handler((uint8_t *)buf, buf_len); -+ #endif - hal_uart_clear_pending(SW_DEBUG_UART_BUS); - } - #endif -diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -index 54950d78a..7b6075f4f 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -+++ b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c -@@ -9,11 +9,30 @@ - #include "common_def.h" - #include "lcd_config.h" - -+#define LCD_EDO_466X466_SCREEN_ID 0x1133 - #define LCD_EDO_454X454_SCREEN_ID 0xf00 - #define LCD_BOE_454X454_SCREEN_ID 0x500 - #define LCD_SH_240X296_SCREEN_ID 0x101 - #define LCD_BOE_194X368_SCREEN_ID 0x4a00 - -+const combo_dev_cfg_t g_panel_466x466_60_config = { -+ .devno = 0, -+ .lane_id = {0, -1}, -+ .out_mode = OUT_MODE_DSI_CMD, -+ .out_format = OUT_FORMAT_RGB_24BIT, -+ .sync_info = { -+ .hsa_pixels = 10, // hsa 10 pixels -+ .hbp_pixels = 10, // hbp 10 pixels -+ .hact_pixels = 466, // hact 466 pixels -+ .hfp_pixels = 10, // hfp 10 pixels -+ .vsa_lines = 4, // vsa 4 lines -+ .vbp_lines = 12, // vbp 12 lines -+ .vact_lines = 466, // vact 466 lines -+ .vfp_lines = 10, // vfp 10 lines -+ }, -+ .phy_data_rate = 480, // 480Mbps -+ .pixel_clk = 20000, // 20000KHz -+}; - const combo_dev_cfg_t g_panel_454x454_60_config = { - .devno = 0, - .lane_id = {0, -1}, -@@ -67,6 +86,14 @@ const lcd_cmd_sequ g_common_cmd_display_off[] = { - {1, 1, {0x10}, 120}, /* sleep in */ - }; - -+/* display off sequence for common lcd */ -+const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { -+ {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ -+ {1, 1, {0x28}, 0}, /* display off */ -+ {1, 1, {0x10}, 120}, /* sleep in */ -+ {1, 2, {0x4f, 0x01}, 0}, /* 进deepstandby 状态 */ -+}; -+ - /* sleep in sequence for common lcd */ - const lcd_cmd_sequ g_common_cmd_sleep_in[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ -@@ -110,6 +137,20 @@ lcd_cmd_sequ g_common_cmd_brightness[] = { - {1, 2, {0xfe, 0x00}, 0}, - {1, 2, {0x51, 0xff}, 0}, - }; -+const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = { -+ {1, 2, {0xfe, 0x00}, 0}, -+ {1, 2, {0x3a, 0x77}, 0}, -+ {1, 2, {0x35, 0x00}, 0}, -+ {1, 2, {0x53, 0x20}, 0}, -+ // {1, 2, {0x51, 0xff}, 0}, -+ {1, 2, {0x63, 0xff}, 0}, -+ {1, 5, {0x2A, 0x00, 0x06, 0x01, 0xd7}, 0}, -+ {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xd1}, 0}, -+ {1, 3, {0x44, 0x01, 0xc5}, 0}, -+ {1, 1, {0x11}, 120}, -+ {1, 1, {0x29}, 0}, -+}; -+ - - /* init sequence for EDO 454*454 lcd */ - const lcd_cmd_sequ g_edo_454x454_screen_init_on[] = { -@@ -193,6 +234,11 @@ const lcd_cmds_sequ g_display_off_cmds = { - .cmd_cnt = array_size(g_common_cmd_display_off), - }; - -+const lcd_cmds_sequ g_466x466_display_off_cmds = { -+ .cmd = g_common_466x466_cmd_display_off, -+ .cmd_cnt = array_size(g_common_466x466_cmd_display_off), -+}; -+ - const lcd_cmds_sequ g_idle_in_cmds = { - .cmd = g_common_cmd_idle_in, - .cmd_cnt = array_size(g_common_cmd_idle_in), -@@ -218,6 +264,11 @@ const lcd_cmds_sequ g_brightness_cmds = { - .cmd_cnt = array_size(g_common_cmd_brightness), - }; - -+const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = { -+ .cmd = g_edo_466x466_screen_init_on, -+ .cmd_cnt = array_size(g_edo_466x466_screen_init_on), -+}; -+ - const lcd_cmds_sequ g_edo_454x454_screen_init_on_cmds = { - .cmd = g_edo_454x454_screen_init_on, - .cmd_cnt = array_size(g_edo_454x454_screen_init_on), -@@ -249,6 +300,25 @@ const lcd_cmds_sequ g_sleep_out_cmds = { - }; - - const lcd_drv_cfg g_lcd_driver_ops[] = { -+ { -+ .bus_type = BUS_DISPLAY_MIPI, -+ .bus_cfg = &g_panel_466x466_60_config, -+ .x_start = 0x6, -+ .y_start = 0, -+ .fps = 60, -+ .lcd_id = LCD_EDO_466X466_SCREEN_ID, -+ .display_on_cmds = &g_edo_466x466_screen_init_on_cmds, -+ .display_off_cmds = &g_466x466_display_off_cmds, -+ .enter_idle_cmds = &g_idle_in_cmds, -+ .exit_idle_cmds = &g_idle_out_cmds, -+ .te_on_cmds = &g_te_on_cmds, -+ .te_off_cmds = &g_te_off_cmds, -+ .set_brightnes_cmds = &g_brightness_cmds, -+ .sleep_in_cmds = &g_sleep_in_cmds, -+ .sleep_out_cmds = &g_sleep_out_cmds, -+ .lcd_id_info.reg_addr = 0x04, -+ .lcd_id_info.read_len = 3, -+ }, - { - .bus_type = BUS_DISPLAY_MIPI, - .bus_cfg = &g_panel_454x454_60_config, -diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -index 039f45c48..064395295 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -+++ b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c -@@ -12,7 +12,7 @@ - #include "gpio.h" - #include "pinctrl_porting.h" - #include "product.h" -- -+#include "pinctrl.h" - static void lcd_drv_power_on(void) - { - #ifndef QSPI_DISPLAY -@@ -27,16 +27,35 @@ static void lcd_drv_power_on(void) - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_HIGH); - uapi_tcxo_delay_ms(10); /* delay 10 ms */ - } -- -+#define USE_OUTPUT_CTL 1 - static void lcd_drv_power_off(void) - { -+#if USE_OUTPUT_CTL -+ //uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_OUTPUT); -+ //uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); -+ #ifndef QSPI_DISPLAY -+ uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); -+ uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); -+ #endif -+ uapi_tcxo_delay_ms(10); /* delay 10 ms */ -+ int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO); -+ int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO); -+ printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -+#else - uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); -- uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); --#ifndef QSPI_DISPLAY -+ uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿ -+ uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN); -+ #ifndef QSPI_DISPLAY - uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_INPUT); --#endif -+ uapi_pin_set_pull(VCI_LCD_GPIO, PIN_PULL_DOWN); -+ #endif - uapi_tcxo_delay_ms(10); /* delay 10 ms */ -+ int resetvalue = uapi_gpio_get_val(RESET_LCD_GPIO); -+ int lcd_envalue = uapi_gpio_get_val(VCI_LCD_GPIO); -+ printf("Input RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); -+#endif -+ - } - - static lcd_drv_private g_lcd_private_api = { -diff --git a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -index b535f5555..56f8542af 100644 ---- a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -+++ b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -@@ -173,7 +173,8 @@ static ext_errno lcd_get_ops(void) - } - } - -- g_lcd_info.brightness = DEFAULT_BRIGHTNESS; -+ if (g_lcd_info.brightness == 0) -+ g_lcd_info.brightness = DEFAULT_BRIGHTNESS; - - return EXT_ERR_SUCCESS; - fail: -diff --git a/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt b/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -index 6782d9cc1..6971096df 100644 ---- a/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -+++ b/code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -@@ -21,6 +21,12 @@ set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_drv1.c - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_touch1.c - ) -+elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -+set(SOURCES ${SOURCES} -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_ctrl.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_drv1.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch/ft6x46_touch1.c -+) - else() - set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch/ztw523_ctrl.c -@@ -41,6 +47,12 @@ set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR}/ztw523_touch - ${ROOT_DIR}/middleware/services/gui/hal/input/include - ) -+elseif("TPTYPE_FT6X46" IN_LIST DEFINES) -+set(PUBLIC_HEADER -+ ${CMAKE_CURRENT_SOURCE_DIR} -+ ${CMAKE_CURRENT_SOURCE_DIR}/ft6x46_touch -+ ${ROOT_DIR}/middleware/services/gui/hal/input/include -+) - else() - set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR} -diff --git a/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c b/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -index e729a5a34..4591a7d7e 100644 ---- a/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -+++ b/code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -@@ -18,6 +18,9 @@ - #elif defined(TPTYPE_ZTW523) - #include "ztw523_drv1.h" - #include "ztw523_ctrl.h" -+#elif defined(TPTYPE_FT6X46) -+#include "ft6x46_drv1.h" -+#include "ft6x46_ctrl.h" - #else - #include "ztw523_drv1.h" - #include "ztw523_ctrl.h" -@@ -31,6 +34,10 @@ - #define TOUCH_I2C_BUS ZTW523_I2C_BUS - #define TOUCH_INT_GPIO ZTW523_INT_GPIO - #define TOUCH_RESET_GPIO ZTW523_RESET_GPIO -+#elif defined(TPTYPE_FT6X46) -+#define TOUCH_I2C_BUS FT6X46_I2C_BUS -+#define TOUCH_INT_GPIO FT6X46_INT_GPIO -+#define TOUCH_RESET_GPIO FT6X46_RESET_GPIO - #else - #define TOUCH_I2C_BUS ZTW523_I2C_BUS - #define TOUCH_INT_GPIO ZTW523_INT_GPIO -@@ -113,7 +120,12 @@ static void report_or_enqueue_event(input_event_info* touch_info, struct ts_driv - static void report_event_to_power_manager(input_event_info *touch_info) - { - if (g_power_manager_cb != NULL) { -- g_power_manager_cb(touch_info->tp_event, 0); -+ input_dev_data_t data; -+ convert_touch_info(&data, touch_info); -+ if (data.state == INDEV_STATE_UNKNOWN) { -+ return; -+ } -+ g_power_manager_cb(data.state, 0); - } - return; - } -@@ -422,8 +434,15 @@ void touch_screen_suspend(void) - touch_peripheral_api *touch_ptr = touch_screen_get_api(); - ext_errno ret = touch_ptr->touch_sleep(); - if (ret != EXT_ERR_SUCCESS) { tp_err("touch sleep ret=0x%x", ret); } -+#if defined(TPTYPE_FT6X46) -+ if (ft6x46_suspend() == EXT_ERR_SUCCESS){ -+ i2c_save_reg(TOUCH_I2C_BUS); -+ uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -+ } -+#else - i2c_save_reg(TOUCH_I2C_BUS); - uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt -+#endif - } - - void touch_screen_resume(void) -@@ -437,6 +456,8 @@ void touch_screen_resume(void) - if (ret != EXT_ERR_SUCCESS) { tp_err("touch resume ret=0x%x", ret); } - #elif defined(TPTYPE_ZTW523) - ztw523_resume(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_resume(); - #else - ztw523_resume(); - #endif -@@ -461,6 +482,8 @@ void touch_screen_restart(void) - tma525b_resume(); - #elif defined(TPTYPE_ZTW523) - ztw523_resume(); -+#elif defined(TPTYPE_FT6X46) -+ ft6x46_resume(); - #else - ztw523_resume(); - #endif -diff --git a/code/sdk/tools/pkg/chip_packet/brandy/packet.py b/code/sdk/tools/pkg/chip_packet/brandy/packet.py -index a7ce8a108..b4451d336 100644 ---- a/code/sdk/tools/pkg/chip_packet/brandy/packet.py -+++ b/code/sdk/tools/pkg/chip_packet/brandy/packet.py -@@ -78,10 +78,14 @@ def make_all_in_one_packet(pack_style_str): - partition = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") - partition_bx = partition + "|0x7004F000|0x1000|100" - nv = os.path.join(SDK_DIR, "output", "brandy", "nv_bin", "brandy_all_nv.bin") -- nv_bx = nv + "|0x707F9000|0x4000|100" -- -+ # nv_bx = nv + "|0x707F9000|0x4000|100" -+ nv_bx = nv + "|0x70FF9000|0x4000|100" -+ - app = os.path.join(application_dir, "application.bin") -- app_bx = app + "|0x702B0000|0x549000|18" -+ # app_bx = app + "|0x702B0000|0x549000|18" #origin -+ # define APP_IMAGE_PAGES (1353+2560) -+ # 2560*4*1024= 0xA00000 -+ app_bx = app + "|0x702B0000|0xD49000|18" - - bt = os.path.join(bin_dir, "bt.bin") - bt_bx = bt + "|0x70090000|0x70000|20" diff --git a/fd230_driver_patch/20240628.170448/diff/modified_or_new_files.txt b/fd230_driver_patch/20240628.170448/diff/modified_or_new_files.txt deleted file mode 100644 index da534baea..000000000 --- a/fd230_driver_patch/20240628.170448/diff/modified_or_new_files.txt +++ /dev/null @@ -1,22 +0,0 @@ -autobuild.sh -code/sdk/application/audio/vendor/CMakeLists.txt -code/sdk/application/audio/vendor/aw88166/aw88166.c -code/sdk/application/brandy/brandy_standard/thread_pri_init.c -code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp -code/sdk/build/config/target_config/brandy/config.py -code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h -code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h -code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h -code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c -code/sdk/drivers/drivers/driver/lcd/lcd_config.c -code/sdk/drivers/drivers/driver/lcd/lcd_private.c -code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.c -code/sdk/drivers/drivers/driver/touch/CMakeLists.txt -code/sdk/drivers/drivers/driver/touch/touch_screen_drv.c -code/sdk/tools/pkg/chip_packet/brandy/packet.py -cat1modem/ -code/sdk/build/config/target_config/brandy/mk_fs_image/fs/user/dial/ -code/sdk/drivers/drivers/driver/touch/ft6x46_touch/ -fd230_driver_patch/20240628.170305/ -gen_fs_otapkg.sh -mkota.sh