使用设备树的 GPIO 默认配置 - Freescale i.MX6

问题描述 投票:0回答:3

如何配置 GPIO 引脚的默认设置设备树 - 特别是在 Freescale imx 系列上。

到目前为止,我只能使用 led 接口配置 gpios:

gpioinit {
   compatible = "gpio-leds";
    pinctrl-names = "default";
    mykpp {
        gpios = <&gpio4 15 1>;
    };
};

上面的代码在启动期间将 gpio 4 15 设置为 1,这就是我想要的。但是,我认为有一种更好的方法可以使该引脚在 sysfs 中显示为通用 gpio 而不是 gpio-led

config device gpio device-tree
3个回答
0
投票

如果是 GPIO,您的 dts 文件应显示类似以下内容:

    gpio0: gpio@c00 {
        #address-cells = <1>;
        #size-cells = <0>;
        cell-index = <0>;
        compatible = "fsl,mpc8377-gpio";
        reg = <0xc00 0x100>;
        interrupts = <74 0x8>;
        interrupt-parent = <&ipic>;
        gpio-controller;

        gpio-pin@11 {
            compatible = "fsl,mpc8377-gpio-input";
            active_status = "low";
            gpios = <&gpio0>;
            pin = <11>;
        };
    }

这个例子取自MPC8377的dts文件。您可能想看看 /drivers/gpio/gpio-fsl.c


0
投票

我最近需要这样做,但我发现“pin hog”是正确且更通用的解决方案。

这是一个很好的例子: 两个节点之间的设备树依赖关系

文档: https://www.kernel.org/doc/Documentation/devicetree/bindings/gpio/gpio.txt


0
投票

我刚刚在 i.MX6 和 Buildroot/Busybox、内核 v4.19.169 上测试了以下 DT。这是使其工作的 DT 片段,但是您不能再在用户空间中使用该引脚。顺便说一下,请注意

gpios =
属性的棘手语法。那个让我发疯了!

&gpio7 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_gpio_en>;

    sysstat@11 {
        gpio-hog;
        gpios = <11 GPIO_ACTIVE_HIGH>;
        output-low;
        line-name = "SYS_STAT";
    };
};

&iomuxc {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_gpios>;

        pinctrl_gpio_en: gpiostatgrp {
            fsl,pins = <
                MX6QDL_PAD_GPIO_16__GPIO7_IO11      0x130b0
            >;
        };
};

0x130b0 表示:迟滞、100K 下拉、PUE=1(上拉使能)、PKE=1(保持器使能)。即使缺少

sysstat@11
,这也足以将引脚驱动为低电平。但该引脚仍配置为输入。

检查引脚配置(注意 [used] 字符串):

# gpioinfo 6 | grep "line  11"                                                  
        line  11:      unnamed   "SYS_STAT"  output  active-high [used]         

另一种方法是删除

sysstat@11
节点以仅进行引脚复用和引脚配置。但我不确定它是否非常聪明。

还有另一种选择,因为引脚默认配置为 GPIO,所以根本不更改 DT,而是使用 /etc/init.d 脚本,并使用命令

gpioset 6 11=0
。它也有效,但不如 DT 选项快。

我想我会选择最后一个选择。

© www.soinside.com 2019 - 2024. All rights reserved.