如何在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