一、引脚状况
ROC-RK3568-PC开发板上有 2 个 LED 灯,如下表所示:
二、以设备的方式控制LED
以下通过 /sys/class/leds/ 目录控制这两个 LED。
开发板上的 LED 的默认状态为: Blue: 系统上电时常亮 Yellow:自定义
通过 echo 命令向其 brightness 属性输入命令控制每一个 LED:
三、以trigger方式控制LED
Trigger 包含多种方式可以控制 LED,这里就用两个例子来说明。
Simple trigger LED Complex trigger LED
更详细的说明请参考 kernel/Documentation/leds/leds-class.txtleds-class.txt 。 首先我们需要知道定义多少个 LED,同时对应的 LED 的属性是什么。
注意:compatible 的值要跟 kernel/drivers/leds/leds-gpio.c 中的 .compatible 的值要保持一致。
3.1 Simple trigger LED
这是简单的触发方式控制 LED,如下就默认打开黄灯,ROC-RK3568-PC 开机后黄灯就亮。
(1)定义 LED 触发器。
在 kernel/drivers/leds/trigger/led-firefly-demo.c 文件中有如下添加:
(2)注册该触发器
(3)控制 LED 的亮度
(4)打开LED demo
led-firefly-demo 默认没有打开,使用以下补丁打开 demo 驱动:
3.2 Complex trigger LED
使用 timer trigger 可以让 LED 达到不断亮灭的效果:
首先需要在内核把 timer trigger 配置上。
在 kernel 路径下使用 make arch=arm64 menuconfig,选中以下配置:
保存配置并编译内核,把 kernel.img 烧到 ROC-RK3568-PC 上,使用串口或 ADB 输入以下命令,就可以看到蓝灯不停的间隔闪烁。
还可以使用 cat 命令获取 trigger 的可用值:
|