led设备节点添加

本文总结了在Android系统中如何为LED设备创建节点,通常在probe函数中完成,涉及struct drvdata定义、led_classdev注册、节点注册以及错误处理。此外,还介绍了abc_attr_group结构用于创建控制节点,并在remove函数中执行unregister操作。
摘要由CSDN通过智能技术生成

说在前面. 最近因为工作原因,天天在操作和调试led. 是时候写个总结啦.

在Android机中,一般都会把led设备的节点创建到/sys/class/leds下面. 创建节点的操作通常放在probe函数里面做.

这个时候需要做的包括:

  • 定义一个struct drvdata(在.h文件中,或者在driver的c文件中都可以),并且在这个结构里面包含struct led_classdev abc_led;
struct drvdata {
	struct led_classdev abc_led;
};

 

  • 在probe函数中,声明一个1中的struct drvdata的指针变量drvdata_t,并且把这个变量和driver中的device绑定. 下面是对于i2c设备的操作,其他类型的设备操作类似.
drvdata_t = devm_kzalloc(&client->dev, sizeof(struct drvdata), GFP_KERNEL);
  • 接着就是把这个结构下面的abc_led的成员给填好并且调用函数led_classdev_register.也就是在probe里面调用下面的函数,当然也可以直接在probe里面写函数内容,就是不太好看.
static int abc_led_register(struct device *dev, struct drvdata *data)
{
	data->led.name = "abc_led";

	data->led.brightness = LED_OFF;
	data->led.max_brightness = LED_HALF;
	data->led.default_trigg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值