XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


Linux自带的led驱动

目录

Linux自带的led驱动

一般自带的驱动都是需要使用图形界面进行配置

图形界面–>Device Driver–>LED Support –> LED Support for GPIO connected LEDs

使能驱动之后在在文件.config中存在CONFIG_LEDS_GPIO=y, 会把驱动文件编译到内核之中

驱动分析

使用标准的platform-driver

module_platform_driver(gpio_led_driver);

使用一个宏完成函数的注册, 代替module_init和module_exit函数, 根据参数生成两个函数, 分别调用platform_driver_register, 和platform_driver_unregister, 使用宏定义完成之前写的函数

匹配的设备{ .compatible = "gpio-leds", },

驱动设备匹配之后会执行probe函数, 根据有没有设备树进行处理

使用

首先把驱动编译进内核里面, 根据文档设备树里面添加节点的信息

如果没有设备树, 需要使用platform_device_register向总线注册一个设备, 有设备树的话, 直接修改设备树, 添加对应的节点, 文档的目录在./document/device-tree/bindings/leds/leds-gpio.txt,