Armadilloフォーラム

CON11_49をGPIOとして制御する方法

tyaga

2014年5月8日 17時13分

矢ヶ崎と申します
いつもお世話になっております

Armadillo-460でGPIOドライバを拡張してCON11の49ピン(EXT_IO34)を
GPIOとして制御したいのですが、どのような改造が必要でしょうか?

カーネルバージョンはv2.6.26-at19を使用しています。
下記の2つを無効化したのですが/sys/class/gpio/CON1_1は出てきませんでした。

Enable AUD5 at CON11
Enable Keypad at CON11

又、カーネルのコンフィグに下記項目がありましたのでyesに書き換えて
makeを行ってみましたがmake後にコンフィグファイルを確認するとコメントアウトになってしまいます。

# CONFIG_ARMADILLO400_CON11_49_GPIO1_1 is not set
 ↓
CONFIG_ARMADILLO400_CON11_49_GPIO1_1=y

正しい修正方法をご教授願えないでしょうか。よろしくお願いします。

コメント

y.nakamura

2014年5月8日 20時10分

中村です。

> 又、カーネルのコンフィグに下記項目がありましたのでyesに書き換えて
> makeを行ってみましたがmake後にコンフィグファイルを確認するとコメントアウトになってしまいます。

書き換えたのは2.6.26-at19/.configファイルでしょうか?
このファイルを直接書き換えてはいけません。
.configの先頭に
# Automatically generated make config: don't edit
と書いてありますよね。

> 下記の2つを無効化したのですが/sys/class/gpio/CON1_1は出てきませんでした。
>
> Enable AUD5 at CON11
> Enable Keypad at CON11

AUD5はCON11の49は使用してません。
CON11の49は、KPP(Keypad)とI2C3です。

したがって無効にするのは、
Enable Keypad at CON11
Enable I2C3 at CON11
なのですが、linux-2.6.26/arch/arm/mach-mx25/Kconfigをみると
ARMADILLO400_CON11_49_GPIO1_1を"y"にしているところが
存在しないので、たぶんこの2つを無効にしただけではダメだと思います。

linux-2.6.26/arch/arm/mach-mx25/Kconfigを次のように修正してみてください。
修正前
config ARMADILLO400_CON11_49_GPIO1_1
bool
default n
修正後
config ARMADILLO400_CON11_49_GPIO1_1
bool
default y if !ARMADILLO400_CON11_49_I2C3_SDA && !ARMADILLO400_CON11_49_KPP_ROW5

試してないので、これでOKかどうかわかりませんが、
たぶんこれでいけるんじゃないかと・・・

これで/sys/class/gpio/に出てくるのは、CON11_49です。

--
なかむら

tyaga

2014年5月9日 10時19分

矢ヶ崎です
お世話になっております

中村様の手順で試しましたところ、CON11_49がgpioクラスディレクトリに作成されました。

ありがとう御座います。大変助かりました。