1.DCT工具:
GPIO后varname表示该IO有被作为其他功能调用
2.仅作输入引脚
GPIO67~86
3.开机模式下查看GPIO状态
在adb shell环境下输入一下命令:
cd /sys/devices/virtual/misc/mtgpio
4.用户空间调用gpio
/******ZHANGLEI************/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/mtgpio.h> //ioctl cmd
int fd = open("/dev/mtgpio", O_RDWR);
if (fd < 0) {
SXLOGE("Open file /dev/mtgpio failed!\n");
return -1;
}
ioctl(fd,GPIO_IOCTMODE0,89);
ioctl(fd,GPIO_IOCTDIROUT,89);
ioctl(fd,GPIO_IOCSDATALOW,89);
close(fd);
/******ZHANGLEI************/
5.
关机后充电指示灯亮:
\172.21.1.173\share\zhanglei\SIM5000_GIT\MT6572\ap_base\alps\mediatek\external\ipod\ipodmain.cpp
中mian函数中ipod_chgcontrol后添加:
/******ZHANGLEI************/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/mtgpio.h>
int fd = open("/dev/mtgpio", O_RDWR);
if (fd < 0) {
SXLOGE("Open file /dev/mtgpio failed!\n");
return -1;
}
ioctl(fd,GPIO_IOCTMODE0,89);
ioctl(fd,GPIO_IOCTDIROUT,89);
ioctl(fd,GPIO_IOCSDATALOW,89);
close(fd);
/******ZHANGLEI************/
充电过程中开机时指示灯任然亮的解决方法:
\\172.21.1.173\share\zhanglei\SIM5000_GIT\MT6572\ap_base\alps\mediatek\external\ipod\ipodcommon.cpp
中status_cb函数中case EVENT_EXIT_IPOD:后添加:
/******ZHANGLEI************/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/mtgpio.h>
int fd = open("/dev/mtgpio", O_RDWR);
if (fd < 0) {
SXLOGE("Open file /dev/mtgpio failed!\n");
return -1;
}
ioctl(fd,GPIO_IOCTMODE0,89);
ioctl(fd,GPIO_IOCTDIROUT,89);
ioctl(fd,GPIO_IOCSDATAHIGH,89);
close(fd);
/******ZHANGLEI************/
GPIO用户空间ioctl命令头文件:
<linux/mtgpio.h>