今天分享一个简单,但也许很实用的功能,大神请飘过。
## 设备树中与LED有关的内容
在设备树文件arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts中,有以下内容
leds {
compatible = "gpio-leds";
blue_led {
label = "licheepi:blue:usr";
gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
};
green_led {
label = "licheepi:green:usr";
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
default-state = "on";
};
red_led {
label = "licheepi:red:usr";
gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
};
};
其中
gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
代表引脚 6 * 32 + 1 也就是 PG1( A~G: 0~6)
其名字为:licheepi:blue:usr
## 系统启动后与LED控制有关的文件
系统启动后,将看到这样的文件
# ls /sys/class/leds/
licheepi:blue:usr licheepi:green:usr licheepi:red:usr
这里三个文件夹分别对应设备树中定义的三个LED。
## 如何控制LED灯亮灭
点亮LED
echo 1 > /sys/class/leds/licheepi\:green\:usr/brightness
熄灭LED
echo 0 > /sys/class/leds/licheepi\:green\:usr/brightness
控制LED闪烁
# ls /sys/class/leds/licheepi\:blue\:usr/
brightness max_brightness subsystem uevent
device power trigger
# cat /sys/class/leds/licheepi\:blue\:usr/trigger
[none] kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc0 heartbeat default-on
这里可以看到当前的值为none,表示没有trigger,将其值改成heartbeat就可以看到闪烁了
# echo heartbeat > /sys/class/leds/licheepi\:blue\:usr/trigger
最近编辑记录 ifree64 (2020-08-04 07:36:18)
离线
感谢分享,led子系统还是比较好用的。
离线
感谢楼主分享宝贵经验!
离线
感谢楼主分享,又学到一点
离线
感谢分享,led子系统还是比较好用的。
离线
感谢楼主分享宝贵经验!
离线
@ifree64
只是在sun8i-v3s-licheepi-zero.dts 修改,就可以在ubooting点亮LED,其他位置不用动?
离线
感谢分享,又学到了
离线
does anybody work on baremetal programing on f1c100s?
离线