Allwinner lcd

主要是概括一个mipi dsi驱动

关键字:
        S6D7AA0X01_panel

文件:
        vide/sunxi/disp2/disp/lcd/S6D7AA0X01.h
        vide/sunxi/disp2/disp/lcd/S6D7AA0X01.c
        vide/sunxi/disp2/disp/lcd/panels.h
        vide/sunxi/disp2/disp/lcd/panels.c
  
文件分析:
   1. 屏S6D7AA0X01.c和h中:
                定义__lcd_panel_t S6D7AA0X01_panel结构,并导出
    
    c文件中主要是一个结构,结构包含name和func,
        func {
            .cfg_panel_info = LCD_cfg_panel_info,        //gamma校正,色彩映射
            .cfg_open_flow = LCD_open_flow,              //打开电源,屏初始化,打开背光
            .cfg_close_flow = LCD_close_flow,
            .lcd_user_define_func = 
        
        }
    
   2.panels.h和panels.c
        lcd_init
            |
             --> sunix_disp_get_source_ops()    
                         //这个函数其实是个初始化,传递实际调用函数地址
                         //如背光sunxi_lcd_backlight_enable = bsp_disp_lcd_backlight_enable
                        //过程后面初始化屏,点背光调用sunxi_lcd_backlight_enable
            |
             --> lcd_set_panel_funcs()
                         |
                          --> sunxi_lcd_set_panel_funs(panel_array[i]->name, &panel_array[i]->func);
                                                          |
                                                          --> &S6D7AA0X01_panel   //panel_array[] 
        
面向过程,看代码一般是先看底,然后反向找实际调用过程,
然后去追代码就感觉,程序的编写就相反,把实际调用函数的地址一层层传递下来

传递过程与文件路径:

        bsp_disp_lcd_backlight_enable()                                          //disp2/disp/de/disp_display.c
    
        lcd->backlight_enable = disp_lcd_backlight_enable;                       //disp2/disp/de/disp_lcd.c
        
        bsp_disp_lcd_backlight                                                   //disp2/disp/de/disp_disp.c
                |
                ---> ret = lcd->backlight_enable(lcd); 
       
        src_ops->sunxi_lcd_backlight_enable = bsp_disp_lcd_backlight_enable;     //disp2/disp/dev_disp.c
        
        sunxi_lcd_backlight_enable(en);            //屏中,背光最直接使能调用
                    
        

 

Guess you like

Origin blog.csdn.net/John_chaos/article/details/108824292