[RK3288][Android6.0] Display驱动初始化流程小结【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/52584903
Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
以MIPI DSI接口的lcd为例.
rk_screen.c:
读取lcd timing参数。
lcd_mipi.c:
屏幕mipi配置信息。
rk_fb.c:
fb驱动。
rk3288_lcdc.c
lcdc controller驱动。
rk32_mipi_dsi.c:
dsi controller驱动。
mipi_dsi.c
mipi dsi 操作函数集.
开机按如下顺序执行.
//mipi dsi接口相关信息初始化
rk_mipi_screen_init -> lcd_mipi.c
platform_driver_probe -> //name是rk_mipi_screen
rk_mipi_screen_probe ->
rk_mipi_screen_init_dt //读取mipi信息, lane number, power, gpio, sceen on cmds.
//fb相关信息读取
rk_fb_init -> rk_fb.c
platform_driver_register -> //name: "rockchip,rk-fb"
rk_fb_probe -> //获取disp-mode, u-boot-logo-on等参数。
rockchip_ion_client_create //创建ion client。
//timing参数初始化
//不管是那种接口类型的lcd,lcd的时序参数都是要读取的.
rk_screen_init -> rk_screen.c
platform_driver_register -> //name: "rk-screen"
rk_screen_probe ->
rk_fb_prase_timing_dt -> //读取来的配置存在结构体变量rk_screen中.
of_get_display_timing //获取时序参数,dts中可以配置多组,这里会循环读取。
display_timings_get //根据当前native-mode来选取当前使用哪组时序参数。
rk_fb_video_mode_from_timing //把timing转换到fb video mode中去供后续使用。
//mipi dsi controller初始化
//如果是另外的接口那就调用相应的接口控制器驱动来初始化.
rk32_mipi_dsi_init -> rk32_mipi_dsi.c
platform_driver_register -> //name: "rk32-mipi"
rk32_mipi_dsi_probe -> //初始化struct dsi结构,包括clock, dsi ops, rk_screen传递过来的参数,
rk_fb_get_prmry_screen //获取在之前rk_screen_probe()中初始化的rk_screen变量.
rk_mipi_dsi_probe ->
register_dsi_ops //dsi->ops给dsi_ops
dsi_probe_current_chip //检车dsi chip是否存在.
rk_fb_trsm_ops_register //注册trsm_mipi_ops为trsm_dsi_ops
//lcdc控制器注册:
rk3288_lcdc_module_init -> rk3288_lcdc.c
platform_driver_register -> //name: "rk3288-lcdc"
rk3288_lcdc_probe ->
rk3288_lcdc_parse_dt //读取lcdc控制器的参数
dev_drv->ops = &lcdc_drv_ops; //lcdc对应ops
devm_request_irq //lcdc对应irq是rk3288_lcdc_isr()
rk_fb_register -> //对应ops是lcdc_drv_ops
init_lcdc_device_driver ->
init_lcdc_win //一个lcdc能支持4层win.
rk_disp_pwr_ctr_parse_dt //解析lcdc power ctrl相关内容。
rk_fb_set_prmry_screen
rk_fb_trsm_ops_get //根据不同的屏幕类型选择对应的ops.
framebuffer_alloc //系统根据win的多少来创建相应数量的fb
fbi->fbops = &fb_ops; //fb ops
rkfb_create_sysfs //生成到/dev/graphics/fbx/下
register_framebuffer
rkfb_create_sysfs
//以下code只跑一次
kthread_run //创建rk_fb_wait_for_vsync_thread
dev_drv->ops->post_dspbuf //show logo
[RK3288][Android6.0] Display驱动初始化流程小结【转】的更多相关文章
- [RK3288][Android6.0] TS-ADC驱动流程小结【转】
本文转载自:https://blog.csdn.net/kris_fei/article/details/55045936 Platform: RK3288OS: Android 6.0Kernel: ...
- [RK3288][Android6.0] 调试笔记 --- Goodix GT9和GT9F区别【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/78341425 Platform: RK3288 OS: Android 6.0 Kernel ...
- [RK3288][Android6.0] U-boot 启动流程小结【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/52536093 Platform: RK3288OS: Android 6.0Version: ...
- [RK3288][Android6.0] 系统按键驱动流程分析【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/77894406 Rockchip的按键驱动位于 kernel/drivers/input/ke ...
- [RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】
本文转载自:http://m.blog.csdn.net/kris_fei/article/details/69553422 Platform: ROCKCHIPOS: Android 6.0Kern ...
- [RK3288][Android6.0] 音频调试方法小结【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/70053135 Platform: ROCKCHIPOS: Android 6.0Kernel ...
- [RK3288][Android6.0] 关于uboot中logo相关知识点小结【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/76256224 Platform: Rockchip OS: Android 6.0 Kern ...
- [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/77318410 Platform: Rockchip OS: Android 6.0 Kern ...
- [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/71515020 Platform: RockchipOS: Android 6.0Kernel ...
随机推荐
- JS如何禁用浏览器的退格键
<script type="text/javascript"> //处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 function forb ...
- C#语言中循环分类总结
C#语言中,循环主要分为4种,分别是:while循环.do while循环.for循环.foeach循环.下面我将分类对循环语句总结. 1.while循环: 如果循环条件为真,则执行循环体:执行完循环 ...
- HYSBZ - 2763 飞行路线(分层图最短路线)
题目: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价 ...
- MySQL-----查
数据库在我眼中就是增删改查,而查,我觉得是数据库最费劲的,数据库的花式查,各种查.下面咱们不废话,就是干. 查: **查数据库版本** select version(); **查登录用户** sele ...
- 【BZOJ 2118】 墨墨的等式(Dijkstra)
BZOJ2118 墨墨的等式 题链:http://www.lydsy.com/JudgeOnline/problem.php?id=2118 Description 墨墨突然对等式很感兴趣,他正在研究 ...
- 九度oj 题目1206:字符串连接
题目1206:字符串连接 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:5117 解决:2373 题目描述: 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来 ...
- [luoguP1098] 字符串的展开(模拟)
传送门 一个模拟. 代码 #include <cstdio> #include <cstring> #include <iostream> #define iswo ...
- codeforces 363B
#include<stdio.h> #include<string.h> #define inf 999999999 #define N 151000 int a[N],c[N ...
- bzoj1834 网络扩容 网络流
好久没写题解了啊··· 题目大意: 给你一幅n个点的网络,先求出其1到n的最大流,每条弧还会有个属性\(cost_i\),表示没扩容一个单位的费用,现在我们要求的就是扩容K个单位的最小费用 思路: 这 ...
- Java日期LocalDate使用
在做报表统计时,需要对指定时间内的数据做统计,则需要使用到时间日期API 在此使用的是java.util.Date的完美私生子LocalDate类 LocalDate方法介绍 now() : 从默认时 ...