标签:输出 o_direct 问题 占用 不同 value 检查 bsp 文档
在高通平台遇到的一个问题:
一个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 的函数的实现。
标签:输出 o_direct 问题 占用 不同 value 检查 bsp 文档
原文地址:https://www.cnblogs.com/mojl-cnblogs/p/13036567.html