SPI LCD 显示驱动
简介
R128 平台提供了 SPI DBI 的 SPI TFT 接口,具有如下特点:
- Supports DBI Type C 3 Line/4 Line Interface Mode
- Supports 2 Data Lane Interface Mode
- Supports data source from CPU or DMA
- Supports RGB111/444/565/666/888 video format
- Maximum resolution of RGB666 240 x 320@30Hz with single data lane
- Maximum resolution of RGB888 240 x 320@60Hz or 320 x 480@30Hz with dual data lane
- Supports tearing effect
- Supports software flexible control video frame rate
同时,提供了SPILCD驱动框架以供 SPI 屏幕使用。
模块驱动
menuconfig配置说明
SPILCD 模块 menuconfig 的配置如下(以选择kld2844b屏为例):
Drivers Options --->
soc related device drivers --->
SPILCD Devices --->
[*] DISP Driver Support(spi_lcd)
[*] spilcd hal APIs test //spilcd模块测试用例
LCD_FB panels select ---> //spilcd屏驱动配置
[*] LCD support kld2844B panel
[ ] LCD support kld35512 panel
Board select --->
[ ] board kld2844b support //板级显示使用显示驱动私有方式的配置项,而使用sys_config.fex方式不用配置
另外可能需依赖的配置项有:
- DRIVERS_SPI
- DRIVERS_DBI
- DRIVERS_PWM
源码结构介绍
源码结构及主要驱动文件如下:
spilcd/
├── lcd_fb/
│ ├── dev_lcd_fb.c # spilcd driver 层
│ ├── disp_display.c
│ ├── disp_lcd.c
│ ├── lcd_fb_intf.c
│ └── panels/ # lcd驱动相关
│ ├── kld2844b.c
│ ├── lcd_source.c
│ ├── panels.c
│ └── panels.h
└── soc/
├── disp_board_config.c # 板级配置解析
└── kld2844b_config.c # 显示私有方式的板级配置文件
模块参数配置
当前板级显示支持两种配置方法,一是使用 sys_config.fex
的方式进行配置,二是在不支持sys_config.fex
情况下,可以通过显示驱动私有的方式进行配置。下面分别对两种方式进行说明。