背景
买了一块荣品的全志A40i开发板,默认安卓系统,5寸MIPI屏(友达)。想换成Linux系统,厂家给了个标准SDK但是需要自己改MIPI驱动,扔了两份屏的资料,不知道怎么修改。
尝试过的方法
在SDK的驱动中,找到了一个类似的驱动N080_Panel.c,其中初始化代码是这样的:
但是厂商给的一份资料中,参数个数是四个,不知道怎么填进去:
另一份资料是excel表,如此这般:
我想要达到的结果
该如何修改这个N080_Panel.c里的驱动来适配这个5寸屏?或者有没有其他方法?
背景
买了一块荣品的全志A40i开发板,默认安卓系统,5寸MIPI屏(友达)。想换成Linux系统,厂家给了个标准SDK但是需要自己改MIPI驱动,扔了两份屏的资料,不知道怎么修改。
尝试过的方法
在SDK的驱动中,找到了一个类似的驱动N080_Panel.c,其中初始化代码是这样的:
我想要达到的结果
该如何修改这个N080_Panel.c里的驱动来适配这个5寸屏?或者有没有其他方法?
一、前期准备
1、准备屏幕数据手册:厂家FAE提供
2、准备屏幕初始化参数:厂家FAE提供
3、确定屏幕类型:一般mipi dsi屏幕分为:video mode和commond mode
4、准备原理图,硬件工程师提供,确定屏幕供电、rst、te、mipi(几lane)、背光bl-en、pwm等引脚
二、移植驱动
此处和其他平台有点区别,A40i经过笔者测试发现,生效的地方在uboot,kernel里面的驱动并不起做用
1、找到lichee\brandy\u-boot-2014.07\drivers\video\sunxi\disp2\disp\lcd目录,参考里面现有驱动,inet_dsi_panel.c
(1)修改LCM_LT080B21BA94_setting屏幕初始化参数,初始化参数由fae提供
(2)修改LCD_power_on函数,根据数据手册,增加上电时序
2、修改参数配置,找到lichee\tools\pack\chips\sun8iw11p1\configs\a40-p1\sys_config.fex
lcd_used = 1 //
lcd_driver_name = "default_lcd"----->修改为uboot驱动,屏幕的配置字符串inet_dsi_panel,
lcd_driver_name = "inet_dsi_panel"
lcd_x = 1280
lcd_y = 800 分辨率改为720 * 1280
修改前后肩参数,根据数据手册查得
lcd_hbp = 143
lcd_ht = 1503
lcd_hspw = 32
lcd_vbp = 36
lcd_vt = 845
lcd_vspw = 10
lcd_hspw = hsync
lcd_hbp = hbp
lcd_ht = lcd_x + hsync + hbp + hfp
lcd_vbp = vbp
lcd_vt = lcd_y + vsync+ vbp + vfp
lcd_vspw = vsync
修改电源和背关
lcd_bl_en = port:PB9<1><1>
;lcd_gpio_0 = port:PB11<1><0><1>
lcd_power = "vcc-lcd"
修改pwm
[pwm0]
pwm_used = 1
pwm_positive = port:PB2<3><0>
[pwm0_suspend]
pwm_positive = port:PB2<7><0>
修改mipi配置
lcd_dsi_if = 2
lcd_dsi_lane = 4
修改完,编译,烧录、验证,经验丰富的话,基本直接就可点亮屏幕了