高通使用/system/bin/r读取msm8916的gpio配置
使用文档:
80-NK807-2X msm8916 software interface for oems.pdf
http://wenku.baidu.com/link?url=2u78OI8f8sSWyFSHKwmgZgmMJL4CK-8eQrZ0WRm6ZDUxiOUgrJq3HPJdNHdFMkEma2xiqF6e1mQCPaUv9-HllEhP-yWatCv9MS5eeHrvLxi
通过直接读取gpio相应配置寄存器的值来分析对应gpio的配置情况
打开文档80-NK807-2X msm8916 software interface for oems.Pdf
找到 TLMM部分。
重要的两个描述GPIO的寄存器:
Msm8916一共有122个GPIO, 每个GPIO均有这3个寄存器描述功能,包括输入输出,驱动电流,是否上拉或者下拉,中断功能。
以任意一个GPIO为例(gpio20):
20->14h
所以三个寄存器对应的地址为:
0x01000000+0x1000*14h = 0x01014000
0x01000004+0x1000*14h = 0x01014004
0x01000008+0x1000*14h = 0x01014008
读取方法:
adb root
adb shell
/system/bin/r 0x01014000 --》01014000: 00000201
/system/bin/r 0x01014004 --》01014004: 00000003
/system/bin/r 0x01014008 --》01014008: 000000e2
对于读出来数据的定义通过寄存器对每位数据的定义可以得出:
201h '1000000001 9bit=1 代表输出;6-8bit=0,驱动能力2mA;2-5位0,普通GPIO功能,参考下图;0-1位=1,下拉功能。
3h'0011 代表输出为高。
E2h'11100010 最低位为0,代表disable中断功能。