MTK LCM 驱动 的 LCM_PARAMS->LCM_DSI_PARAMS 结构体各个成员参数的意义?
typedef struct
{
LCM_TYPE type;
LCM_CTRL ctrl; //! how to control LCM registers
LCM_INTERFACE_ID lcm_if;
/* common parameters */
unsigned int width;
unsigned int height;
unsigned int io_select_mode; //DBI or DPI should select IO mode according to chip spec
/* particular parameters */
LCM_DBI_PARAMS dbi;
LCM_DPI_PARAMS dpi;
LCM_DSI_PARAMS dsi;
unsigned int physical_width;
unsigned int physical_height;
} LCM_PARAMS;
就是下面结构体成员的 含义。 哪位 工程师 能够 赐教一番, 不胜感激。
typedef struct
{
LCM_DSI_MODE_CON mode;
unsigned int DSI_WMEM_CONTI;
unsigned int DSI_RMEM_CONTI;
unsigned int VC_NUM;
LCM_LANE_NUM LANE_NUM;
LCM_DSI_DATA_FORMAT data_format;
/* intermediate buffers parameters */
unsigned int intermediat_buffer_num; // 2..3
LCM_PS_TYPE PS;
unsigned int word_count;
unsigned int packet_size;
unsigned int vertical_sync_active;
unsigned int vertical_backporch;
unsigned int vertical_frontporch;
unsigned int vertical_active_line;
unsigned int horizontal_sync_active;
unsigned int horizontal_backporch;
unsigned int horizontal_frontporch;
unsigned int horizontal_blanking_pixel;
unsigned int horizontal_active_pixel;
unsigned int horizontal_bllp;
unsigned int line_byte;
unsigned int horizontal_sync_active_byte;
unsigned int horizontal_backporch_byte;
unsigned int horizontal_frontporch_byte;
unsigned int rgb_byte;
unsigned int horizontal_sync_active_word_count;
unsigned int horizontal_backporch_word_count;
unsigned int horizontal_frontporch_word_count;
unsigned char HS_TRAIL;
unsigned char HS_ZERO;
unsigned char HS_PRPR;
unsigned char LPX;
unsigned char TA_SACK;
unsigned char TA_GET;
unsigned char TA_SURE;
unsigned char TA_GO;
unsigned char CLK_TRAIL;
unsigned char CLK_ZERO;
unsigned char LPX_WAIT;
unsigned char CONT_DET;
unsigned char CLK_HS_PRPR;
unsigned char CLK_HS_POST;
unsigned char DA_HS_EXIT;
unsigned char CLK_HS_EXIT;
unsigned int pll_select;
unsigned int pll_div1;
unsigned int pll_div2;
unsigned int fbk_div;
unsigned int fbk_sel;
unsigned int rg_bir;
unsigned int rg_bic;
unsigned int rg_bp;
unsigned int PLL_CLOCK;
unsigned int dsi_clock;
unsigned int ssc_disable;
unsigned int ssc_range;
unsigned int compatibility_for_nvk;
unsigned int cont_clock;
unsigned int ufoe_enable;
unsigned int ufoe_vlc_disable;
unsigned int ufoe_vlc_cfg;
unsigned int lcm_int_te_monitor;
unsigned int lcm_int_te_period;
unsigned int lcm_ext_te_monitor;
unsigned int lcm_ext_te_enable;
unsigned int noncont_clock;
unsigned int noncont_clock_period;
} LCM_DSI_PARAMS;
第一个结构体,是LCD的通用结构体
这个代码里,有三种借口
LCM_DBI_PARAMS dbi;
LCM_DPI_PARAMS dpi;
LCM_DSI_PARAMS dsi;
每种接口有自己独特的特点,所以对每一种接口专门开辟了一个结构体。
下面的就是Dsi接口的一些平台端的时序
unsigned char HS_TRAIL;
unsigned char HS_ZERO;
unsigned char HS_PRPR;
unsigned char LPX;
unsigned char TA_SACK;
unsigned char TA_GET;
unsigned char TA_SURE;
unsigned char TA_GO;
unsigned char CLK_TRAIL;
unsigned char CLK_ZERO;
unsigned char LPX_WAIT;
unsigned char CONT_DET;
unsigned char CLK_HS_PRPR;
unsigned char CLK_HS_POST;
这些时序分别代表什么呢?
这些请去看MIPI的时序定义吧。
有没有相关资料, 或者博客文?多谢
// Bit rate calculation
params->dsi.pll_div1 = 1; // div1=0,1,2,3;div1_real=1,2,4,4
params->dsi.pll_div2 = 0; // div2=0,1,2,3;div2_real=1,2,4,4
params->dsi.fbk_sel = 1; // fbk_sel=0,1,2,3;fbk_sel_real=1,2,4,4
params->dsi.fbk_div = 15;
@dkwude:求教下,这几个参数的意义,不胜感激!
这几个参数是计算mipi 每线clock的
Type2: 配置倍频与分频参数:dsi.pll_fbk_div(倍频), dsi.pll_div1 & dsi.pll_div2 (分频)---(适用于89/72等前期版本)
BRPL = fref(26M) X (fbk_div+1)*2/(div1_real*div2_real)
嗯嗯,学习了,非常感谢!
请教一下这个params->dsi.mode = BURST_VDO_MODE和params->dsi.mode = SYNC_PULSE_VDO_MODE有什么区别,不胜感激
学习了,非常感谢!
