linux-3.0/drivers/video/sun5i/disp/dev_fb.c
==============================================================================
1.此目录
zhengyi\lichee\linux-3.0\drivers\video\sun5i\lcd
1.1 \linux-3.0\drivers\video\sun5i\lcd\dev_lcd.c
驱动文件的加载
LCD_get_panel_funs_0(&lcd0_cfg);
LCD_get_panel_funs_1(&lcd1_cfg);
LCD_set_panel_funs(&lcd0_cfg, &lcd1_cfg);
DRV_DISP_Init();
Fb_Init(0);
cdev_init(my_cdev, &lcd_fops);
lcd0_cfg在drivers/video/sun5i/disp/de_bsp/de/disp_lcd.c被调用
----------------------------------------------------------
1.2 \linux-3.0\drivers\video\sun5i\lcd\lcd0_panel_cfg.c
入口文件:lcd0_panel_cfg.c
入口函数:
void LCD_get_panel_funs_0(__lcd_panel_fun_t * fun)
{
fun->cfg_open_flow = LCD_open_flow;
fun->cfg_close_flow = LCD_close_flow;
fun->lcd_user_defined_func = LCD_user_defined_func;
}
static __s32 LCD_open_flow(__u32 sel)
{
LCD_OPEN_FUNC(sel, LCD_power_on, 50); //open lcd power, and delay 50ms
LCD_OPEN_FUNC(sel, TCON_open, 500); //open lcd controller, and delay 500ms
LCD_OPEN_FUNC(sel, LCD_bl_open, 0); //open lcd backlight, and delay 0ms
return 0;
}
TCON_open函数在disp_lcd.c这个文件里面。
linux-3.0\drivers\video\sun5i\disp\de_bsp\de\dev_lcd.c
==============================================================================
显示驱动按照操作系统和运行阶段不同分为两个部分:boot 显示驱动和 linux
显示驱动,因此LCD 配置也对应两个部分
1,boot 阶段屏0 配置文件: lichee\boot\boot1\driver\drv_de\de_bsp\lcd\lcd0_panel_cfg.c
2,linux 阶段屏0 配置文件: lichee\linux-3.0\drivers\video\sun5i\lcd\lcd0_panel_cfg.c
1.生成drv_de.drv 2.生成lcd.ko
===============================================================================
2.进入disp目录。
==============================================================================
3.1. 调试
1、如果由于某些原因无串口打印, 可以用adb 进行打印.
命令是: adb shell cat /proc/kmsg
2、如果你想先调试 linux 阶段的LCD 显示, 可以将drv_de.drv 删除掉再进行
调试,以免boot 阶段的错误设置影响llinux 阶段的显示.