lcd驱动:
RGB 接口, 写一个lcd驱动,我的建议就是有空必须认认真真的看完 210的lcd 控制器的datasheet。
tiny210的lcd控制器支持很多复杂的功能,比如overlay , color-key等,我们这里不去关心。
一个lcd驱动简单来说就是软件框架和硬件数据传输。
软件框架:
参考fbmem.c 这部分网上资料很多。
硬件数据传输:
参考s5pv210 的lcd 控制器手册:
我们只需要根据 手册配置完相关寄存器实现下图的传输就好了。
附上lcd驱动的代码:
<strong>#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/clk.h>
#include <linux/fb.h>
#include <linux/io.h>
#include <linux/uaccess.h>
#include <linux/interrupt.h>
#include <linux/pm_runtime.h>
#include <mach/map.h>
#include <plat/regs-fb-v4.h>
#include <plat/fb.h>
#include <plat/gpio-cfg.h>
#include <linux/gpio.h>
#include <mach/regs-clock.h>
#include <mach/regs-gpio.h>
#include <linux/regulator/consumer.h>
static u32 pseudo_palette[16];
static volatile unsigned int *vidw00add0b0; // Window 2’s buffer start address register, buffer 0.
static volatile unsigned int *vidw00add1b0; // window 2’s buffer end address register, buffer 0
static volatile unsigned int *vidw00add2; // win dow 2’s buffer size register.
static v