openwrt-dts-gpio-控制LTE上电及LED点亮

记录一下

板子MT7620 16+64 


最近在弄LTE/4G的移植.当kernel添加了usb cdc-acm rndis以后。发现板子没有发现LTE模块。

在LTE模块上接上串口,没有打印输出。

测量电压发现电压也不对。


于是猜测LTE模块没有上电。

查找MT7620 datasheet 查找GPIO给LTE模块上电的GPIO口。


通过电路图发现,GPIO为 11 低电平 则给模块上电。


于是在/sys/class/gpio 下面 输入如下命令:

echo 11 > export

[ 1572.890000] rt2880-pinmux pinctrl: pin 66 is not set to gpio mux
[ 1572.910000] rt2880-pinmux pinctrl: request() failed for pin 66
[ 1572.920000] rt2880-pinmux pinctrl: pin-66 (pio:66) status -22
ash: write error: Invalid argument


提示如上错误。

这是因为11管脚被复用了.

所以要对它进行解复用.(这块我自已也搞糊涂了,不清楚是要解复用还是要复用。希望清楚的同学帮忙指证一下。)

于是就要想办法把管脚11的GPIO文件给搞出来。于是研究了一下DTS 中GPIO相关的东西。


//这篇文档给了我极大的帮助。

//它详细的解释了,如何解释了GPIO的对应关系,如何设置等方法

http://wiki.wrtnode.com/index.php?title=Released_multiused_GPIO_and_register_gpio-leds/zh-cn

直接把内容贴过来了。


mt7620n.dtsi里对gpio的注册

我们假定$(TOPDIR)为OpenWrt的编译目录。

在$(TOPDIR)/target/linux/ramips/dts/mt7620n.dtsi里有对gpio的注册

注:结合mt7620的datasheet里GPIO pin share schemes以及在mt7620n.dtsi里我们看到有,将GPIO#0到GPIO#72(中间有仅仅做GPO或GPI的)分为四组GPIO0-GPIO3;

对应GPIO0是从GPIO#0开始到GPIO#23,一共有24个;对应GPIO1是从GPIO#24开始到GPIO#39,一共有1

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值