Armadilloフォーラム

Arumadillo640 ユーザーSWについて

sd

2020年3月6日 11時08分

お世話になっております。
伊藤と申します。

Arumadillo640 ユーザーSWですが、マニュアルに

>Armadillo-640 に搭載されているユーザースイッチには、GPIOが接続されています。 GPIOが接続されユーザー空間でイベント
>(Press/Release) を検出することができます。Linuxでは、GPIO接続用キーボードドライバ (gpio-keys) で制御することができます

と書かれているのですが、GPIOピンと同様にGPIOディレクトリを設定と入出力方向の設定を行い、値を取得することが可能なのでしょうか?
それともユーザースイッチの値の取得方法はGPIOとは別ものなのでしょうか?

よろしくお願い致します。

コメント

at_makoto.sato

2020年3月6日 11時58分

佐藤です。

> と書かれているのですが、GPIOピンと同様にGPIOディレクトリを設定と入出力方向の設定を行い、値を取得することが可能なのでしょうか?
> それともユーザースイッチの値の取得方法はGPIOとは別ものなのでしょうか?
ドライバによって内部的に export されているのでできません。
他の GPIOピンと同様の方法で値を取得するには dts ファイルを次の通り修正する必要があります。

gpio-keys {
〜〜省略〜〜
};

となっている箇所を削除し

&iomuxc {
    pinctrl-names = "default";
    pinctrl-0 = <
    &pinctrl_gpio_keys <-- これを追記する
    >;
〜〜省略〜〜

以上の手順の後、dtb ファイルを書き込むことで他の gpio ピンと同様に値が取得できると思います。

# echo 10 > export
# cd gpio10
# cat value

sd

2020年3月6日 13時31分

> 佐藤です。
>
> > と書かれているのですが、GPIOピンと同様にGPIOディレクトリを設定と入出力方向の設定を行い、値を取得することが可能なのでしょうか?
> > それともユーザースイッチの値の取得方法はGPIOとは別ものなのでしょうか?
> ドライバによって内部的に export されているのでできません。
> 他の GPIOピンと同様の方法で値を取得するには dts ファイルを次の通り修正する必要があります。
>

> gpio-keys {
> 〜〜省略〜〜
> };
> 

> となっている箇所を削除し
>

> &iomuxc {
>     pinctrl-names = "default";
>     pinctrl-0 = <
>     &pinctrl_gpio_keys <-- これを追記する
>     >;
> 〜〜省略〜〜
> 

>
> 以上の手順の後、dtb ファイルを書き込むことで他の gpio ピンと同様に値が取得できると思います。
>

> # echo 10 > export
> # cd gpio10
> # cat value
> 

返信ありがとうございます。

無事、goiuiピン同様に値が取得できました。

ありがとうございました。