嵌入式爱好者

查看: 35941|回复: 0

[Linux] IMX6ul-GPIO的修改方法

  [复制链接]

3

主题

39

帖子

398

积分

i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证AM335x通行证

扫一扫,手机访问本帖
发表于 2016-10-24 09:25:12 | 显示全部楼层 |阅读模式
本帖最后由 技术学习 于 2016-10-24 09:26 编辑

方法一:采用iomux的方法
在设备树中iomux中添加复用gpio引脚如下:


for i in /sys/class/gpio/* ; do cat $i/label; cat $i/base; echo; done 查询gpiobase

一般可以这样计算GPIOn_IOx = (n-1)*32 + x

此时可以使用echo命令进行控制:
命令为:
echo $i > /sys/class/gpio/export

echo "out" > /sys/class/gpio/gpio$i/direction
或echo "in" > /sys/class/gpio/gpio$i/direction

echo "1" > /sys/class/gpio/gpio$i/value
echo "0" > /sys/class/gpio/gpio$i/value

echo $i > /sys/class/gpio/unexport
或者使用 open("/sys/class/gpio/export", O_WRONLY); write函数进行控制。参考test.c

方法二:创建dev/gpio节点。


添加driver/misc/gpio/gpio-user.c,修改Makefile文件编译。
修改 driver/misc/Makefile 添加:
obj-y            += gpio/
linux_imx6ul_config中添加:
CONFIG_GPIO_USER_INTF=y
编译之后。在dev下有gpio节点。
采用gpio-test.c为用户测试程序。编译为gpio-test


使用gpio-test in 2测试DI
使用gpio-test out 9 1 测试DO 输出为高电平。
使用gpio-test out 9 0 测试DO 输出为低电平。

12.png
34.png

评分

参与人数 1贡献 +30 收起 理由
飞凌-chongzi + 30 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 08:52

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表