添加AT^GPSON 指令 1502/1 1502/head 1515/target/1
authorSnickerSun <snickersun@163.com>
Sat, 7 Dec 2024 06:31:48 +0000 (14:31 +0800)
committerSnickerSun <snickersun@163.com>
Sat, 7 Dec 2024 06:31:48 +0000 (14:31 +0800)
配置function键
配置U8 LCD,Touch

code/sdk/application/brandy/brandy_standard/input_app.c
code/sdk/application/wstp/at_service/app/app_at_process.c
code/sdk/application/wstp/at_service/app/app_cmd_manager.c
code/sdk/application/wstp/at_service/app/app_msg_manager.h
code/sdk/build/config/target_config/brandy/config.py
code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h
code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h
code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h
code/sdk/drivers/drivers/driver/lcd/lcd_common.c
code/sdk/drivers/drivers/driver/lcd/lcd_config.c
code/sdk/middleware/services/gpu/drv/dpu/hal/dpu_hal_crg.c

index 87c6c9a..287be45 100644 (file)
@@ -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 },
index c47183b..61f2a89 100644 (file)
@@ -1856,6 +1856,71 @@ uint32_t at_nand_set_mode(uint8_t *data, uint32_t data_len)
     return ERRCODE_SUCC;\r
 }\r
 \r
+#include "gpio.h"\r
+uint32_t gps_on(uint8_t *data, uint32_t data_len)\r
+{\r
+     errcode_t ret=0;\r
+#if defined(BOARD_U8)\r
+/*\r
+S_AGPIO_L23  GPS_BAT_ON\r
+S_AGPIO_L30  GPS_PWRON\r
+S_AGPIO_L28    GPS_1V8\r
+*/\r
+    ret=uapi_gpio_set_dir(S_AGPIO_L23,GPIO_DIRECTION_OUTPUT);\r
+    if (ret != ERRCODE_SUCC)  PRINT("set_dir S_AGPIO_L23,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_AGPIO_L30,GPIO_DIRECTION_OUTPUT);\r
+    if (ret != ERRCODE_SUCC)  PRINT("set_dir S_AGPIO_L30,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_AGPIO_L28,GPIO_DIRECTION_OUTPUT);\r
+    if (ret != ERRCODE_SUCC)  PRINT("set_dir S_AGPIO_L28,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_AGPIO_L23, GPIO_LEVEL_HIGH);   // crystal sw\r
+    PRINT("GPS_BAT_ON  set_value S_AGPIO_L23 GPIO_LEVEL_HIGH  ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_AGPIO_L28 , GPIO_LEVEL_HIGH);   // gps V3.3 sw en\r
+    PRINT("GPS_1V8 set_value S_AGPIO_L28  GPIO_LEVEL_HIGH ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_AGPIO_L30, GPIO_LEVEL_LOW);   //gps reset\r
+    PRINT("GPS_PWRON set_value S_AGPIO_L30 GPIO_LEVEL_LOW ret %d\n",ret);\r
+\r
+    osDelay(500);\r
+    ret=uapi_gpio_set_val(S_AGPIO_L30, GPIO_LEVEL_HIGH);   //gps reset\r
+    PRINT("GPS_PWRON set_value S_AGPIO_L30 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+#elif defined (BOARD_LT22) || defined (BOARD_W9)\r
+\r
+    // ret=uapi_gpio_set_dir(S_AGPIO_L16,GPIO_DIRECTION_OUTPUT);\r
+    // PRINT("set_dir S_AGPIO_L16,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_AGPIO_L32,GPIO_DIRECTION_OUTPUT);\r
+    PRINT("set_dir S_AGPIO_L32,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_AGPIO_L20,GPIO_DIRECTION_OUTPUT);\r
+    PRINT("set_dir S_AGPIO_L20,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_AGPIO_R9,GPIO_DIRECTION_OUTPUT);\r
+    PRINT("set_dir S_AGPIO_R9,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+    ret=uapi_gpio_set_dir(S_HGPIO0,GPIO_DIRECTION_OUTPUT);\r
+    PRINT("set_dir S_HGPIO0,GPIO_DIRECTION_OUTPUT ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_HGPIO0, GPIO_LEVEL_HIGH);   // crystal sw\r
+    PRINT("GPS_CRYSTAL set_value S_HGPIO0 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+    \r
+    ret=uapi_gpio_set_val(S_AGPIO_L20, GPIO_LEVEL_HIGH);   // gps V1.8 sw en\r
+    PRINT("GPS_1V8 set_value S_AGPIO_L20 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_AGPIO_R9, GPIO_LEVEL_HIGH);   // gps V3.3 sw en\r
+    PRINT("GPS_BAT_ON set_value S_AGPIO_R9 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+\r
+    ret=uapi_gpio_set_val(S_AGPIO_L32, GPIO_LEVEL_LOW);   //gps reset\r
+    PRINT("GPS_PWRON set_value S_AGPIO_L32 GPIO_LEVEL_LOW ret %d\n",ret);\r
+    osDelay(500);\r
+    ret=uapi_gpio_set_val(S_AGPIO_L32, GPIO_LEVEL_HIGH);   //gps reset\r
+    PRINT("GPS_PWRON set_value S_AGPIO_L32 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+\r
+\r
+    // PRINT("switch debug set_value S_AGPIO_L16 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+    // ret=uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_HIGH);   // gps dl sw\r
+    // PRINT("set_value S_AGPIO_L16 GPIO_LEVEL_HIGH ret %d\n",ret);\r
+\r
+#endif\r
+    return  ERRCODE_SUCC;\r
+}\r
 uint32_t lcd_fill(uint8_t *data, uint32_t data_len)\r
 {\r
     char *ptr = (char *)data;\r
@@ -1942,7 +2007,10 @@ uint32_t mcu_pm_set_mcu_dynamic_power(uint8_t *para, uint32_t para_len)
     }\r
     return ERRCODE_SUCC;\r
 }\r
-\r
+static void button1_callback_press(void)\r
+{\r
+    PRINT("button1 key click."NEWLINE);\r
+}\r
 static void button_callback_press(void)\r
 {\r
     PRINT("power key press."NEWLINE);\r
@@ -2054,6 +2122,7 @@ uint32_t mcu_button_sample(uint8_t *para, uint32_t para_len)
     unused(para_len);\r
 \r
     uapi_button_register_event_cb(button_callback_press, BUTTON_PWR_PRESS);\r
+    uapi_button_register_event_cb(button1_callback_press, BUTTON1_CLICKUP);\r
     uapi_button_register_event_cb(button_callback_click, BUTTON_PWR_CLICKUP);\r
     uapi_button_register_event_cb(button_callback_click_2, BUTTON_PWR_CLICKUP_2);\r
 \r
@@ -2701,6 +2770,7 @@ static const app_process_table g_app_funcs[] = {
     { PMMODEGET,            mcu_pm_dfx_mode },\r
     { GETCURSEC,            mcu_dfx_get_cur_second},\r
     { LCDFILL,              lcd_fill },\r
+    { GPSON,                gps_on },    \r
     { GETIDS,               get_ids },\r
     { LCDLIGHT,             lcd_test_light },\r
     { RESUMETOUCH,          mcu_pm_no_resume_touch },\r
index 641ff3d..5a59f5e 100644 (file)
@@ -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);\r
     return ERRCODE_SUCC;\r
 }\r
+static uint32_t app_gpson(uint8_t *para, uint32_t para_len, char *str_cmd)\r
+{\r
+    unused(str_cmd);\r
+    if (para == NULL) {\r
+        return ERRCODE_FAIL;\r
+    }\r
+    app_pkg_msg_send(GPSON, DIAG_CONTROL_FALSE, para, para_len);\r
+    return ERRCODE_SUCC;\r
+}\r
 \r
 static uint32_t app_get_ids(uint8_t *para, uint32_t para_len, char *str_cmd)\r
 {\r
@@ -1045,6 +1054,7 @@ static const at_cmd_table_t g_app_cmd[] = {
     { "AT^PMMODEGET",    app_test_pm_dfx_mode,              "" },\r
     { "AT^GETCURSEC",    app_get_cur_second,                "" },\r
     { "AT^LCDFILL",      app_test_lcd_fill,                 "" },\r
+    { "AT^GPSON",      app_gpson,                 "" },\r
     { "AT^LCDLIGHT",     app_test_lcd_light,                "" },\r
     { "AT^GETIDS",       app_get_ids,                       "" },\r
     { "AT^STOUCHRESUME", app_set_touch_resume_flag,         "" },\r
index 175ea4a..ab8fc80 100644 (file)
@@ -114,6 +114,7 @@ typedef enum {
     AUTOOTASHOWMAC      = 0x53,\r
     PERFSTART           = 0x54,\r
     PERFSTOP            = 0x55,\r
+    GPSON            = 0x56,\r
     MSG_ID_MAX_BUTT,\r
 } app_msg_id;\r
 \r
index 444cfe7..7286d62 100644 (file)
@@ -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'
         ],
         #添加自定义应用
index 11fe986..4f2a759 100644 (file)
@@ -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 },
 
index 5c15708..f4acaf5 100644 (file)
@@ -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
index 7d48d6f..8245c9d 100644 (file)
 #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********************/
 #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 枚举
index 5ec3abe..e9a9de3 100644 (file)
@@ -230,7 +230,7 @@ static ext_errno lcd_drv_get_chip_id(uint32_t *id)
             if (ret == EXT_ERR_SUCCESS) {\r
                 break;\r
             }\r
-        }\r
+        }        \r
         if (*((uint32_t *)buff) == lcd_ops[i].lcd_id) {\r
             *id = *((uint32_t *)buff);\r
             g_lcd_config = lcd_get_driver_config(*id);\r
@@ -242,7 +242,17 @@ static ext_errno lcd_drv_get_chip_id(uint32_t *id)
             return EXT_ERR_SUCCESS;\r
         }\r
     }\r
-\r
+#if defined(BOARD_U8)\r
+    *id = 0xFFFF;//LCD_EDO_466X466_SCREEN_ID;\r
+    g_lcd_config = lcd_get_driver_config(*id);\r
+    if (g_lcd_config == NULL) {\r
+          lcd_err("last Get default 0xFFFF Lcd config fail.\r\n");\r
+          return EXT_ERR_LCD_INVALID_SCREEN_OPS;\r
+    }else{\r
+        lcd_err("last Get default 0xFFFF Lcd config .\r\n");\r
+        return EXT_ERR_SUCCESS;\r
+    }\r
+#endif\r
     return EXT_ERR_LCD_GET_ID_FAIL;\r
 }\r
 \r
index 2762a22..5733883 100644 (file)
@@ -9,12 +9,46 @@
 #include "common_def.h"\r
 #include "lcd_config.h"\r
 \r
+#define LCD_EDO_502X410_SCREEN_ID  0xFFFF //CH13613\r
 #define LCD_EDO_466X466_SCREEN_ID  0x1133\r
 #define LCD_EDO_454X454_SCREEN_ID  0xf00\r
 #define LCD_BOE_454X454_SCREEN_ID  0x500\r
 #define LCD_SH_240X296_SCREEN_ID   0x101\r
 #define LCD_BOE_194X368_SCREEN_ID  0x4a00\r
 \r
+/*\r
+pixel_clk 需要大于 sync_info 中的(hsa+hbp+hact+hfp)* \r
+(vsa+vbp+vact+vfp)* 60 / 1000 (帧率配置 60fps)\r
+\r
+. phy_data_rate=pixel_clk * 24 / 1000, 如果计算出来的值大于 500,需要调\r
+整降低帧率,减小 pixel_clk。\r
+\r
+当修改了 pixel_clk 时,需要同步修改\r
+“middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c”中函数\r
+dpu_crg_set_vedio_mclk_div_ctl 的 dpu_mclk_div 值,该值的后两位需要与\r
+pixel_clk 的 16 进制值保持一致,如下 pixel_clk=20000kHZ,换算为 MHZ 为 20,\r
+对应的 16 进制为 0x14。\r
+*/\r
+const combo_dev_cfg_t g_panel_502x410_50_config = {\r
+    .devno = 0,\r
+    .lane_id = {0, -1},\r
+    .out_mode = OUT_MODE_DSI_CMD,\r
+    .out_format = OUT_FORMAT_RGB_24BIT,\r
+    .sync_info = {\r
+        .hsa_pixels   = 4,   // hsa 4 pixels\r
+        .hbp_pixels   = 32,   // hbp 32 pixels\r
+        .hact_pixels  = 410,  // hact 410 pixels\r
+        .hfp_pixels   = 32,   // hfp 32 pixels\r
+        .vsa_lines    = 2,    // vsa 4 lines\r
+        .vbp_lines    = 7,   // vbp 7 lines\r
+        .vact_lines   = 502,  // vact 502 lines\r
+        .vfp_lines    = 7,   // vfp 7 lines\r
+    },\r
+    //pixel_clk*24/1000\r
+    .phy_data_rate = 300,     // 480Mbps\r
+    // (4+32+32+410)*(2+7+7+502)*50/1000\r
+    .pixel_clk = 12380,       // 20000KHz\r
+};\r
 const combo_dev_cfg_t g_panel_466x466_60_config = {\r
     .devno = 0,\r
     .lane_id = {0, -1},\r
@@ -137,6 +171,18 @@ lcd_cmd_sequ g_common_cmd_brightness[] = {
     {1, 2, {0xfe, 0x00}, 0},\r
     {1, 2, {0x51, 0xff}, 0},\r
 };\r
+\r
+const lcd_cmd_sequ g_edo_502x410_screen_init_on[] = {\r
+    {1, 5, {0x2A, 0x00, 0x04, 0x01, 0x9d}, 0}, \r
+    {1, 5, {0x2B, 0x00, 0x00, 0x01, 0xf5}, 0}, \r
+    {1, 2, {0x35, 0x00}, 0}, \r
+    {1, 2, {0x36, 0x00}, 0}, \r
+    {1, 2, {0x67, 0x01}, 0}, \r
+    {1, 2, {0x68, 0x01}, 0}, \r
+    {1, 2, {0x11, 0x00}, 120}, \r
+    {1, 2, {0x29, 0x00}, 120}, \r
+};\r
+\r
 const lcd_cmd_sequ g_edo_466x466_screen_init_on[] = {\r
     {1, 2, {0xfe, 0x00}, 0}, \r
     {1, 2, {0x3a, 0x77}, 0}, \r
@@ -263,7 +309,10 @@ const lcd_cmds_sequ g_brightness_cmds = {
     .cmd = g_common_cmd_brightness,\r
     .cmd_cnt = array_size(g_common_cmd_brightness),\r
 };\r
-\r
+const lcd_cmds_sequ g_edo_502x410_screen_init_on_cmds = {\r
+    .cmd = g_edo_502x410_screen_init_on,\r
+    .cmd_cnt = array_size(g_edo_502x410_screen_init_on),\r
+};\r
 const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = {\r
     .cmd = g_edo_466x466_screen_init_on,\r
     .cmd_cnt = array_size(g_edo_466x466_screen_init_on),\r
@@ -300,6 +349,25 @@ const lcd_cmds_sequ g_sleep_out_cmds = {
 };\r
 \r
 const lcd_drv_cfg g_lcd_driver_ops[] = {\r
+    {\r
+        .bus_type             = BUS_DISPLAY_MIPI,\r
+        .bus_cfg              = &g_panel_502x410_50_config,\r
+        .x_start              = 0x04,\r
+        .y_start              = 0,\r
+        .fps                  = 60,\r
+        .lcd_id               = LCD_EDO_502X410_SCREEN_ID,\r
+        .display_on_cmds      = &g_edo_502x410_screen_init_on_cmds,\r
+        .display_off_cmds     = &g_display_off_cmds,\r
+        .enter_idle_cmds      = &g_idle_in_cmds,\r
+        .exit_idle_cmds       = &g_idle_out_cmds,\r
+        .te_on_cmds           = &g_te_on_cmds,\r
+        .te_off_cmds          = &g_te_off_cmds,\r
+        .set_brightnes_cmds   = &g_brightness_cmds,\r
+        .sleep_in_cmds        = &g_sleep_in_cmds,\r
+        .sleep_out_cmds       = &g_sleep_out_cmds,\r
+        .lcd_id_info.reg_addr = 0x04,\r
+        .lcd_id_info.read_len = 3,\r
+    },\r
     {\r
         .bus_type             = BUS_DISPLAY_MIPI,\r
         .bus_cfg              = &g_panel_466x466_60_config,\r
index aa1282e..8f5e054 100644 (file)
@@ -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);
 }