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

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 阶段显示正常。

原文地址:http://blog.csdn.net/dearsq/article/details/51210703
欢迎转载,转载著名作者 Younix 及 原文地址!谢谢!

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值