第
8
页 共
42
页
所有已经支持的屏驱动放在 panels 下面,每个屏驱动通过 lcd_src_interface 注册给 display 驱动,
display 通过匹配 sys_config 中的 lcd_driver_name 及屏驱动的 name 来选择使用的屏驱动。每个屏驱动
中包含与屏相关的功能参数,以及开关屏的时序,及初始化序列(如果需要的话)。
//开屏的流程
static __s32 LCD_open_flow(__u32 sel)
{
LCD_OPEN_FUNC(sel, LCD_power_on, 100); //open power, and delay 50ms
LCD_OPEN_FUNC(sel, LCD_panel_init, 200); //paneel init, than delay 200ms
LCD_OPEN_FUNC(sel, sunxi_lcd_tcon_enable, 200);//open lcd controller, and delay 100ms
LCD_OPEN_FUNC(sel, LCD_bl_open, 0); //open backlight, and delay 0ms
return 0;
}
//关屏的流程
static __s32 LCD_close_flow(__u32 sel)
{
LCD_CLOSE_FUNC(sel, LCD_bl_close, 0); //close backlight, and delay 0ms
LCD_CLOSE_FUNC(sel, sunxi_lcd_tcon_disable, 0); //close lcd controller, and delay 0ms
LCD_CLOSE_FUNC(sel, LCD_panel_exit, 200); //panel exit, than delay 200ms
LCD_CLOSE_FUNC(sel, LCD_power_off, 500); //close power, and delay 500ms
return 0;
}
//屏驱动的接口
__lcd_panel_t default_panel = {
/* panel driver name, must mach lcd_drv_name in sys_config.fex */
.name = "default_lcd",
.func = {
.cfg_panel_info = LCD_cfg_panel_info,
.cfg_open_flow = LCD_open_flow,
.cfg_close_flow = LCD_close_flow,
.lcd_user_defined_func = LCD_user_defined_func,
},
};