我正在基于iMX6的电路板上工作,并且正在尝试配置一些正在用作芯片启用和重置线路的GPIO。根据我所做的研究,处理这个问题的方法是通过设备树中的gpio-reset驱动程序。下面的文档我已经拿出了下面的代码编译,但我不知道如何从用户空间控制这些重置行。设备树GPIO重置
我使用的第一个设备树驱动程序是gpio-leds,它在sys/class中创建了一个leds文件夹,并带有节点来控制LED。但是我没有看到任何类似的重置。所以,我有2个问题:
1)是GPIO复位正确的绑定使用控制复位线,使线等
2)是否有关于如何处理这和用户的其他文档绑定空间,类似于我如何控制GPIO-LED?
内核:Linux的buildroot的4.1.15
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/omap.h>
#include "imx6ul.dtsi"
/{
model = "Freescale i.MX6 UltraLite 14x14 EVK Board";
compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
memory {
reg = <0x80000000 0x20000000>;
};
/* Reset Line Configuration */
gpio_resets {
compatible = "linux,gpio-reset";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpioreset>;
gnss {
gpios = <&gpio1 4 0>;
asserted-state = <0>;
duration-ms = <100>;
auto;
};
};
...
};
&iomuxc {
pinctrl-names = "default";
imx6ul-evk {
pinctrl_gpioreset:
gpiorstgrp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x000010B0 /* GNSS RESET_N */
>;
};
...
};
要使用的API将取决于您忽略提及的内核版本。您是否考虑将它们中的任何一个纳入设备驱动程序(即*“芯片启用和重置行”*看起来像它们可能与设备相关),而不是独立的GPIO? – sawdust
如果你的配置是正确的,你会看到/ sys/class/gpio/gpioNUMBER –
sawdust下的设备节点 - 这些将成为不需要驱动程序的设备的基本启用行,这就是我查找的原因在使用gpio-reset时,但也许有更好的方法。 –