gpio 輸出模式不生效


在高通平台遇到的一個問題:

一個gpio 63, 在 dts 中配置了,在驅動中能讀到這個 gpio , 然后 gpio_request, gpio_direction_output, 都檢查返回值,沒有報錯,但是 通過

gpio_get_value 得到的值就是不生效。

首先 檢查函數的返回值, 比如 gpio_request,可能這是只能表示 這個 gpio 被其他模塊占用,功能還是gpio, 設置output 應該可以生效。

在 dts 中搜索 tlmm 63, 確實也沒有其他模塊占用。

然后,應該是 pinmux 配置不對, 找到 msm8998-pinctrl.dtsi,搜索 gpio63, 配置不正確,修改為 gpio 配置后 ok。

 

結論: 設置gpio 需要先配置 pinmux, 再 檢查 有沒有被其它模塊占用, 然后在 代碼中 添加 該 gpio 的操作函數。另外,不同的平台設置

有可能不一樣,我看 rk 平台的文檔,里面說明 通過 gpio_request 這個函數設置首先會把 pinmux 配置為gpio,當時在 rk 平台用過

幾個 gpio ,確實沒有注意pinmux 的配置,就生效了,需要看 gpio_request 的函數的實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM