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 },
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
}\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
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
{ 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
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
{ "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
AUTOOTASHOWMAC = 0x53,\r
PERFSTART = 0x54,\r
PERFSTOP = 0x55,\r
+ GPSON = 0x56,\r
MSG_ID_MAX_BUTT,\r
} app_msg_id;\r
\r
'FT_SINGLE_UART',
'SUPPORT_AUTO_OTA_SERVER',
'CONFIG_DFX_SUPPORT_DIAG_UP_MACHINE=1',
- 'TPTYPE_FT6X46',
+ 'TPTYPE_CST86XX',
'NANDFLASH_DS35X'
],
#添加自定义应用
{ 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
#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
#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
#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
//默认关闭马达
#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 },
#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
#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
} 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
#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 枚举
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
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
#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
{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
.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
};\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
/* 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);
}