MT7628如何控制GPIO
查看datasheet和确认GPIO复用引脚scheme
通过查看mt7628 datasheet可以明确复用关系:
在这里我以I2S对应的GPIO引脚为例。
查看 mt7628an.dtsi 文件中对gpio的注册
$(TOPDIR)假定为宿主机上 OpenWrt 的编译目录。
在$(TOPDIR)/target/linux/ramips/dts/mt7628an.dtsi 里找到gpio注册,结合 datasheet 中 GPIO pin share scheme 与 mt7628an.dtsi 中的定义可以知道:
mt7628 的 GPIO 一共被分为3组,gpio0,gpio1,gpio2,@后紧跟的数字为寄存器起始地址。
查看 mt7620.c 文件中对 gpio 及相应复用功能的定义
可以看到其中164 行FUNC中对于功能和引脚的说明,其中第一个参数 "i2s" 为功能名称,第二个参数 “0” 为功能编号,第三个参数 "0" 为起始的 GPIO 编号,第四个参数 “4” 为该功能共占用的 GPIO 管脚数目,总结起来就是 i2s 复用的 gpio 是从 GPIO#0 开始,共4个引脚,为 GPIO#0~GPIO#3。
之后需要查看 ralink group 包括的 group,结果如下:
可以看到 234 行 i2s 被包括在其中,下面就需要进行最关键的操作了。
修改 WRTNODE2R.dts 中的 ralink group 设定
也即把要使用的gpio对应的复用功能释放掉,将功能名称添加到 ralink group 即可。如下所示,添加 "i2s"。
在 WRTNODE2R.dts 中对 GPIO 进行注册
注:dts里对设备的注册很简单,如gpio-leds的注册,compatible要与Led的驱动leds-gpio.c里compatible对应,label是设备的名字,设备注册成功,在WRTnode文件系统下就会有相应的label设备名,在这里我以i2s 功能中 I2S_SDO对应的 GPIO#1 为例,注册如下:
查看GPIO对应设备名与使用
在这里,就看到我们在上一步执行成功的结果了。控制也很容易,进入该设备目录,里面会有 brigtness 文件,往该sysfs文件写入 0 或者 1 就可以控制高低电平了,这里默认direction 为输出,需要改变方向,修改 direction 文件。如下所示:
MT7628如何控制GPIO相关推荐
- Openwrt MT7628/MT7620/MT7621——GPIO及LED/KEY的功能实现
GPIO及LED/KEY的功能实现 流程介绍 GPIO功能注册和控制 MT7628支持引脚功能的复用,通过配置GPIO1_MODE和GPIO2_MODE寄存器可指定引脚的功能,通常在dts文件中对引脚 ...
- 4412 GPIO读 和 ioremap控制GPIO寄存器
一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...
- python控制gpio的一段代码抄的
控制gpio一个范例 1 import RPi.GPIO as GPIO 2 import time 3 4 channels = [16,18,22,24,26,19,21,23] 5 6 def ...
- sysfs方式控制GPIO
sysfs方式控制GPIO 使用"gpiolib"实现框架的平台可选择配置一个GPIO的sysfs用户接口,这不同于debugfs接口,因为它提供GPIO方向和值的控制,而不仅是显 ...
- matlab控制树莓派3b,树莓派3B+ 手机h5网页控制GPIO
ezgif-4-5d181e9b42.gif 本文介绍如何在H5页面控制树莓派GPIO 仅实现以BCM编码方式控制GPIO,其他方式未做. 演示地址:http://gpio.exmll.cn/ 点击B ...
- python控制gpio产生固定数量的脉冲_STM32L151用dma控制GPIO口发出指定的脉冲个数的疑惑!...
本帖最后由 mon51 于 2015-3-6 16:41 编辑 用DMA控制GPIO的一个IO脚,输出指定脉冲的个数项目,由于要低功耗!MCU主频不能高.采用的定时器联机,还是达不到输出150KHZ的 ...
- linux设备树sysfs,迅为-iMX6开发板-设备树内核-sys方式控制GPIO
本文档主要讲解迅为-iMX6 开发板,通过 sys 文件的方式来控制 GPIO. 要通过 sys 控制 GPIO,需要做以下几步操作: 1 开启内核中的"GPIO_SYSFS"驱动 ...
- linux下使用gpio控制代码,zynq linux 下控制gpio的c代码
在linux下控制gpio可以先用简单的命令行去控制下看看, 1. devmem 0x41200000 32 0x00000005 2.devicetree的结构如下 dip0: gpio_dip_s ...
- NanoPi-K2 控制GPIO
NanoPi-K2控制GPIO 前言 定位GPIO位号 函数介绍 板子管脚定义 确定管脚位号 编写及编译 .KO 驱动文件 开发环境搭建 驱动编写 驱动加载 编写及编译APP文件 前言 网上关于Nan ...
最新文章
- 解决Windows 2003中不允许的父路径Active Server Pages错误'ASP 0131'的方法
- HDU 5389 Zero Escape
- SDNU 1178.能量项链(区间dp)
- linux 固定ip_linux固定IP
- 论文浅尝 | 机器阅读理解中常识知识的显式利用
- java a星寻路算法_用简单直白的方式讲解A星寻路算法原理
- 借力阿里云存储产品 延锋彼欧加速数字化重塑
- webStrom破解链接
- 局域网虚拟服务器的工作模式,三种虚拟局域网实现方式有哪些差异?实现虚拟局域网的工具推荐...
- 2021最新千月影视全新改版影视app系统源码(全开源)源码下载
- idea 配置maven插件
- 四,AXI总线协议解析
- R语言求一行(列表、list)数据的平均数
- 关于 厦门“怪虫” 的一点感概
- 构造器(constructor)
- Linux系统 黏着位(SBIT) 详解
- 求n的阶乘和求n的阶乘和——两种方法
- Linux命令——性能监控glance命令详解
- iOS开发 info.plist设置app启动页面
- 常用的http响应状态码大全