IMX6ULL配置GPIO管脚和测试

简介

MY-IMX6-CB140P-6Y2D-256M-4G,如下图:(6Y2D是IMX6ULL,256M是内存,4G是EMMC)

对于的设备树文件为arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dts

文件内容:

/*

 

MYZR Technology Co.,Ltd

http://www.myzr.com.cn

Tang Bin [email protected]

*/

/dts-v1/;

 

#include “myimx6y-pinfunc.h”

#include “myimx6y.dtsi”

 

#include “myimx6ek140p-iomuxc.dtsi”

#include “myimx6ek140p-6y-snvs.dtsi”

#include “myimx6cb140-nand4emmc.dtsi” /* myimx6cb140-nand4nand.dtsi /

#include “myimx6a7-lcd4wvga.dtsi” / myimx6a7-lcd4wqvga.dtsi /

#include “myimx6a7-enet4enet.dtsi” / myimx6a7-enet4uart.dtsi */

#include “myimx6ek140p.dtsi”

 

/ {

model = “MYIMX6EK140P-6Y-256M-eMMC Evaluation Kit”;

compatible = “myzr,myimx6cb140”, “myzr,myimx6ek140p”, “fsl,imx6ull”;

};

介绍说明:

myimx6y-pinfunc.h 是 imx6ull 全部预定义管脚都在这里(可以在这边复制管脚)

myimx6y.dtsi 是 imx6ull 核心注册设备信息

myimx6ek140p-iomuxc.dtsi 是 imx6ull 定义管脚功能(管脚修改,需要改到这个文件)

myimx6ek140p-6y-snvs.dtsi 是 imx6ull 定义管脚功能(管脚修改,需要改到这个文件)

myimx6a7-lcd4wvga.dtsi 是 RGB屏相关管脚和分辨率参数

myimx6a7-enet4uart.dtsi 是 配置一个以太网,配置uart6,7,8

myimx6a7-enet4enet.dtsi 是 配置两个以太网

myimx6ek140p.dtsi 是 imx6ull 注册设备信息 (增加驱动,需要改到这个文件)

 

配置GPIO管脚

这里讲解P21的34和36管脚,如下图

IMX6ULL配置GPIO管脚和测试_第1张图片

vim arch/arm/boot/dts/myimx6ek140p.dtsi

增加

&iomuxc {

pinctrl-names = “default”;

pinctrl-0 = <&pinctrl_nand_gpio &pinctrl_gpio_gpio &pinctrl_snvs_4g_rst &pinctrl_snvs_gpio>;

};

里面&pinctrl_gpio_gpio表示GPIO注册时,会注册&pinctrl_gpio_gpio里面的管脚。

 

arch/arm/boot/dts/myimx6ek140p-iomuxc.dtsi

定义了两个管脚

pinctrl_gpio_gpio: gpio_gpio_grp {

fsl,pins = <

MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x80000000 /* P21:36 /

MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x80000000 / P21:35 */

>;

};

MX6UL_PAD_GPIO1_IO03__GPIO1_IO03分为两段,前面那段GPIO1_IO03是CPU管脚名,如下图

IMX6ULL配置GPIO管脚和测试_第2张图片

后面GPIO1_IO03代表功能,其实我们在myimx6y-pinfunc.h可以看到很多预定义的功能:

这里我们选择GPIO功能:MX6UL_PAD_GPIO1_IO03__GPIO1_IO03

IMX6ULL配置GPIO管脚和测试_第3张图片

测试

IMX6ULL代表每个BANK是32个管脚, io端口号= (((bank) - 1) * 32 + (nr))

GPIO1_IO03代表第1组gpio中的第3个gpio口,其中每组32个gpio口

io端口号为IMX_GPIO_NR(1,11)=32×(1-1)+3=3

 

root@myimx6ek140p:~# echo 3 > /sys/class/gpio/export

root@myimx6ek140p:~# echo out > /sys/class/gpio/gpio3/direction

root@myimx6ek140p:~# echo 1 > /sys/class/gpio/gpio3/value

root@myimx6ek140p:~# echo 0 > /sys/class/gpio/gpio3/value

IMX6ULL配置GPIO管脚和测试_第4张图片

你可能感兴趣的:(IMX6ULL配置GPIO管脚和测试)