MTK平台设置GPIO

先来命令行,这种最方便

节点位置:./sys/devices/platform/1000b000.pinctrl/mt_gpio

查看cat mt_gpio你会发现一串9位数字. 至于是什么,得看文档,本人就不重复了.

现在操作一下文档里讲不清楚的地方.

#设置为普通IO
echo mode 81 0 > mt_gpio
echo mode 84 0 > mt_gpio
 
#设置为输出
echo dir 81 1 > mt_gpio
echo dir 84 1 > mt_gpio
 
#输出低电平
echo out 81 0 > mt_gpio
echo out 84 0 > mt_gpio
 
#驱动能力
echo driving 81 7 > mt_gpio
echo driving 84 7 > mt_gpio

然后是写代码设置,为啥要写代码?因为kenerl太晚了

//preloader位置
vendor/autochips/proprietary/bootable/bootloader/preloader/platform/kunt11/src/core/main.c 这里也可以操作gpio. 这里是最早的

稍晚一点是LK

lk设置GPIO
./mediatek/proprietary/bootable/bootloader/lk/platform/kunt11/mt_gpio_init.c

代码如下

mt_set_gpio_mode(81, 0);
 mt_set_gpio_dir(0x80000000 + 81, 1);
 mt_set_gpio_out(0x80000000 + 81, GPIO_OUT_ZERO);
 mt_set_gpio_mode(0x80000000 + 81, 0);
 mt_set_gpio_drving(81,7 );
 
 mt_set_gpio_mode(84, 0);
 mt_set_gpio_dir(0x80000000 + 84, 1);
 mt_set_gpio_out(0x80000000 + 84, GPIO_OUT_ZERO);
 mt_set_gpio_mode(0x80000000 + 84, 0);
 mt_set_gpio_drving(84,7 );

至于为啥有些要加0x800000有些不加 ,这个我没验证.有没有误人子弟不知道,都是追代码得到的

至于复用功能和状态,据我测试cd /sys/devices/platform/1000b000.pinctrl是查看不到的.我怀疑跟杰发自己实现的那一套有关.

以上.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值