ProjectConfig.mk CUSTOM_LK_LCM=hx8394a_hd720_dsi_vdo_tianma CUSTOM_KERNEL_LCM=hx8394a_hd720_dsi_vdo_tianma CUSTOM_UBOOT_LCM=hx8394a_hd720_dsi_vdo_tianma LCM_HEIGHT=1280LCM_WIDTH=720 PLL CLOCK:25M~625M. PLL CLOCK=Frame_length x FPS/2;mediatek/custom/common/kernel/lcm/ mt65xx_lcm_list.c extern LCM_DRIVER hx8394a_hd720_dsi_vdo_tianma_lcm_drv;LCM_DRIVER* lcm_driver_list[] = {#if defined(HX8394A_HD720_DSI_VDO_TIANMA) &hx8394a_hd720_dsi_vdo_tianma_lcm_drv, #endif } lcm_drv.h typedef struct { const char* name; void (*set_util_funcs)(const LCM_UTIL_FUNCS *util); void (*get_params)(LCM_PARAMS *params); void (*init)(void); void (*suspend)(void); void (*resume)(void); // for power-on sequence refinement void (*init_power)(void); void (*suspend_power)(void); void (*resume_power)(void); void (*update)(unsigned int x, unsigned int y, unsigned int width, unsigned int height); unsigned int (*compare_id)(void); } LCM_DRIVER; typedef struct { LCM_TYPE type; LCM_CTRL ctrl; //! how to control LCM registers /* 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 enum { LCM_TYPE_DBI = 0, LCM_TYPE_DPI, LCM_TYPE_DSI } LCM_TYPE; typedef struct { void (*set_reset_pin)(unsigned int value); int (*set_gpio_out)(unsigned int gpio, unsigned int value); void (*udelay)(unsigned int us); void (*mdelay)(unsigned int ms); void (*send_cmd)(unsigned int cmd); void (*send_data)(unsigned int data); unsigned int (*read_data)(void); void (*dsi_set_cmdq_V3)(LCM_setting_table_V3 *para_list, unsigned int size, unsigned char force_update); void (*dsi_set_cmdq_V2)(unsigned cmd, unsigned char count, unsigned char *para_list, unsigned char force_update); void (*dsi_set_cmdq)(unsigned int *pdata, unsigned int queue_size, unsigned char force_update); void (*dsi_write_cmd)(unsigned int cmd); void (*dsi_write_regs)(unsigned int addr, unsigned int *para, unsigned int nums); unsigned int (*dsi_read_reg)(void); unsigned int (*dsi_dcs_read_lcm_reg)(unsigned char cmd); unsigned int (*dsi_dcs_read_lcm_reg_v2)(unsigned char cmd, unsigned char *buffer, unsigned char buffer_size); void (*wait_transfer_done)(void); /** FIXME: GPIO mode should not be configured in lcm driver REMOVE ME after GPIO customization is done */ int (*set_gpio_mode)(unsigned int pin, unsigned int mode); int (*set_gpio_dir)(unsigned int pin, unsigned int dir); int (*set_gpio_pull_enable)(unsigned int pin, unsigned char pull_en); } LCM_UTIL_FUNCS; |
|