2017-08-09 11 views
0

私は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 */ 
     >; 
    }; 

    ... 

}; 
+2

使用するAPIは、カーネルのバージョンによって異なります。スタンドアローンのGPIOではなく、デバイスドライバにそれらのデバイスを組み込むことを考えましたか? – sawdust

+0

設定が正しい場合は、/ sys/class/gpio/gpioNUMBER –

+0

おがくずのデバイスノードが表示されます。これらのデバイスは、そうでなければドライバを必要としない基本的なイネーブルラインになりますgpio-resetを使っているが、もっと良い方法があるかもしれない。 –

答えて

0

私はbindings documentation内の任意の情報を見つけることができなかったとしてgpio-resetのsysfsインターフェースについて正確にわからないんだけど、通常のGPIOインタフェースのために必要な/sys/class/gpio/gpio*に表示される前にgpioをエクスポートします。基本的には、使用するGPIOの番号を/sys/class/gpioexportファイルに書き込むだけです。 Hereはそれを行う人の例です。 gpioのオン/オフを切り替えるだけなら、そのインターフェースで十分です。

関連する問題