添加LCD背光驱动

一.材料

  • 老师给的模板kernel
  • 自己实现的2.0kernel.机器ID7777

二.常用概念

  • LCD驱动属于platform类型的设备。只要是platform类型的设备就需要注册device和注册移植driver.
  • 由于LCD硬件的特殊性,我们需要设置屏幕硬件相关的数据结构。

三.移植LCD驱动

a.首先lcd的device需要传参数给driver

  • 在arch/arm/mach-s5pv210/mach-mini210.c的初始化函数下有一个s3cfbsetplatdata(&mini210fbdata)。功能是将LCD屏参数设置给fb驱动。
  • mini210fbdata怎么初始化,需要看内核源码。这里需要初始化mini210fbdata这个结构体。

b.注册设备device

  • 在arch/arm/mach-s5pv210/mach-lz_quiet.c。
  • 注册设备第一步,我们需要实现platformdevice结构体。devive结构体里面有一个.name成员。我们需要和driver里面的platformdriver.name一致。不然device和driver就不能匹配。(具体的看platform里面的mach函数。)
  • 注册设备需要在platform_device *smdkc110_devices[]数组中注册;

c.注册移植驱动driver

  • 我们需要从源码内核中移植我们的背光驱动到自己的内核中。
  • 移植后我们需要在内核中编译这个背光.c的驱动到内核中。所以我们需要实现Kconfig和Makefile
  • 实现Makefile:看原来内核Makefile中怎么添加背光驱动到内核。
  • 实现Kconfig:看原来内核Kconfig中怎么添加背光驱动。
  • 执行make menuconfig添加背光到内核。
  • 执行make生成zImage,最终下入开发板。

你可能感兴趣的:(添加LCD背光驱动)