linux驱动:6ull(6)设备树下的 LED 驱动

目录

步骤

添加设备节点

驱动代码


步骤

  • 在dts文件中的根目录下创建相应的设备节点
  • 编译设备树,make dtbs,将设备树发送到板子上
  • 检测板子上是否有alphaled节点
  • 编写驱动,获取设备树中的相关属性
    • 创建注册驱动和卸载驱动函数
    • 创建gpioled设备结构体
    • 创建文件操作集
    • 获取设备节点
    • 注册字符设备
    • 注销字符设备
  • 加载模块
  • 测试模块,测试app请看前面文章

添加设备节点

alphaled {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "alientek,alphaled";
    status = "okay";
    reg = < 0X020C406C 0x04 /* CCM_CCGR1_BASE */
        0X020E0068 0X04     /* SW_MUX_GPIO1_IO03_BASE */
        0X020E02F4 0X04     /* SW_PAD_GPIO1_IO03_BASE */
        0X0209C000 0X04     /* GPIO1_DR_BASE */
        0X0209C004 0X04>;   /* GPIO1_GDIR_BASE */
};
  • address-cells和size-cells属性是表示reg的格式,一个为地址,一个为长度
  • compatible属性为厂家描述
  • status属性为可操作的
  • reg属性为led的寄存器地址列表,一共有五个地址

驱动代码

#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/gpio.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/of.h>
#include <linux/of_address.h&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值