如何在kernel裡定期偵測gpio狀態?

看板LinuxDev作者 (sm9195)時間7年前 (2017/01/09 12:41), 編輯推噓4(408)
留言12則, 8人參與, 最新討論串1/1
各位大大好, 我想請問該如何再kernel裡定期去偵測gpio的狀態? 因為目前想透過直接控制gpio的high 與low的改變,去觸發driver做一些重載其他driver 的動作。 只是目前查到的都是需要透過userspace那邊做select或poll之類的來檢查gpio。 想請問是否有方法可以只在kernel實作? 先感謝各位的回覆。 如果有發文不恰當,也請多多包涵與指教^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.15.5.164 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1483936919.A.2BA.html

01/09 13:08, , 1F
做成interrupt會不會比較好?
01/09 13:08, 1F

01/09 14:17, , 2F
interrupt 要 gpio 支援 interrupt, 不然就用 task / worker
01/09 14:17, 2F

01/09 14:17, , 3F
看看 mmc core 用 gpio 做 card detect 的做法吧
01/09 14:17, 3F

01/09 14:25, , 4F
開一隻 kernel thread監測GPIO狀態
01/09 14:25, 4F

01/09 17:14, , 5F
感謝各位提供方向,我會去試試看,再來分享結果
01/09 17:14, 5F

01/10 02:06, , 6F
註冊個timer event?
01/10 02:06, 6F

01/11 20:41, , 7F
schedule_delayed_work ?定期去做pooling
01/11 20:41, 7F

01/14 02:22, , 8F
Interrupt + SIGIO
01/14 02:22, 8F

01/26 16:53, , 9F
01/26 16:53, 9F

02/22 13:52, , 10F
感謝各位,小弟日前使用request_irq,搭配tasklet或workqu
02/22 13:52, 10F

02/22 13:52, , 11F
eue,可成功偵測gpio的變化,然後做相對應的動作。還有,
02/22 13:52, 11F

02/22 13:52, , 12F
我所偵測的gpio有支援中斷。
02/22 13:52, 12F
文章代碼(AID): #1OSnINAw (LinuxDev)