From db3e1a0234bb42f3921cd7bd85794c7b8dd59f47 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Sat, 7 Dec 2024 14:31:48 +0800 Subject: [PATCH] =?utf8?q?=E6=B7=BB=E5=8A=A0AT^GPSON=20=E6=8C=87=E4=BB=A4?= =?utf8?q?=20=E9=85=8D=E7=BD=AEfunction=E9=94=AE=20=E9=85=8D=E7=BD=AEU8=20?= =?utf8?q?LCD=EF=BC=8CTouch?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy/brandy_standard/input_app.c | 2 +- .../wstp/at_service/app/app_at_process.c | 72 ++++++++++++++++++- .../wstp/at_service/app/app_cmd_manager.c | 10 +++ .../wstp/at_service/app/app_msg_manager.h | 1 + .../config/target_config/brandy/config.py | 2 +- .../brandy_evb/board_config/board_lt22.h | 26 ++++--- .../boards/brandy_evb/board_config/board_u8.h | 20 ++++-- .../product/product_evb4_standard.h | 10 +++ .../drivers/drivers/driver/lcd/lcd_common.c | 14 +++- .../drivers/drivers/driver/lcd/lcd_config.c | 70 +++++++++++++++++- .../services/gpu/drv/dpu/hal/dpu_hal_crg.c | 6 +- 11 files changed, 212 insertions(+), 21 deletions(-) diff --git a/code/sdk/application/brandy/brandy_standard/input_app.c b/code/sdk/application/brandy/brandy_standard/input_app.c index 87c6c9abd..287be45f2 100644 --- a/code/sdk/application/brandy/brandy_standard/input_app.c +++ b/code/sdk/application/brandy/brandy_standard/input_app.c @@ -110,7 +110,7 @@ uint32_t g_button_press_time = BUTTON_PRESS_TIME_1S; button_map_t g_brandy_button_pin_map[BUTTON_PIN_MAP_MAX] = { { PIN_NONE, BUTTON_PWR }, - { PIN_NONE, BUTTON_1 }, + { S_AGPIO_R10, BUTTON_1 }, { PIN_NONE, BUTTON_2 }, { PIN_NONE, BUTTON_3 }, { PIN_NONE, BUTTON_4 }, diff --git a/code/sdk/application/wstp/at_service/app/app_at_process.c b/code/sdk/application/wstp/at_service/app/app_at_process.c index c47183bb8..61f2a8912 100644 --- a/code/sdk/application/wstp/at_service/app/app_at_process.c +++ b/code/sdk/application/wstp/at_service/app/app_at_process.c @@ -1856,6 +1856,71 @@ uint32_t at_nand_set_mode(uint8_t *data, uint32_t data_len) return ERRCODE_SUCC; } +#include "gpio.h" +uint32_t gps_on(uint8_t *data, uint32_t data_len) +{ + errcode_t ret=0; +#if defined(BOARD_U8) +/* +S_AGPIO_L23 GPS_BAT_ON +S_AGPIO_L30 GPS_PWRON +S_AGPIO_L28 GPS_1V8 +*/ + ret=uapi_gpio_set_dir(S_AGPIO_L23,GPIO_DIRECTION_OUTPUT); + if (ret != ERRCODE_SUCC) PRINT("set_dir S_AGPIO_L23,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_AGPIO_L30,GPIO_DIRECTION_OUTPUT); + if (ret != ERRCODE_SUCC) PRINT("set_dir S_AGPIO_L30,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_AGPIO_L28,GPIO_DIRECTION_OUTPUT); + if (ret != ERRCODE_SUCC) PRINT("set_dir S_AGPIO_L28,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_L23, GPIO_LEVEL_HIGH); // crystal sw + PRINT("GPS_BAT_ON set_value S_AGPIO_L23 GPIO_LEVEL_HIGH ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_L28 , GPIO_LEVEL_HIGH); // gps V3.3 sw en + PRINT("GPS_1V8 set_value S_AGPIO_L28 GPIO_LEVEL_HIGH ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_L30, GPIO_LEVEL_LOW); //gps reset + PRINT("GPS_PWRON set_value S_AGPIO_L30 GPIO_LEVEL_LOW ret %d\n",ret); + + osDelay(500); + ret=uapi_gpio_set_val(S_AGPIO_L30, GPIO_LEVEL_HIGH); //gps reset + PRINT("GPS_PWRON set_value S_AGPIO_L30 GPIO_LEVEL_HIGH ret %d\n",ret); +#elif defined (BOARD_LT22) || defined (BOARD_W9) + + // ret=uapi_gpio_set_dir(S_AGPIO_L16,GPIO_DIRECTION_OUTPUT); + // PRINT("set_dir S_AGPIO_L16,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_AGPIO_L32,GPIO_DIRECTION_OUTPUT); + PRINT("set_dir S_AGPIO_L32,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_AGPIO_L20,GPIO_DIRECTION_OUTPUT); + PRINT("set_dir S_AGPIO_L20,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_AGPIO_R9,GPIO_DIRECTION_OUTPUT); + PRINT("set_dir S_AGPIO_R9,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + ret=uapi_gpio_set_dir(S_HGPIO0,GPIO_DIRECTION_OUTPUT); + PRINT("set_dir S_HGPIO0,GPIO_DIRECTION_OUTPUT ret %d\n",ret); + + ret=uapi_gpio_set_val(S_HGPIO0, GPIO_LEVEL_HIGH); // crystal sw + PRINT("GPS_CRYSTAL set_value S_HGPIO0 GPIO_LEVEL_HIGH ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_L20, GPIO_LEVEL_HIGH); // gps V1.8 sw en + PRINT("GPS_1V8 set_value S_AGPIO_L20 GPIO_LEVEL_HIGH ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_R9, GPIO_LEVEL_HIGH); // gps V3.3 sw en + PRINT("GPS_BAT_ON set_value S_AGPIO_R9 GPIO_LEVEL_HIGH ret %d\n",ret); + + ret=uapi_gpio_set_val(S_AGPIO_L32, GPIO_LEVEL_LOW); //gps reset + PRINT("GPS_PWRON set_value S_AGPIO_L32 GPIO_LEVEL_LOW ret %d\n",ret); + osDelay(500); + ret=uapi_gpio_set_val(S_AGPIO_L32, GPIO_LEVEL_HIGH); //gps reset + PRINT("GPS_PWRON set_value S_AGPIO_L32 GPIO_LEVEL_HIGH ret %d\n",ret); + + + // PRINT("switch debug set_value S_AGPIO_L16 GPIO_LEVEL_HIGH ret %d\n",ret); + // ret=uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_HIGH); // gps dl sw + // PRINT("set_value S_AGPIO_L16 GPIO_LEVEL_HIGH ret %d\n",ret); + +#endif + return ERRCODE_SUCC; +} uint32_t lcd_fill(uint8_t *data, uint32_t data_len) { char *ptr = (char *)data; @@ -1942,7 +2007,10 @@ uint32_t mcu_pm_set_mcu_dynamic_power(uint8_t *para, uint32_t para_len) } return ERRCODE_SUCC; } - +static void button1_callback_press(void) +{ + PRINT("button1 key click."NEWLINE); +} static void button_callback_press(void) { PRINT("power key press."NEWLINE); @@ -2054,6 +2122,7 @@ uint32_t mcu_button_sample(uint8_t *para, uint32_t para_len) unused(para_len); uapi_button_register_event_cb(button_callback_press, BUTTON_PWR_PRESS); + uapi_button_register_event_cb(button1_callback_press, BUTTON1_CLICKUP); uapi_button_register_event_cb(button_callback_click, BUTTON_PWR_CLICKUP); uapi_button_register_event_cb(button_callback_click_2, BUTTON_PWR_CLICKUP_2); @@ -2701,6 +2770,7 @@ static const app_process_table g_app_funcs[] = { { PMMODEGET, mcu_pm_dfx_mode }, { GETCURSEC, mcu_dfx_get_cur_second}, { LCDFILL, lcd_fill }, + { GPSON, gps_on }, { GETIDS, get_ids }, { LCDLIGHT, lcd_test_light }, { RESUMETOUCH, mcu_pm_no_resume_touch }, diff --git a/code/sdk/application/wstp/at_service/app/app_cmd_manager.c b/code/sdk/application/wstp/at_service/app/app_cmd_manager.c index 641ff3dbe..5a59f5eb9 100644 --- a/code/sdk/application/wstp/at_service/app/app_cmd_manager.c +++ b/code/sdk/application/wstp/at_service/app/app_cmd_manager.c @@ -418,6 +418,15 @@ static uint32_t app_test_lcd_fill(uint8_t *para, uint32_t para_len, char *str_cm app_pkg_msg_send(LCDFILL, DIAG_CONTROL_FALSE, para, para_len); return ERRCODE_SUCC; } +static uint32_t app_gpson(uint8_t *para, uint32_t para_len, char *str_cmd) +{ + unused(str_cmd); + if (para == NULL) { + return ERRCODE_FAIL; + } + app_pkg_msg_send(GPSON, DIAG_CONTROL_FALSE, para, para_len); + return ERRCODE_SUCC; +} static uint32_t app_get_ids(uint8_t *para, uint32_t para_len, char *str_cmd) { @@ -1045,6 +1054,7 @@ static const at_cmd_table_t g_app_cmd[] = { { "AT^PMMODEGET", app_test_pm_dfx_mode, "" }, { "AT^GETCURSEC", app_get_cur_second, "" }, { "AT^LCDFILL", app_test_lcd_fill, "" }, + { "AT^GPSON", app_gpson, "" }, { "AT^LCDLIGHT", app_test_lcd_light, "" }, { "AT^GETIDS", app_get_ids, "" }, { "AT^STOUCHRESUME", app_set_touch_resume_flag, "" }, diff --git a/code/sdk/application/wstp/at_service/app/app_msg_manager.h b/code/sdk/application/wstp/at_service/app/app_msg_manager.h index 175ea4a09..ab8fc8036 100644 --- a/code/sdk/application/wstp/at_service/app/app_msg_manager.h +++ b/code/sdk/application/wstp/at_service/app/app_msg_manager.h @@ -114,6 +114,7 @@ typedef enum { AUTOOTASHOWMAC = 0x53, PERFSTART = 0x54, PERFSTOP = 0x55, + GPSON = 0x56, MSG_ID_MAX_BUTT, } app_msg_id; diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index 444cfe7b2..7286d62c6 100644 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -368,7 +368,7 @@ target = { 'FT_SINGLE_UART', 'SUPPORT_AUTO_OTA_SERVER', 'CONFIG_DFX_SUPPORT_DIAG_UP_MACHINE=1', - 'TPTYPE_FT6X46', + 'TPTYPE_CST86XX', 'NANDFLASH_DS35X' ], #添加自定义应用 diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h index 11fe9869c..4f2a75902 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h @@ -47,7 +47,7 @@ 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 NC + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, 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 @@ -127,8 +127,8 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { #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 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO35 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // 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 @@ -257,9 +257,9 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #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 SDIO_BT 光电开关 sd { S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L13 SCLK_BT + // S_AGPIO_L13 SCLK_BT 光电开关 sc { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, // S_AGPIO_L26 心率复位 PPG reset @@ -272,11 +272,11 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #if 0 //默认正常充电 // #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 }, + // { 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 }, + // { 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 //默认关闭马达 @@ -294,9 +294,15 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #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}, + // { S_AGPIO_L31, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cat1_ring_isr_callback}, #endif +//GNSS default on —— high + // { S_AGPIO_L16, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, // gps dl sw + // { S_AGPIO_L32, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //gps reset + // { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //gps V1.8 sw en + // { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //gps V3.3 sw en + /**S_AGPIO_L32 GPO gps reset*/ // { S_AGPIO_L32, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h index 5c1570891..f4acaf5c6 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h @@ -185,7 +185,7 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { #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_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 GPS_BAT_ON 拉高有效 { 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 @@ -193,10 +193,10 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { #ifdef SUPPORT_A5133_SERVICE //{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L28 CAT_1复位 CAT1_RESET_N 拉低有效 #else - { 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_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 GPS_1V8 拉高有效 #endif { 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_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 GPS PWRON 拉高有效 #ifdef SUPPORT_A5133_SERVICE { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L31 控制A5133开关 #else @@ -253,9 +253,21 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { } hal_gpio_config_t; */ - +/* +S_AGPIO_L23 GPS_BAT_ON +S_AGPIO_L30 GPS_PWRON +S_AGPIO_L28 GPS_1V8 +MPIO_19 UART1_TX +MPIO_20 UART1_RX +S_AGPIO_L31 GPS_WK_HOST +*/ //需要配置默认输出的,以及需要配置默认输入中断函数的。 const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { +/***GPS Power*/ + { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //GPS_BAT_ON + { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //GPS_1V8 + { S_AGPIO_L30, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //S_AGPIO_L30 + // S_AGPIO_L17 HX3507_INT // { S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, // S_AGPIO_L12 SDIO_BT 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 7d48d6f0a..8245c9d58 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 @@ -104,8 +104,16 @@ #define RESOLUTION_WIDTH 368 #define RESOLUTION_HEIGHT 448 #else + +#if defined(BOARD_U8) +#define RESOLUTION_WIDTH 410//466//454 +#define RESOLUTION_HEIGHT 502//466//454 +// #elif defined(BOARD_LT22) || defined (BOARD_W9) || defined(BOARD_FD230) +#else #define RESOLUTION_WIDTH 466//454 #define RESOLUTION_HEIGHT 466//454 + +#endif #endif /********************Other module board config********************/ @@ -230,6 +238,8 @@ #define CST86XX_INT_GPIO S_AGPIO_R5 #define CST86XX_RESET_GPIO S_AGPIO_R4 +//GNSS Config +#define GNSS_RESET_PIN // TRACK MODE #define SND_TRACK_MODE_BT_MUSIC 0 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_STEREO 枚举 diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_common.c b/code/sdk/drivers/drivers/driver/lcd/lcd_common.c index 5ec3abeba..e9a9de30e 100644 --- a/code/sdk/drivers/drivers/driver/lcd/lcd_common.c +++ b/code/sdk/drivers/drivers/driver/lcd/lcd_common.c @@ -230,7 +230,7 @@ static ext_errno lcd_drv_get_chip_id(uint32_t *id) if (ret == EXT_ERR_SUCCESS) { break; } - } + } if (*((uint32_t *)buff) == lcd_ops[i].lcd_id) { *id = *((uint32_t *)buff); g_lcd_config = lcd_get_driver_config(*id); @@ -242,7 +242,17 @@ static ext_errno lcd_drv_get_chip_id(uint32_t *id) return EXT_ERR_SUCCESS; } } - +#if defined(BOARD_U8) + *id = 0xFFFF;//LCD_EDO_466X466_SCREEN_ID; + g_lcd_config = lcd_get_driver_config(*id); + if (g_lcd_config == NULL) { + lcd_err("last Get default 0xFFFF Lcd config fail.\r\n"); + return EXT_ERR_LCD_INVALID_SCREEN_OPS; + }else{ + lcd_err("last Get default 0xFFFF Lcd config .\r\n"); + return EXT_ERR_SUCCESS; + } +#endif return EXT_ERR_LCD_GET_ID_FAIL; } diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c index 2762a22a8..573388375 100644 --- a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c +++ b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c @@ -9,12 +9,46 @@ #include "common_def.h" #include "lcd_config.h" +#define LCD_EDO_502X410_SCREEN_ID 0xFFFF //CH13613 #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 +/* +pixel_clk 需要大于 sync_info 中的(hsa+hbp+hact+hfp)* +(vsa+vbp+vact+vfp)* 60 / 1000 (帧率配置 60fps) + +. phy_data_rate=pixel_clk * 24 / 1000, 如果计算出来的值大于 500,需要调 +整降低帧率,减小 pixel_clk。 + +当修改了 pixel_clk 时,需要同步修改 +“middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c”中函数 +dpu_crg_set_vedio_mclk_div_ctl 的 dpu_mclk_div 值,该值的后两位需要与 +pixel_clk 的 16 进制值保持一致,如下 pixel_clk=20000kHZ,换算为 MHZ 为 20, +对应的 16 进制为 0x14。 +*/ +const combo_dev_cfg_t g_panel_502x410_50_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 4 pixels + .hbp_pixels = 32, // hbp 32 pixels + .hact_pixels = 410, // hact 410 pixels + .hfp_pixels = 32, // hfp 32 pixels + .vsa_lines = 2, // vsa 4 lines + .vbp_lines = 7, // vbp 7 lines + .vact_lines = 502, // vact 502 lines + .vfp_lines = 7, // vfp 7 lines + }, + //pixel_clk*24/1000 + .phy_data_rate = 300, // 480Mbps + // (4+32+32+410)*(2+7+7+502)*50/1000 + .pixel_clk = 12380, // 20000KHz +}; const combo_dev_cfg_t g_panel_466x466_60_config = { .devno = 0, .lane_id = {0, -1}, @@ -137,6 +171,18 @@ lcd_cmd_sequ g_common_cmd_brightness[] = { {1, 2, {0xfe, 0x00}, 0}, {1, 2, {0x51, 0xff}, 0}, }; + +const lcd_cmd_sequ g_edo_502x410_screen_init_on[] = { + {1, 5, {0x2A, 0x00, 0x04, 0x01, 0x9d}, 0}, + {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xf5}, 0}, + {1, 2, {0x35, 0x00}, 0}, + {1, 2, {0x36, 0x00}, 0}, + {1, 2, {0x67, 0x01}, 0}, + {1, 2, {0x68, 0x01}, 0}, + {1, 2, {0x11, 0x00}, 120}, + {1, 2, {0x29, 0x00}, 120}, +}; + const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = { {1, 2, {0xfe, 0x00}, 0}, {1, 2, {0x3a, 0x77}, 0}, @@ -263,7 +309,10 @@ 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_502x410_screen_init_on_cmds = { + .cmd = g_edo_502x410_screen_init_on, + .cmd_cnt = array_size(g_edo_502x410_screen_init_on), +}; 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), @@ -300,6 +349,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_502x410_50_config, + .x_start = 0x04, + .y_start = 0, + .fps = 60, + .lcd_id = LCD_EDO_502X410_SCREEN_ID, + .display_on_cmds = &g_edo_502x410_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_466x466_60_config, diff --git a/code/sdk/middleware/services/gpu/drv/dpu/hal/dpu_hal_crg.c b/code/sdk/middleware/services/gpu/drv/dpu/hal/dpu_hal_crg.c index aa1282ee5..8f5e05482 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/hal/dpu_hal_crg.c +++ b/code/sdk/middleware/services/gpu/drv/dpu/hal/dpu_hal_crg.c @@ -67,7 +67,11 @@ td_void dpu_crg_set_vedio_mclk_div_ctl(td_bool mclk_cken) /* bit[26]:enable, bit[25:13]:div_denom, bit[12:0]:div_num */ volatile u_vedio_crg_mclk_div_ctl mclk_div_ctl; uapi_reg_read(CRG_VEDIO_CRG_MCLK_DIV_CTL, mclk_div_ctl.u32); - mclk_div_ctl.bits.dpu_mclk_div = 0x4126014; /* 147M * 20/147 = 20M */ + #if defined(BOARD_U8) + mclk_div_ctl.bits.dpu_mclk_div = 0x412600C;//0x4126014; /* 147M * 20/147 = 20M */ + #else + mclk_div_ctl.bits.dpu_mclk_div = 0x4126014;//0x412600C;/* 147M * 20/147 = 20M */ + #endif mclk_div_ctl.bits.dpu_mclk_cken = mclk_cken; uapi_reg_write(CRG_VEDIO_CRG_MCLK_DIV_CTL, mclk_div_ctl.u32); } -- 2.17.1