MTK GPIO

本文档介绍了在Android 6.0上针对MTK平台的GPIO调试与配置方法,包括使用ADB工具进行GPIO验证,通过DCT工具配置GPIO参数,以及探讨了MTK旧API和pinctrl方法。内容涵盖了GPIO的中断模式、上下拉配置、方向控制等,并提供了相关配置文件的生成和驱动代码调用。
摘要由CSDN通过智能技术生成

GPIO 调试(adb工具 Android 6.0)

#adb shell
#cd  /sys/devices/virtual/misc/mtgpio/
#cat pin    //获取GPIO状态
            // 每行数据对应  IO编号: 模式, 输入上拉选择,输入值,输出值,输入上拉使能,方向,输入翻转
#echo -wmode 60 0 > pin  //设置GPIO60为模式0,即普通IO模式
#echo -wdir 60 1 > pin 	 //设置GPIO60为输出模式
#echo -wdir 60 0 > pin   //设置GPIO60为输入模式
#echo -wpen 60 1 > pin   //使能GPIO60上/下拉
#echo -wpsel 60 1 > pin  //设置GPIO60为上拉
#echo -wdout 60 1 > pin  //设置GPIO60输出高

具体可查看mt_gpio.h文件上的定义,进行GPIO的验证调试。
使用ADB工具连接设备,操作GPIO,一般用于驱动调试前的涉及GPIO的一般性操作(如拉高拉低)的验证,确保硬件上不存在问题。

GPIO的配置(DCT工具)

在这里插入图片描述
依次来看下GPIO的配置项:
EintMode:中断模式
M0~M7:GPIO支持的模式选择
Def.Mode:默认的模式,根据后面勾选的M0~M7中选择默认模式
InPull En:是否支持上下拉
InPull Sel High:选择上拉还是下拉,勾选表示上拉
Def.Dir:input还是output
In:input
Out:output
OutHigh:输出为高电平还是低电平
SMT#:SMT group
SMT:是否支持SMT(schmitt trigger)功能,波形过滤,输出方波或者脉冲波,延迟滞后具有消噪的功能。一般不用勾选

DCT工具中对codegen.dws文件的配置,编译后最终生成cust_gpio_boot.h和cust_gpio_usage.h两个头文件

GPIO 的使用

MTK 的旧时API(MTK 不建议)

MTK对于GPIO的控制有一套API,但官方已不建议使用此API进行GPIO控制,具体的API及参数定义可查看 <mt-plat/mt_gpio.h>文件
对GPIO的控制流程:
设置mode >> 设置dir >>设置上下拉使能 >>设置上下拉

/*direction*/
int mt_set_gpio_dir(unsigned long pin, unsigned long dir);
int mt_get_gpio_dir(unsigned long pin);

/*pull enable*/
int mt_set_gpio_pull_enable(unsigned long pin, unsigned long enable);
int mt_get_gpio_pull_enable(unsigned long pin);

/*schmitt trigger*/
int mt_set_gpio_smt(unsigned long pin, unsigned long enable);
int mt_get_gpio_smt(unsigned long pin);
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值