From: SnickerSun Date: Mon, 8 Apr 2024 13:02:43 +0000 (+0800) Subject: lcd休眠下sleep指令 X-Git-Tag: release_V1.2.70_20241020_135402~1200^2~17^2~2 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=e4cdec168a70cfdb96bde4c927c007ebce9531a3;p=mirrors%2FFD230.git lcd休眠下sleep指令 --- diff --git a/code/sdk/drivers/peripheral/lcd/lcd_config.c b/code/sdk/drivers/peripheral/lcd/lcd_config.c index 0c9284eca..1687a7a1f 100644 --- a/code/sdk/drivers/peripheral/lcd/lcd_config.c +++ b/code/sdk/drivers/peripheral/lcd/lcd_config.c @@ -86,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 */ @@ -225,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), @@ -294,7 +307,7 @@ const lcd_drv_cfg g_lcd_driver_ops[] = { .fps = 60, .lcd_id = LCD_EDO_466X466_SCREEN_ID, .display_on_cmds = &g_edo_466x466_screen_init_on_cmds, - .display_off_cmds = &g_display_off_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, diff --git a/code/sdk/drivers/peripheral/lcd/lcd_private.c b/code/sdk/drivers/peripheral/lcd/lcd_private.c index 52cf9a60d..0554c31b1 100644 --- a/code/sdk/drivers/peripheral/lcd/lcd_private.c +++ b/code/sdk/drivers/peripheral/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); //设置成Input,是为了解决漏电 ?? -#ifndef QSPI_DISPLAY + 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 = {