This article is written in November 13, this is only a record of the knowledge that has been covered in this area, may be useful for some knowledge of the future
For the platform bus model, you can refer to a previous article on the Linux driver platform bus model, which may be helpful for framebuffer driver registration
First, the LCD hardware framework
Second, LCD software framework
Third, LCD initialization process
Four, the LCD on and off process
Five, LCD data flow
VI. Driver Framebuffer
Location file
/android/kernel/drivers/video/fbmem.c
/android/kernel/drivers/video/msm/msm_fb.c
Frame buffering (framebuffer) is an interface provided by the Linux system to the thread device, which shows the buffer abstraction, shielding the underlying differences of the image hardware, and the upper application can read and write directly to the framebuffer.
Calling Register_framebuffer (struct Fb_info *fb_info) can register framebuffer, and registering framebuffer actually puts fb_info into a global array, To the back of the time will be in the array to fetch relevant information
There are more important fb_info in structural body
①struct fb_var_screeninfo Var, recording user-modifiable display controller parameters
Color bit domain struct Fb_bitfield in fb_var_screeninfo structure
②struct Fb_fix_screeninfo fix, record the user cannot modify the display controller parameters, such as physical address, length
Seven, driver Mipi_dsi
Location file/android/kernel/drivers/video/msm/mipi_dis.c
Viii. Driver MDP
Location file/android/kernel/drivers/video/msm/mdp.c
Nine, driver hx8369
Location file
/android/kernel/drivers/video/msm/mipi_hx8369b_video_wvga_pt.c
/android/kernel/drivers/video/msm/mipi_hx8369b.c
X. Driver board-level files
Location file/android/kernel/arch/arm/mach-msm/board-msm7627a-display.c
Finally, it's hard.
Linux Driver LCD Driver Learning Summary