前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动, Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,本章我们就来学习如何使用 Linux 内核自带的 LED 驱动来驱动正点原子的 STM32MP1 开发板上的 LED0 和 LED1 这两个 LED 灯。
1、Linux 内核自带 LED 驱动使能
这里是用新编译出来的uImage镜像文件来启动开发板,正点原子错了。
我们一直是利用ulmage编写。二者没有很大的区别,ulmage比zImage只是多了头文件!
2、Linux 内核自带 LED 驱动简介
2.1、LED 灯驱动框架分析
2.2、 module_platform_driver 函数简析
可以看到结构中包含platform注册和注销两个定义了,说明只要执行module_platform_driver就完成了注册和注销!
这就是一整套驱动的注册和注销!变的更方便了!
2.3、gpio_led_probe 函数简析
3、设备树节点编写