LED驱动配置

本文详细指导如何在AML-S905X4平台上设置LED定时闪烁,包括修改设备树文件、配置LED节点、添加gpio-led驱动选项以及参考相关文档。

有时候开机时需要设置LED常量,或者LED间隔多少毫秒进行闪烁等配置

设置LED定时闪烁

1.修改以下设备树文件

aml-comp/kernel/aml-5.4/arch/arm64/boot/dts/amlogic/sc2_s905x4_ah212_linux.dts

2.在leds中配置LED节点信息

leds {
        compatible = "gpio-leds"; // LED 节点使用了 gpio-leds 驱动程序,这意味着它是一个使用 GPIO 引脚控制的 LED 设备
         
        sys_led { // 子节点 sys_led
            label = "sys_led"; // LED 设备的标签,用于标识该设备,在/sys/class/leds/xxxx中
            gpios = <&gpio GPIOD_11 GPIO_ACTIVE_LOW>; // LED 设备使用的 GPIO 引脚的编号和属性。
            default-state = "on"; // LED 设备的默认状态 on : 开启, off : 关闭
            linux,default-trigger = "timer"; // LED 设备的默认触发器,可以查看 https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml
            led-pattern = <250 250>; 如果设置了“timer”它表示属性 `delay_on``delay_off`,它们分别表示 LED 灯保持亮的时间和灭的时间
        };
         
        state_led { // 子节点 state_led,
            label = "state_led";
            gpios = <&gpio GPIOD_10 GPIO_ACTIVE_LOW>;
            default-state = "off";
        };
 
    };

3.添加gpio-led选项(以S905Y4为例)

a.查看leds_gpio驱动Makefile

aml-s905x4-androidr/common/drivers/leds/Makefile

查看编译选项
obj-$(CONFIG_LEDS_GPIO)            += leds-gpio.o   //把gpio-led编入kernel

b.查看驱动编译Makefile

aml-s905x4-androidr/common/drivers/Makefile

查看led的编译选项
obj-$(CONFIG_NEW_LEDS)        += leds/      //将led编入kernel

c.确定以下配置文件的配置

common/arch/arm64/configs/meson64_a64_R_defconfig

确定两个选项配置为y,如果没有可以增加

# 添加gpio-led编译选项
CONFIG_LEDS_GPIO=y
CONFIG_NEW_LEDS=y

对源码感兴趣的可以去 yocto-dunfell-202302-bsp/aml-comp/kernel/aml-5.4/drivers/leds 目录中学习
led-class.c 是主要入口
led-core.c 是LED的核心程序
trigger/ 是所有LED的触发器
timer 触发器的源码在 trigger/ledtrig-timer.c 中

参考文档

- leds-gpio.txt gpio-leds驱动程序说明
- common.yaml 常见的led属性
- leds-trigger-pattern.txt LED模式触发的格式
- Linux下的led子系统分析(一)
- Linux下的led子系统分析(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值