回答

收藏

让米尔 mys-y6ull 支持自己的屏幕

#其他 #其他 3215 人阅读 | 0 人回复 | 2018-08-07

米尔开发板mys-y6ull 的u-boot 源码从头到尾快看完了,看到屏幕很激动,顺带把荔枝派的拆机屏幕移植到 mys-y6ull-iot 这个板子上。
先看怎么移植,稍后再详细看uboot是怎么解析添加的代码。
因为 u-boot 把所有的框架都搭建好了,并且mys-y6ull-iot 这个板子已经支持官方的屏幕,那就是底层的lcdc米尔已经把工作完成了,很好,不用动了不用操心,省了很多事,所以很激动。
现在要做的就是适配屏幕,源码里增加一个display_info_t结构体实例:

这个结构体的成员变量mode结构体是这样的:

看看米尔的结构体实例:

把这个结构体实例复制一个出来,仅仅修改成员变量mode的参数,修改之后代码如下:

红圈中的代码是自己添加的,从前面那个逗号开始
修改mode里面的参数,除了一个vmode 参数没有用,其他全部改成自己的。
.name 随便起个名字,然后添加一个panel变量和这个名字一摸一样:


完成了,重新编译,烧录启动,看看效果,不好就调整 mode 的参数,慢慢调试,软件适配就这么多。
便于观察,我加了个CONFIG_IDENT_STRING宏。


硬件适配:接口线序不同,就各种转接板飞线一起上。

我的调试出来是这个样的:

添加了不到20行代码,就可以匹配荔枝派的拆机屏了。
估计每个人手上都有屏幕,但是不同厂家的屏幕接口、线序、驱动板等等会有很大差异,几乎不能通用,读读源码改改代码,硬件自己DIY,适配自己的屏幕其实也没那么难。
文中用到的:
display_options 结构体在文件:MYiR-iMX-uboot\arch\arm\imx-common\video.h 中
fb_videomode 结构体在文件:MYiR-iMX-uboot\include\linux\fb.h 中
displays 实例在文件:MYiR-iMX-uboot\board\myir\mys_imx6ull\mys_imx6ull.c 中
添加的panel变量名在文件:MYiR-iMX-uboot\include\configs\mys_imx6ull.h 中
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条