IMX6Q-GPIO修改功能
2018-10-06 本文已影响0人
Lazy_Caaat
![](https://img.haomeiwen.com/i2385803/8876067e2706e7e5.png)
如图,我们要设置GPIO4_5为普通的GPIO口,用来控制设备的复位功能。
首先确认一下pad_name,这里有两个名字GPIO4_5和GPIO19,哪个是padname呢,分别复制这两个关键字在文档里查找
![](https://img.haomeiwen.com/i2385803/a5c566baa22fd6db.png)
![](https://img.haomeiwen.com/i2385803/cf0e7b4bd55ad14f.png)
很明显,GPIO19是pad_name,为什么要确定pad_name呢,因为要修改或者配置复用关系,需要通过pad_name找到相关寄存器
怎么找寄存器参考这里
![](https://img.haomeiwen.com/i2385803/e53567e0f6eb2d3f.png)
![](https://img.haomeiwen.com/i2385803/3f8625423f631206.png)
![](https://img.haomeiwen.com/i2385803/734fa827dc1546ad.png)
![](https://img.haomeiwen.com/i2385803/986bbbfa742f56d8.png)
![](https://img.haomeiwen.com/i2385803/dbb2fdd488c93923.png)
![](https://img.haomeiwen.com/i2385803/3e2292da034ab5e2.png)
记下来这个宏定义
MX6QDL_PAD_GPIO_19__GPIO4_IO05
打开自定义的设备树
找到&iomuxc
![](https://img.haomeiwen.com/i2385803/518a58f2b315db6c.png)
添加完成后编译设备树即可
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 ---> 写低电平