add lcd driver

This commit is contained in:
hyx 2026-05-22 11:55:20 +08:00
parent 73da179f52
commit d3d5994966
8 changed files with 630 additions and 280 deletions

View File

@ -2,21 +2,14 @@
#include "include/dsi_com_param.h" #include "include/dsi_com_param.h"
#include "include/mol_lcm.h" #include "include/mol_lcm.h"
#define LCM_WIDTH 800 #define LCM_WIDTH 480
#define LCM_HEIGHT 1280 #define LCM_HEIGHT 854
#define LCM_DEBUG 1 #define LCM_DEBUG 1
const lcm_cfg_t qua_lcm_mipi_er88577b_6hc1017b7e_info; const lcm_cfg_t qua_lcm_mipi_er88577b_6hc1017b7e_info;
// static dsi_setting_tab_t __er88577b_6hc1017b7e_init_setting[] = {
// {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE0,0xAB,0xBA}},
// {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE1,0xBA,0xAB}},
// {DSI_DI_END_OF_TABLE, 0x00, {0x00}}
// };
static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = { static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = {
#if 0
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE0,0xAB,0xBA}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE0,0xAB,0xBA}},
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE1,0xBA,0xAB}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE1,0xBA,0xAB}},
{DSI_DI_DCS_WRITE_LONG, 0x07, {0x05,0x00,0xB1,0x10,0x01,0x47,0xFF}}, {DSI_DI_DCS_WRITE_LONG, 0x07, {0x05,0x00,0xB1,0x10,0x01,0x47,0xFF}},
@ -47,6 +40,205 @@ static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = {
{DSI_DI_DCS_WRITE_0_PARAM, 1, {0x29}}, {DSI_DI_DCS_WRITE_0_PARAM, 1, {0x29}},
{DSI_DI_DELAY, 20, }, {DSI_DI_DELAY, 20, },
{DSI_DI_END_OF_TABLE, 0x00, {0}} {DSI_DI_END_OF_TABLE, 0x00, {0}}
#else
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x00}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0x0E}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x14, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x34, 0x77}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3B, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x40, 0x2B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x41, 0x32}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x42, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x45, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x46, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x36}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x53, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x54, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x55, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x56, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x57, 0x37}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5B, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5C, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5D, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x79, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7D, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x06}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC8, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCA, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCC, 0x13}},//VCOM
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCE, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBB, 0x0A}},//V0------0X00
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB4, 0x39}},//V255------0XFF
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x1A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBA, 0x1C}},//V4------0X04
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA1, 0x25}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB5, 0x2F}},//V251------0XFB
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB9, 0x1F}},//V8------ 0X08
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB6, 0x2D}},//V247------0XF7
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x4A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB8, 0x4B}},//V80------0X50
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB7, 0x4F}},//V176------0XB0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC5, 0x07}},//V12------0X0C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBC, 0x0F}},//V243------0XF3
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC4, 0x12}},//V16------0X10
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBD, 0x15}},//V240------0XF0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC3, 0x0F}},//V24------0X18
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBE, 0x17}},//V232------0XE8
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC2, 0x0B}},//V52------0X34
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBF, 0x14}},//V204------0XCC
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0x18}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC1, 0x11}},//V108------0X6C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC0, 0x15}},//V148------0X94
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x50, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x67, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x68, 0xDF}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x69, 0x9F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x02, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x10, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x15, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x16, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x17, 0x5F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x21, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x22, 0x5D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x23, 0x60}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x27, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x28, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x36, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x38, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x87}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x81, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x82, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x83, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x84, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x85, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x88, 0x86}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x89, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8A, 0x56}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8B, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8C, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8D, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8E, 0x85}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x57}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x92, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x93, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x84}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x95, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x58}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x98, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x99, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9A, 0x83}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9B, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9C, 0x59}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9D, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9E, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9F, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x5A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x81}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x5B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB2, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB3, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF0, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF7, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF8, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD2, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD3, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD4, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD6, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD8, 0x0C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD9, 0x0E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDA, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDB, 0x04}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDC, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDD, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE3, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE4, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE6, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE7, 0x0D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE8, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE9, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEA, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEB, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEC, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xED, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0xD2}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x00}}, // Sleep Out
{DSI_DI_DELAY, 200, {0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x00}}, // Display On
{DSI_DI_DELAY, 20, {0x00}},
{DSI_DI_END_OF_TABLE, 0x00, {0}}
#endif
}; };
@ -344,15 +536,15 @@ lcm_module_fun qua_lcm_mipi_er88577b_ctrl =
static lcm_display_sync_info_t qua_lcm_mipi_er88577b_dp_info = static lcm_display_sync_info_t qua_lcm_mipi_er88577b_dp_info =
{ {
.hor_sync_active = 20, .hor_sync_active = 2,
.hor_back_porch = 40, .hor_back_porch = 44,
.hor_active_pixel = LCM_WIDTH, .hor_active_pixel = LCM_WIDTH,
.hor_front_porch = 40, .hor_front_porch = 46,
.ver_sync_active = 4, .ver_sync_active = 2,
.ver_back_porch = 18, .ver_back_porch = 14,
.ver_active_line = LCM_HEIGHT, .ver_active_line = LCM_HEIGHT,
.ver_front_porch = 20, .ver_front_porch = 16,
}; };
static dsi_timing_t qua_lcm_mipi_er88577b_timing = static dsi_timing_t qua_lcm_mipi_er88577b_timing =

View File

@ -15,10 +15,10 @@
#define ALIGN_UP(x, a) ((x+a-1)&(~(a-1))) #define ALIGN_UP(x, a) ((x+a-1)&(~(a-1)))
#define LCM_W 800 #define LCM_W 480
#define LCM_H 1280 #define LCM_H 854
#define LOGO_W 800 //dhd0 only support 1024x600 #define LOGO_W 480 //dhd0 only support 1024x600
#define LOGO_H 1280 #define LOGO_H 854
#define JPG_ADDR 0x43A00000 #define JPG_ADDR 0x43A00000
#define Y_ADDR_1 0x43B00000 #define Y_ADDR_1 0x43B00000
#define UV_ADDR_1 0x43C00000 #define UV_ADDR_1 0x43C00000
@ -189,7 +189,7 @@ extern uint32_t qua_readl(uint32_t addr);
#define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5) #define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5)
#define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(3,7) #define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(3,7)
#define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0) #define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0)
#define GPIO_NUM_LCD_BL GPIO_NUM_INDEX(3,7) #define GPIO_NUM_LCD_BL GPIO_NUM_INDEX(6,3)
#else #else
#define REG_PIN_MUX_BASE 0x10200000 #define REG_PIN_MUX_BASE 0x10200000
#define REG_LCD_DE_PIN 0x64 #define REG_LCD_DE_PIN 0x64
@ -212,7 +212,7 @@ extern uint32_t qua_readl(uint32_t addr);
#define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5) #define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5)
#define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(3,7) #define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(3,7)
#define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0) #define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0)
#define GPIO_NUM_LCD_BL GPIO_NUM_INDEX(3,7) #define GPIO_NUM_LCD_BL GPIO_NUM_INDEX(6,3)
#endif #endif
#define PIN_MUX_GPIO_ENABLE (1) #define PIN_MUX_GPIO_ENABLE (1)

View File

@ -5,12 +5,13 @@
#define LCM_ER88577B_DEBUG 0 #define LCM_ER88577B_DEBUG 0
#define LCM_ER88577B_WIDTH 800 #define LCM_ER88577B_WIDTH 480
#define LCM_ER88577B_HEIGHT 1280 #define LCM_ER88577B_HEIGHT 854
const lcm_cfg_t s_lcm_mipi_er88577b_info; const lcm_cfg_t s_lcm_mipi_er88577b_info;
static dsi_setting_tab_t s_lcm_mipi_er88577b_init_code[] = { static dsi_setting_tab_t s_lcm_mipi_er88577b_init_code[] = {
#if 0
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE0,0xAB,0xBA}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE0,0xAB,0xBA}},
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE1,0xBA,0xAB}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00,0xE1,0xBA,0xAB}},
{DSI_DI_DCS_WRITE_LONG, 0x07, {0x05,0x00,0xB1,0x10,0x01,0x47,0xFF}}, {DSI_DI_DCS_WRITE_LONG, 0x07, {0x05,0x00,0xB1,0x10,0x01,0x47,0xFF}},
@ -42,6 +43,205 @@ static dsi_setting_tab_t s_lcm_mipi_er88577b_init_code[] = {
{DSI_DI_DCS_WRITE_1_PARAM, 0x02, {0x29,0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 0x02, {0x29,0x00}},
{DSI_DI_DELAY, 20, }, {DSI_DI_DELAY, 20, },
{DSI_DI_END_OF_TABLE, 0x00, {0}} {DSI_DI_END_OF_TABLE, 0x00, {0}}
#else
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x00}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0x0E}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x14, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x34, 0x77}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3B, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x40, 0x2B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x41, 0x32}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x42, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x45, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x46, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x36}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x53, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x54, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x55, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x56, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x57, 0x37}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5B, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5C, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5D, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x79, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7D, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x06}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC8, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCA, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCC, 0x13}},//VCOM
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCE, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBB, 0x0A}},//V0------0X00
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB4, 0x39}},//V255------0XFF
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x1A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBA, 0x1C}},//V4------0X04
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA1, 0x25}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB5, 0x2F}},//V251------0XFB
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB9, 0x1F}},//V8------ 0X08
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB6, 0x2D}},//V247------0XF7
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x4A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB8, 0x4B}},//V80------0X50
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB7, 0x4F}},//V176------0XB0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC5, 0x07}},//V12------0X0C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBC, 0x0F}},//V243------0XF3
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC4, 0x12}},//V16------0X10
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBD, 0x15}},//V240------0XF0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC3, 0x0F}},//V24------0X18
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBE, 0x17}},//V232------0XE8
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC2, 0x0B}},//V52------0X34
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBF, 0x14}},//V204------0XCC
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0x18}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC1, 0x11}},//V108------0X6C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC0, 0x15}},//V148------0X94
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x50, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x67, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x68, 0xDF}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x69, 0x9F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x02, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x10, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x15, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x16, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x17, 0x5F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x21, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x22, 0x5D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x23, 0x60}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x27, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x28, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x36, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x38, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x87}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x81, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x82, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x83, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x84, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x85, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x88, 0x86}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x89, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8A, 0x56}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8B, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8C, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8D, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8E, 0x85}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x57}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x92, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x93, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x84}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x95, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x58}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x98, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x99, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9A, 0x83}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9B, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9C, 0x59}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9D, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9E, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9F, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x5A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x81}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x5B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB2, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB3, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF0, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF7, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF8, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD2, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD3, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD4, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD6, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD8, 0x0C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD9, 0x0E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDA, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDB, 0x04}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDC, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDD, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE3, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE4, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE6, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE7, 0x0D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE8, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE9, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEA, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEB, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEC, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xED, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0xD2}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x00}}, // Sleep Out
{DSI_DI_DELAY, 200, {0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x00}}, // Display On
{DSI_DI_DELAY, 20, {0x00}},
{DSI_DI_END_OF_TABLE, 0x00, {0}}
#endif
}; };
#if 0 #if 0
static dsi_setting_tab_t s_lcm_mipi_er88577b_sleep_out_setting[] = { static dsi_setting_tab_t s_lcm_mipi_er88577b_sleep_out_setting[] = {
@ -248,15 +448,15 @@ lcm_module_fun s_lcm_mipi_er88577b_ctrl =
static lcm_display_sync_info_t s_lcm_mipi_er88577b_dp_info = static lcm_display_sync_info_t s_lcm_mipi_er88577b_dp_info =
{ {
.hor_sync_active = 20, .hor_sync_active = 2,
.hor_back_porch = 80, .hor_back_porch = 44,
.hor_active_pixel = LCM_ER88577B_WIDTH, .hor_active_pixel = LCM_ER88577B_WIDTH,
.hor_front_porch = 80, .hor_front_porch = 46,
.ver_sync_active = 4, .ver_sync_active = 2,
.ver_back_porch = 12, .ver_back_porch = 14,
.ver_active_line = LCM_ER88577B_HEIGHT, .ver_active_line = LCM_ER88577B_HEIGHT,
.ver_front_porch = 20, .ver_front_porch = 16,
}; };

View File

@ -5,8 +5,8 @@
#include "mol_lcm.h" #include "mol_lcm.h"
#include <linux/delay.h> #include <linux/delay.h>
#define LCM_WIDTH 800 #define LCM_WIDTH 480
#define LCM_HEIGHT 1280 #define LCM_HEIGHT 854
#define LCM_DEBUG 1 #define LCM_DEBUG 1
const lcm_cfg_t qua_lcm_mipi_er88577b_6hc1017b7e_info; const lcm_cfg_t qua_lcm_mipi_er88577b_6hc1017b7e_info;
@ -15,7 +15,7 @@ extern int qua_lcm_parse_lcm_args(void);
extern int qua_lcm_mipi_er88577b_hrst(int lcm_id); extern int qua_lcm_mipi_er88577b_hrst(int lcm_id);
static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = { static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = {
#if 1 #if 0
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE0,0xAB,0xBA}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE0,0xAB,0xBA}},
{DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE1,0xBA,0xAB}}, {DSI_DI_DCS_WRITE_LONG, 0x05, {0x03,0x00, 0xE1,0xBA,0xAB}},
{DSI_DI_DCS_WRITE_LONG, 0x06, {0x04,0x00, 0xE7,0x00,0x00,0x00}}, {DSI_DI_DCS_WRITE_LONG, 0x06, {0x04,0x00, 0xE7,0x00,0x00,0x00}},
@ -45,246 +45,204 @@ static dsi_setting_tab_t qua_lcm_mipi_er88577b_6hc1017b7e_init_setting[] = {
{DSI_DI_DCS_WRITE_0_PARAM, 1, {0x29}}, {DSI_DI_DCS_WRITE_0_PARAM, 1, {0x29}},
{DSI_DI_DELAY, 20, {0x00}}, {DSI_DI_DELAY, 20, {0x00}},
{DSI_DI_END_OF_TABLE, 0x00, {0x00}} {DSI_DI_END_OF_TABLE, 0x00, {0x00}}
#endif #else
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
#if 0 {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x01}},
{DSI_DI_DELAY, 30, {0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x00}}, //{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0x0E}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE1, 0x93}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x65}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x14, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE3, 0xF8}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x34, 0x77}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x01}}, //{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x03}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3B, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x40, 0x2B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x01}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x41, 0x32}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x42, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x48}}, // 0x3B,0X41~0X48 {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x45, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x46, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0C, 0x74}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x36}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x17, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x53, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x18, 0xAF}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x54, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x19, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x55, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1A, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x56, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1B, 0xAF}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x57, 0x37}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1C, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5B, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5C, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x35, 0x26}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5D, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x79, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x09}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7D, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x38, 0x04}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x39, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3A, 0x01}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x06}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3C, 0x78}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x44}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3D, 0xFF}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC8, 0x12}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3E, 0xFF}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCA, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3F, 0x7F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCC, 0x13}},//VCOM
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xCE, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x40, 0x06}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x41, 0xA0}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x42, 0x81}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBB, 0x0A}},//V0------0X00
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x43, 0x14}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA0, 0x39}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x44, 0x23}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB4, 0x39}},//V255------0XFF
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x45, 0x28}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x1A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBA, 0x1C}},//V4------0X04
//{DSI_DI_DCS_WRITE_1_PARAM, 2,{0x4A,0x35}}, //bist mode {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA1, 0x25}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2,{0x4B,0x04}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB5, 0x2F}},//V251------0XFB
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x55, 0x02}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB9, 0x1F}},//V8------ 0X08
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x57, 0x69}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x20}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x59, 0x0A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB6, 0x2D}},//V247------0XF7
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5A, 0x2A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x4A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5B, 0x17}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB8, 0x4B}},//V80------0X50
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5D, 0x7F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB7, 0x4F}},//V176------0XB0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5E, 0x69}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x08}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5F, 0x59}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC5, 0x07}},//V12------0X0C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x60, 0x4C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x61, 0x47}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBC, 0x0F}},//V243------0XF3
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x62, 0x39}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x63, 0x3B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC4, 0x12}},//V16------0X10
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x64, 0x24}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x65, 0x3D}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBD, 0x15}},//V240------0XF0
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x66, 0x3C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x67, 0x3C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC3, 0x0F}},//V24------0X18
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x68, 0x5A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x69, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBE, 0x17}},//V232------0XE8
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6A, 0x4A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6B, 0x43}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC2, 0x0B}},//V52------0X34
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6C, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6D, 0x20}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xBF, 0x14}},//V204------0XCC
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6E, 0x0F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0x18}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6F, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC1, 0x11}},//V108------0X6C
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x70, 0x7F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xC0, 0x15}},//V148------0X94
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x71, 0x69}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x72, 0x59}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x73, 0x4C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x74, 0x47}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x50, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x75, 0x39}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x76, 0x3B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x77, 0x24}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x67, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x78, 0x3D}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x68, 0xDF}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x79, 0x3C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x69, 0x9F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7A, 0x3C}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7B, 0x5A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7C, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7D, 0x4A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7E, 0x43}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7F, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x02, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x20}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x81, 0x0F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x10, 0x5E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x82, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x15, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x02}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x16, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x42}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x17, 0x5F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x01, 0x42}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x21, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x02, 0x40}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x22, 0x5D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x03, 0x40}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x23, 0x60}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x04, 0x5E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x27, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x05, 0x5E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x28, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x06, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x07, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x36, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x08, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x09}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x09, 0x57}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x38, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0A, 0x57}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x80, 0x87}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0B, 0x77}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x81, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0C, 0x77}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x82, 0x55}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0D, 0x47}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x83, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0E, 0x47}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x84, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0F, 0x45}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x85, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x10, 0x45}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x88, 0x86}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x4B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x89, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x12, 0x4B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8A, 0x56}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x13, 0x49}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8B, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x14, 0x49}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8C, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x15, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8D, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8E, 0x85}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x16, 0x41}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x8F, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x17, 0x41}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x90, 0x57}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x18, 0x40}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x91, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x19, 0x40}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x92, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1A, 0x5E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x93, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1B, 0x5E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x94, 0x84}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1C, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x95, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1D, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x96, 0x58}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1E, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x97, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x1F, 0x57}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x98, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x20, 0x57}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x99, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x21, 0x77}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9A, 0x83}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x22, 0x77}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9B, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x23, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9C, 0x59}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x24, 0x46}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9D, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x25, 0x44}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9E, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x26, 0x44}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x9F, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x27, 0x4A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA2, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x28, 0x4A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA3, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x48}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA4, 0x5A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2A, 0x48}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2B, 0x5F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA6, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA7, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2C, 0x01}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA8, 0x81}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2D, 0x01}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xA9, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2E, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAA, 0x5B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x2F, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAB, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x30, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAC, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x31, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAD, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x32, 0x1E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAE, 0x80}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x33, 0x1E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xAF, 0x33}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x34, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB0, 0x5C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x35, 0x17}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB1, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x36, 0x17}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB2, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x37}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xB3, 0xFE}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x38, 0x37}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF0, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x39, 0x08}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF7, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3A, 0x08}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF8, 0x40}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3B, 0x0A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3C, 0x0A}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3D, 0x04}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD2, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3E, 0x04}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD3, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x3F, 0x06}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD4, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x40, 0x06}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD5, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x41, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD6, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD7, 0x0A}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x42, 0x02}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD8, 0x0C}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x43, 0x02}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xD9, 0x0E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x44, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDA, 0x10}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x45, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDB, 0x04}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x46, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDC, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x47, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDD, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x48, 0x1E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x49, 0x1E}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xDF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4A, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4B, 0x17}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE1, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4C, 0x17}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE2, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4D, 0x37}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE3, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4E, 0x37}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE4, 0x05}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4F, 0x09}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE5, 0x11}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x50, 0x09}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE6, 0x0F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x51, 0x0B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE7, 0x0D}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x52, 0x0B}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE8, 0x0B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x53, 0x05}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE9, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x54, 0x05}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEA, 0x1B}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x55, 0x07}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEB, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x56, 0x07}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEC, 0x01}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x57, 0x1F}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xED, 0x03}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEE, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x58, 0x40}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xEF, 0x1F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5B, 0x30}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5C, 0x16}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5D, 0x34}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5E, 0x05}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x30}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x5F, 0x02}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x49}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x63, 0x00}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0xFF, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x64, 0x6A}}, //{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xF1, 0xD2}},//BIST
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x67, 0x73}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x11, 0x00}}, // Sleep Out
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x68, 0x1D}}, {DSI_DI_DELAY, 200, {0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x69, 0x08}}, {DSI_DI_DCS_WRITE_1_PARAM, 2, {0x29, 0x00}}, // Display On
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6A, 0x6A}}, {DSI_DI_DELAY, 20, {0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6B, 0x08}}, {DSI_DI_END_OF_TABLE, 0x00, {0}}
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6C, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6D, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6E, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x6F, 0x88}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x75, 0xFF}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x77, 0xDD}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x78, 0x3F}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x79, 0x15}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7A, 0x17}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7D, 0x14}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x7E, 0x82}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x04}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x00, 0x0E}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x02, 0xB3}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x09, 0x61}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x0E, 0x48}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x36, 0x49}}, //mark
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x37, 0x58}}, //mark
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE6, 0x02}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE7, 0x0C}},
{DSI_DI_DCS_WRITE_0_PARAM, 1, {0x11}},
{DSI_DI_DELAY, 240, {0x00}},
/* bist mode */
//{DSI_DI_DELAY, 254, {0x00}},
//{DSI_DI_DELAY, 254, {0x00}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x01}},
//{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x4A, 0xB0}}, // bist
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0xE0, 0x00}},
{DSI_DI_DCS_WRITE_0_PARAM, 1, {0x29}},
{DSI_DI_DELAY, 5, {0x00}},
{DSI_DI_DCS_WRITE_1_PARAM, 2, {0x35, 0x00}},
{DSI_DI_END_OF_TABLE, 0x00, {0x00}}
#endif #endif
}; };
@ -405,15 +363,15 @@ lcm_module_fun qua_lcm_mipi_er88577b_ctrl =
static lcm_display_sync_info_t qua_lcm_mipi_er88577b_dp_info = static lcm_display_sync_info_t qua_lcm_mipi_er88577b_dp_info =
{ {
.hor_sync_active = 20, .hor_sync_active = 2,
.hor_back_porch = 40, .hor_back_porch = 44,
.hor_active_pixel = LCM_WIDTH, .hor_active_pixel = LCM_WIDTH,
.hor_front_porch = 40, .hor_front_porch = 46,
.ver_sync_active = 4, .ver_sync_active = 2,
.ver_back_porch = 18, .ver_back_porch = 14,
.ver_active_line = LCM_HEIGHT, .ver_active_line = LCM_HEIGHT,
.ver_front_porch = 20, .ver_front_porch = 16,
}; };
static dsi_timing_t qua_lcm_mipi_er88577b_timing = static dsi_timing_t qua_lcm_mipi_er88577b_timing =

View File

@ -24,7 +24,7 @@
#define GPIO_NUM_LCD_DE GPIO_NUM_INDEX(3,3) #define GPIO_NUM_LCD_DE GPIO_NUM_INDEX(3,3)
#define GPIO_NUM_LCD_HS GPIO_NUM_INDEX(3,4) #define GPIO_NUM_LCD_HS GPIO_NUM_INDEX(3,4)
#define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5) #define GPIO_NUM_LCD_VS GPIO_NUM_INDEX(3,5)
#define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(3,7) #define GPIO_NUM_LCD_D0 GPIO_NUM_INDEX(6,3)
#define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0) #define GPIO_NUM_LCD_D1 GPIO_NUM_INDEX(4,0)
#define PIN_MUX_GPIO_ENABLE (1) #define PIN_MUX_GPIO_ENABLE (1)