SoC调试gpio不可控问题排查

GPIO不可控问题总结

判断是仅此gpio不可控还是一排的gpio不可控

1、仅此GPIO不可控

通过查看原理图,如果仅是这一个io口不可控,首先考虑复用问题,或被其他驱动占用

(1)如果是复用问题,通过下面命令查看io口被具体配置成了什么,或通过TRM文件查看寄存器配置,看被复用为了什么功能,

通过pinctrl修改管脚的配置,改为GPIO

cat /sys/kernel/debug/pinctrl/pinctrl/pin

(2)如果是被其他驱动占用,通过sys创建此gpio时,大概率会出现此gpio口繁忙被占用的打印,除非板子上没有实际的模块占用此gpio,这样就可以通过设备树的tmp文件去查看实际的配置,改写设备树使得此gpio可控

2、一排的GPIO不可控

如果是一排的GPIO都不可控,大概率是软件上电源域配置问题,找到这一排gpio的电源,在kernel/Documentation/devicetree/bindings/power/rockchip-io-domain.txt

找到这一路电源的软件定义,在dts中寻找“io_domain”,修改对应的电源为实际电路的电源配置