5.4.2.内核驱动框架中LED的基本情况

本节综合分析了2.6.35.7内核中LED驱动框架的整体设计,相关的文件位置,九鼎移植时LED驱动的实现方法等。

5.4.2.1、相关文件

(1)drivers/leds目录,这个目录就是驱动框架规定的LED这种硬件的驱动应该待的地方。
(2)led-class.c和led-core.c,这两个文件加起来属于LED驱动框架的第一部分,这两个文件是内核开发者提供的,他们描述的是内核中所有厂家的不同LED硬件的相同部分的逻辑。
(3)leds-xxxx.c,这个文件是LED驱动框架的第2部分,是由不同厂商的驱动工程师编写添加的,厂商驱动工程师结合自己公司的硬件的不同情况来对LED进行操作,使用第一部分提供的接口来和驱动框架进行交互,最终实现驱动的功能。

5.4.2.2、九鼎移植的内核中led驱动

(1)九鼎实际未使用内核推荐的led驱动框架
(2)drivers/char/led/x210-led.c

5.4.2.3、案例分析驱动框架的使用

(1)以leds-s3c24xx.c为例。leds-s3c24xx.c中通过调用led_classdev_register来完成我们的LED驱动的注册,而led_classdev_register是在drivers/leds/led-class.c中定义的。所以其实SoC厂商的驱动工程师是调用内核开发者在驱动框架中提供的接口来实现自己的驱动的。
(2)驱动框架的关键点就是:分清楚内核开发者提供了什么,驱动开发者自己要提供什么。

5.4.2.4、典型的驱动开发行业现状

(1)内核开发者对驱动框架进行开发和维护、升级,对应led-class.c和led-core.c
(2)SoC厂商的驱动工程师对设备驱动源码进行编写、调试,提供参考版本,对应leds-s3c24xx.c
(3)做产品的厂商的驱动工程师以SoC厂商提供的驱动源码为基础,来做移植和调试

猜你喜欢

转载自www.cnblogs.com/Ocean-Star/p/9236283.html