如何在kernel里定期侦测gpio状态?

楼主: sm9195 (sm9195)   2017-01-09 12:41:56
各位大大好,
我想请问该如何再kernel里定期去侦测gpio的状态?
因为目前想透过直接控制gpio的high 与low的改变,去触发driver做一些重载其他driver
的动作。
只是目前查到的都是需要透过userspace那边做select或poll之类的来检查gpio。
想请问是否有方法可以只在kernel实作?
先感谢各位的回复。
如果有发文不恰当,也请多多包涵与指教^^
作者: james732 (好人超)   2017-01-09 13:08:00
做成interrupt会不会比较好?
作者: wens (文思)   2017-01-09 14:17:00
interrupt 要 gpio 支援 interrupt, 不然就用 task / worker看看 mmc core 用 gpio 做 card detect 的做法吧
作者: askacis (ASKA)   2017-01-09 14:25:00
开一只 kernel thread监测GPIO状态
楼主: sm9195 (sm9195)   2017-01-09 17:14:00
感谢各位提供方向,我会去试试看,再来分享结果
作者: mayasky ( )   2017-01-10 02:06:00
注册个timer event?
作者: aweilin   2017-01-11 20:41:00
schedule_delayed_work ?定期去做pooling
作者: clampsakura (妖應封光)   2017-01-14 02:22:00
Interrupt + SIGIO
作者: changyuheng (张昱珩)   2017-01-26 16:53:00
楼主: sm9195 (sm9195)   2017-02-22 13:52:00
感谢各位,小弟日前使用request_irq,搭配tasklet或workqueue,可成功侦测gpio的变化,然后做相对应的动作。还有,我所侦测的gpio有支援中断。

Links booklink

Contact Us: admin [ a t ] ucptt.com