私はiMX6に基づいてボード上で作業しており、チップのイネーブルおよびリセットラインとして使用されているいくつかのGPIOを設定しようとしています。私が行った研究に基づいて、これを処理する方法は、デバイスツリーのgpio-resetドライバを使用することです。ドキュメントの後、私はコンパイルする以下のコードを思いついたが、ユーザ空間からこれらのリセット行をどのように制御するのかよくわからない。デバイスツリーGPIOリセット
私が使った最初のデバイスツリードライバは、LEDを制御するノードを持つsys/classのledsフォルダを作成したgpio-ledsでした。しかし、私はリセットのための同様の何も表示されません。だから私は2つの質問があります:
など、1)は、リセットラインを制御するために使用する正しい結合GPIO-RESETラインをイネーブル
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 –
おがくずのデバイスノードが表示されます。これらのデバイスは、そうでなければドライバを必要としない基本的なイネーブルラインになりますgpio-resetを使っているが、もっと良い方法があるかもしれない。 –