NUC972 添加LED驱动 leds_gpio 方式

LED驱动的方式有多种,可以自定义驱动,然后通过/dev/myled 设备文件,来控制led。

也可以通过内核 led驱动架构来控制,通过/sys/leds/myled/ 里面的各种文件来控制。内核还提供了一个非常方便的方法,就是用过leds_gpio驱动来控制LED. 我们只需要配置相关引脚就新了。

步骤如下:

1.添加配置引脚

修改 dev.c 文件   在内核目录/arch/arm/mach-nuc970/ 中。

添加头文件


#include <linux/leds.h> // add by simon for leds_gpio driver

添加引脚配置

#if defined(CONFIG_LEDS_GPIO)
//================leds_gpio add by simon =============
static struct gpio_led gpio_leds[] = {  
    {  
        .name = "red",  
        .gpio = NUC970_PH12,
        .default_state = LEDS_GPIO_DEFSTATE_ON, // 默认LED亮  
        .active_low = 0, // 低电平亮  
        .default_trigger = "timer", // 触发器  
    },  
};  
  
static struct gpio_led_platform_data gpio_led_info = {  
     .leds          = gpio_leds,  
     .num_leds     = ARRAY_SIZE(gpio_leds),  
}; 

static struct platform_device leds_gpio = {  
    .name = "leds-gpio",  
    .id = -1,  
    .dev = {  
        .platform_data = &gpio_led_info,  
        //.release = platformdev_release,  
    },  
};  
//=====================================================
#endif

2.添加设备文件

把 leds_gpio 设备添加到 static struct platform_device *nuc970_public_dev[] __initdata 这个设备数组中。 系统启动时会自动加载设备。

static struct platform_device *nuc970_public_dev[] __initdata = {

...

#if defined(CONFIG_LEDS_GPIO)
    &leds_gpio,
#endif

...

};

3.配置内核

 

 

 

触发器的选择按需所需,timer是1秒周期性亮灭,heartbeat 是 闪2下,闪2下,cpu是按cpu使用率闪烁等。

4.编译

编译并更新内核,可以看到在sys目录下已经有了leds目录了,下面有个red的设备,这个名称和我之前配的相同

5.测试

/sys/devices/platform/leds-gpio/leds/red # echo 1 > brightness
/sys/devices/platform/leds-gpio/leds/red # echo 0 > brightness
/sys/devices/platform/leds-gpio/leds/red # cat trigger 
[none] nand-disk mmc0 timer oneshot heartbeat backlight gpio cpu0 default-on transient 
/sys/devices/platform/leds-gpio/leds/red # echo oneshot > trigger
/sys/devices/platform/leds-gpio/leds/red # echo heartbeat > trigger
 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值