IMX6Q-GPIO修改功能

2018-10-06  本文已影响0人  Lazy_Caaat
电路图

如图,我们要设置GPIO4_5为普通的GPIO口,用来控制设备的复位功能。
首先确认一下pad_name,这里有两个名字GPIO4_5和GPIO19,哪个是padname呢,分别复制这两个关键字在文档里查找


文档名称 查找结果
很明显,GPIO19是pad_name,为什么要确定pad_name呢,因为要修改或者配置复用关系,需要通过pad_name找到相关寄存器
怎么找寄存器参考这里
SW_PAD_CTL_PAD_GPIO19 这里比上个文章里少一个寄存器
相关寄存器 到这个路径下
打开imx6dl_pinfunc.h
查找GPIO4_IO05

记下来这个宏定义
MX6QDL_PAD_GPIO_19__GPIO4_IO05
打开自定义的设备树
找到&iomuxc


添加GPIO配置

添加完成后编译设备树即可

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
export ARCH=arm
export CROSS_COMPILE=arm-poky-linux-gnueabi-
make imx6q-krt.dtb
sudo dd if=arch/arm/boot/dts/imx6q-krt.dtb of=/dev/sdb bs=512 seek=20480 conv=fsync

计算gpio号:

nr=(P -1)* 32 + N; GPIOP_N;

这里nr=(4-1)*32 + 5=101

io文件操作gpio

echo 101 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio101/direction

echo 1 > /sys/class/gpio/gpio101/value    ---> 写高电平

echo 0 > /sys/class/gpio/gpio101/value    ---> 写低电平
上一篇 下一篇

猜你喜欢

热点阅读