Android-led三色灯

1、设备树配置

确定三色灯是硬件三色灯还是软件三色灯,查看硬件原理图,根据硬件原理图的设计判断三色灯的挂在,以及确定三色灯是使用什么控制,比如:i2c

2、添加三色灯的驱动,一般目标驱动所放位置kernel/msm-4.14/drivers/leds,不同平台可能不一样,驱动文件需要FAE提供,设备树所配置的compatible需要和驱动文件里面的相匹配

3、把驱动文件加入到编译选项中,在高通平台中是.mk文件或者是Makefile文件,在编译选项中驱动文件所对应的宏加到对应项目的*_perf_defconfig和*_defconfig文件当中,这两个文件一般在kernel/msm-4.14/arch/arm64/configs文件夹下面

4、确定probe成功,可以加一些log查看

5、在probe成功和设备树解析完成等等情况下,对节点进行验证。

brightness,blink,breath等等节点,其中blink节点有的平台可以使用delay_on和delay_off进行控制,不需要再重新添加节点。

验证的方法是:

echo 255 > brightness

echo 0 > brightness

echo 1  > breath

echo 0 > breath

6.创建节点

第一步:

sysfs_create_group(&led→cdev.dev→kobj,&XXX_attr_group);   创建一组节点 led→cdev.dev→kobj这个为创建的节点所在目录即此对应的是sys/class/leds/red、green、blue下面

sysfs_create_files(&led→cdev.dev→kobj,breath_attrs);   创建一个节点

第二步:

static DEVICE_ATTR(ramp_time, 0664, NULL, ramp_time_store);  后面两个参数为show和store

static DEVICE_ATTR(scaling, 0664, NULL, scaling_store);

static DEVICE_ATTR(ontime, 0664, NULL, ontime_store);

static DEVICE_ATTR(period, 0664, NULL, period_store);

 

static struct attribute *XXX_attrs[] = {

        &dev_attr_ramp_time.attr,

        &dev_attr_scaling.attr,

        &dev_attr_ontime.attr,

        &dev_attr_period.attr,

        NULL

};

 

static const struct attribute_group XXX_attr_group = {                                                                                                                                                  

    .attrs = XXX_attrs,

};

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值