Linux下led子系统 --- 实例篇

本例将根据上一篇分析的led子系统框架去讲述如何在子系统中注册一个led设备,前提是通过make menucong将device driver下面的LED Support和它下面的LED class support及相应的trigger打开.
具体步骤分三步:

1. 分配led_classdev结构体
     static struct led_classdev *led_devs;
     led_devs = kzalloc(sizeof(struct led_classdev), GFP_KERNEL);
     if (led_devs == NULL)
     {                    
         printk("alex.han %s:%d led_devs alloc error\n", __func__, __LINE__);
         return -1;       
     }     
2. 初始化这个结构体
     //设置led的最大亮度  LED_FULL在leds.h中定义,为255(有些led是可以通过控制电流来控制亮度的,)
     led_devs->max_brightness = LED_FULL;
     //设置led的默认亮度,LED_HALF在leds.h中定义,为127,如果不设置默认为0
     led_devs->brightness = LED_HALF;
     led_devs->flags = LED_CORE_SUSPENDRESUME;
     //这个led设备的名字,注册后将会在/sys/class/leds/目录下创建xxx设备目录
     led_devs->name = "xxx";
     //设置默认的trigger,如果不设置则默认trigger为0, 如果不需要trigger,这个地方可以不设置
     led_devs->default_trigger = "timer"; //默认trigger为timer
     //设置亮度的函数,当我们通过sys文件系统来调节led亮度的时候,会调用这个函数,当我们设置了trigger,对应的trigger也会调用这个函数
  
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值