如何使用linux系统自带的led驱动

我们平时要使用设备驱动的时候,总是需要我们自己去编写驱动,像 LED 灯这样非常基础的设备驱动,Linux 内核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可

1.使用menuconfig使能(可跳过,系统默认配置好)

在终端进入内核源码中输入命令:make menuconfig
按照如下路径打开 LED 驱动配置项:
-> Device Drivers
-> LED Support (NEW_LEDS [=y])
->LED Support for GPIO connected LEDs
将其编译进 Linux 内核,也即是在此选项上按下“Y”键,使此选项前面变为“<*>”
在这里插入图片描述
重新make编译一下 Linux 内核,然后使用新编译出来的 zImage 镜像启动开发板

2.设备树节点编写

打开自己板子对应的 .dts设备树文件找到“ /{ }”根文件下添加相应的设备节点
在这里插入图片描述
如图所示,我在结尾添加了一个设备节点,名字为dtsleds(根据自己喜欢命名)。
然后compatible = “gpio-leds”;一定要有并且不能修改,因为系统会自动匹配这个名字。
设置 label 属性,此属性为可选,每个子节点都有一个 label 属性,
label 属性一般表示LED 灯的名字,比如以颜色区分的话就是 red、green 等等。
每个子节点必须要设置 gpios 属性值,表示此 LED 所使用的 GPIO 引脚!可以设置“linux,default-trigger”属性值,也就是设置 LED 灯的默认功能
backlight:LED 灯作为背光。
default-on:LED 灯打开
heartbeat:LED 灯作为心跳指示灯,可以作为系统运行提示灯。
ide-disk:LED 灯作为硬盘活动指示灯。
timer:LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改
可以设置“default-state”属性值,可以设置为 on、off 或 keep,为 on 的时候 LED 灯默
认打开,为 off 的话 LED 灯默认关闭,为 keep 的话 LED 灯保持当前模式。
上面关于pinctrl的语句是关于pinctrl子系统的,需要用的话要创建相应的节点,不会使用的话可以不要写上去,忽略就好了。

3.运行测试

1)将设备树文件保存后编译出dtb文件加载到开发板
2)启 动 以 后 查 看/sys/bus/platform/devices/dtsleds 这个目录是否存在,如果存在的话就如到此目录中
在这里插入图片描述
3)进入到/sys/devices/platform/dtsleds/leds/red/内对led的属性进行操作
在这里插入图片描述
输入echo 1 > brightness 打开led灯,0便是关闭
echo heartbeat > trigger 表示led以心跳灯闪烁
根据现象修改调试就好了设备树节点就好了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值