您的位置:首页 > 其它

展讯平台 LCD(Mipi)移植步骤及问题归纳

2016-04-22 12:07 1406 查看
原创文章,原文地址:/article/10200314.html

欢迎转载,转载请保留地址!

PortingGuide

Backlight

背光的硬件设计有两种情况:

1. 内置并联背光

2. 外置串联背光

对于 1 的情况,步骤如下:

1.移植对应的 lcd 驱动。

2.设置u-boot\drivers\video\sprdfb\sprdfb_main.c中的背光为内置:

void set_backlight(uint32_t value)函数中,添加white_led = 1;

3. 在 kernel/drivers/video/backlight/sprd_backlight.c 的

#if (defined(CONFIG_SPX15))前面

删除下述宏定义,只定义 #define SPRD_BACKLIGHT_WHITELED

-- #ifdef CONFIG_BACKLIGHT_SPRD_PWM_MODE
--       /*if the backlight is driven by pwm, use this MACRO */
--       #define SPRD_BACKLIGHT_PWM
-- #else
--       /*the backlight is driven by whiteled default */
--       #define SPRD_BACKLIGHT_WHITELED
--       #define SPRD_DIM_PWM_MODE
-- #endif
++ #define SPRD_BACKLIGHT_WHITELED


4.在sprd_bl_whiteled_update_status中,删除如下操作:

sci_adi_raw_write(PD_PWM_BASE + PWM_SCALE, PWM_PRESCALE);
sci_adi_raw_write(PD_PWM_BASE + PWM_CNT,(pwm_level << 8) | PWM_MOD_MAX);
sci_adi_raw_write(PD_PWM_BASE + PWM_SCALE, PWM_SCALE | PWM_ENABLE);


对于 2 的情况, 展讯默认采用的便是外置串联,所以不需要进行配置。但是可以通过 展讯平台 LCD(Mipi) 加载流程分析 来了解 LCD 和 Backlight 的加载过程。

LCD

LCD 的加载分为两个部分,U-Boot 和 Kernel,同样移植也分为这两个部分。

U-Boot

1.添加驱动文件 u-boot/drivers/video/sprdfb/lcd/lcd_ek79007_mipi.c

2.添加编译规则 u-boot/drivers/video/sprdfb/lcd/Makefile

COBJS-$(CONFIG_FB_LCD_EK79007_MIPI) += lcd_ek79007_mipi.o


3.配置 LCD 编译选项及 LCD 尺寸 u-boot/include/configs/sp7731gea_hdr.h



4.关联到内核 u-boot/drivers/video/sprdfb_panel.c

添加





 Kernel

1.添加驱动文件 kernel/drivers/video/sprdfb/lcd/lcd_ek79007_mipi.c

注意代码文件中需要添加



2.添加 Makefile

obj-$(CONFIG_FB_LCD_EK79007_MIPI) += lcd_ek79007_mipi.o


3.添加 config kernel/arch/arm/configs/sp7731gea_hdr-dt_defconfig

CONFIG_FB_LCD_EK79007_MIPI=y


4.修改 Kconfig

config FB_LCD_EK79007_MIPI
boolean "support ek79007 mipi panel"
default y


调试过程中遇到的问题

Q: Backlight 不亮

A: 因为采用的是展讯默认的外置串联背光电路,所以软件方面不需要额外配置。

检查硬件:

检查背光的电压是否有给



——>



——>



依次检查

LCM_BL_PWM 输出的波形 (正常)

LEDA 电压(异常)交由硬件检查进一步发现,有一颗电阻阻值异常(1.3欧错贴成了1.3k欧)

修改后,背光正常:白屏

Q:LCD 白屏

A:移植完成驱动后应该至少可以点亮(显示东西,虽然显示的东西可能有误)

但是实际为白屏(只点亮了背光)

检查 屏的电压是否正常。要保证这样几个地方电压是正常的:

VGH 和 VGL



——> 这个地方的使能脚控制 VGH 和 VGL



——> 发现LCD_PWREN 接到的是 LCM_CABC



而 LCM_CABC 是无法管脚复用的

所以直接飞线到一个高电压,LCD_PWREN 使能脚为高电压。

Q:开机时,先白屏,然后慢慢的变暗(背光一直为亮)

A:继续检查硬件,发现 LCD_VDD 没有 LDO 电压供电。

解决办法是 从 BUFFER 电压飞线过去,用的是 VDD_1V8,板子走线宽度是 2.5mm,可以正常使用。

至此 Kernel 部分可以正常显示,但是 U-Boot 阶段花屏。

Q:抓取 Log 发现 LCD panel info: 720 x 1280, 16 bit/pix

但是实际应该是 600 x 1024 ,追踪代码发现 Panel Info 是根据 u-boot/drivers/video/sprdfb/sprdfb_panel.c 来输出的



在 u-boot/include/configs/sp7731gea_hdr.h 中发现并修改



并且在烧录的时候修改bootloader阶段的图片为 600x1024 的 bmp

u-boot 阶段显示正常。

原创文章,原文地址:/article/10200314.html

欢迎转载,转载请保留地址!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: