高通平台GPIO漏电问题分析方法
在Android智能手机项目开发过程中,我们经常会遇到GPIO漏电导致系统底电流偏高。故总结一下:1、首先建议HW将怀疑漏电的GPIO与外围电路彻底断开2、如果依然漏电,使用命令检查GPIO状态:相应的实现代码:LINUX/android/kernel/drivers/pinctrl/qcom/pinctrl-msm.cstatic void msm_gpio_dbg_show_one(struc
在Android智能手机项目开发过程中,我们经常会遇到GPIO漏电导致系统底电流偏高。故总结一下:
1、首先建议HW将怀疑漏电的GPIO与外围电路彻底断开
2、如果依然漏电,使用命令检查GPIO状态:
相应的实现代码:
LINUX/android/kernel/drivers/pinctrl/qcom/pinctrl-msm.c
static void msm_gpio_dbg_show_one(struct seq_file *s,struct pinctrl_dev *pctldev,struct gpio_chip *chip,unsigned offset,unsigned gpio)
static void msm_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
3、如果发现GPIO状态确实异常,则使用下面的方法来确定AP侧是否可以控制该GPIO
可以使用echo GPIO##ID > export,创建GPIO##ID目录
cd GPIO##ID
echo out/in > direction
如果配置为输出,则可以echo 1/0 > value,如果可以输出“1”或者“0”,则说明AP控制GPIO正常。
测试完成后,也可以使用echo GPIO##ID > unexport,删除GPIO##ID目录
4、检查该GPIO##ID的相应DTS配置,重点检查pinctrl default和sleep配置,因为有可能系统睡眠时,并没有将该GPIO##ID配置为sleep,而使用的一直都是default。
5、只要设备与驱动attach成功,就会配置相应的GPIO为default,并不是只能在设备驱动中才能配置哦,具体原因请看:https://blog.csdn.net/yxw0609131056/article/details/80662462
更多推荐
所有评论(0)