查看: 2478|回复: 0

[资料] 明远智睿IMX6ULL配置GPIO管脚和测试

[复制链接]
  • TA的每日心情
    无聊
    2016-8-19 09:36
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-6-26 11:01:17 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 明远智睿123 于 2019-6-26 11:02 编辑

    IMX6ULL配置GPIO管脚和测试


    简介
    MY-IMX6-CB140P-6Y2D-256M-4G,如下图:(6Y2D是IMX6ULL,256M是内存,4G是EMMC)
    对于的设备树文件为arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dts
    文件内容:
    QQ截图20190626101228.jpg
    /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管脚,如下图
    1.png
    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管脚名,如下图
    2.png
    后面GPIO1_IO03代表功能,其实我们在myimx6y-pinfunc.h可以看到很多预定义的功能:
    这里我们选择GPIO功能:MX6UL_PAD_GPIO1_IO03__GPIO1_IO03
    3.png


    测试
    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
    4.png
    5.png


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 05:26 , Processed in 0.117613 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.