[Atmel] Linux 驱动 怎么关闭心跳触发器

[复制链接]
1406|3
 楼主| yanghelovehuang 发表于 2018-8-6 14:44 | 显示全部楼层 |阅读模式
本帖最后由 yanghelovehuang 于 2018-8-6 14:45 编辑

最近写了一个rgb驱动程序,已经实现,可是设备树信息中蓝灯设置了心跳触发器,每次我点亮蓝灯时都会被心跳触发器打乱导致蓝灯不能正常发光。于是我想如果有用户调用rgb驱动操作灯时,就关闭心跳触发器,不让蓝灯闪。
rgb驱动启动开发板时自动加载的有心跳触发器,启动时无用户操作就让蓝灯闪烁便是正常运行,所以不能不用心跳触发器,只有在用户调用时为了避免干扰必须得关掉触发器。相关代码如下:
struct gpio_led led = {};
fwnode_property_read_string(child, "linux,default-trigger", &led.default_trigger);

求各位知道的大佬指点下,怎样关闭触发器。

john_lee 发表于 2018-8-6 18:31 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| yanghelovehuang 发表于 2018-8-7 09:28 | 显示全部楼层

请问下能不能驱动程序里用程序关闭呢? 因为上面说了开发板没有用户调用ioctl对灯进行操作时,让触发器正常工作。也可以这样说如果开发板程序出现某个问题,点亮一种颜色的灯,表示出现了某个错误。如果开发板程序运行正常就让蓝灯一直闪。所以触发器是不能配置关闭的,只能驱动中临时关闭。
john_lee 发表于 2018-8-7 11:54 | 显示全部楼层
yanghelovehuang 发表于 2018-8-7 09:28
请问下能不能驱动程序里用程序关闭呢? 因为上面说了开发板没有用户调用ioctl对灯进行操作时,让触发器正 ...

LED驱动程序没有“关闭”的说法。它是callee(被调用者),哪个 caller(调用者)来调用它,它不能区别对待,只能响应和服务。
所以,你要“关闭”的,应该是内核中的 LED Trigger,它就是一个 caller。
如果所有你不需要的 caller 都“关闭”了,那么 LED 驱动程序 callee 就只有响应你需要的 caller 了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

324

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部