[Armadillo:07530] Re: Armadillo 440 LEDとGPIOに関して

冨澤 則喜 email@hidden
2011年 9月 5日 (月) 18:07:40 JST


冨澤です。
Armadillo440の起動中にCON9のGPIOに接続した
外部ボード上のLEDを"heartbeat"で
点滅させる手順を投稿致します。

【修正点】
./linux-2.6.x/arch/arm/mach-mx25/armadillo400.c

①armadillo400_led_pins[]
>     282 static struct gpio_led armadillo400_led_pins[] = {
>     283         {"red",    "default-on", GPIO(3, 28), 0},
>     284         {"green",  "default-on", GPIO(3, 29), 0},
>     285         {"yellow", NULL,         GPIO(4, 30), 0},
>     286 };

         ↓(修正)

> static struct gpio_led armadillo400_led_pins[] = {
>        {"red",    "default-on", GPIO(3, 28), 0},
>        {"green",  "default-on", GPIO(3, 29), 0},
>        {"yellow", NULL,         GPIO(4, 30), 0},
> #if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
>        {"CON9_1", "heartbeat", GPIO(3, 17), 0},
> #endif
> #if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
>        {"CON9_2", "heartbeat", GPIO(3, 14), 0},
> #endif
> };

================
②gpio_list_revc[]
>     478 #if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
>     479         {"CON9_1",   GPIO(3, 17), MXC_EXT_GPIO_DIRECTION_INPUT},
>     480 #endif
>     481 #if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
>     482         {"CON9_2",   GPIO(3, 14), MXC_EXT_GPIO_DIRECTION_INPUT}, /* EXT_GPIO17 */
>     483 #endif=======================

         ↓(コメントアウト)

>     484 //#if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
>     485 //      {"CON9_1",   GPIO(3, 17), MXC_EXT_GPIO_DIRECTION_INPUT},
>     486 //#endif
>     487 //#if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
>     488 //      {"CON9_2",   GPIO(3, 14), MXC_EXT_GPIO_DIRECTION_INPUT}, /* EXT_GPIO17 */
>     489 //#endif

変更内容は、最初にご回答頂いた修正そのままです。
デフォルトLEDの点滅をさせたい時は、
armadillo400_led_pinsのdefault-on→heartbeatで、
起動中に点滅を開始します。


【修正成功時確認】
修正が、上手く行くと以下の起動ログが出ます。

> mxsdhci: MXC Secure Digital Host Controller Interface driver
> mxsdhci: MXC SDHCI Controller Driver.
> mmc0: SDHCI detect irq 159 irq 9 INTERNAL DMA
> Registered led device: red
> Registered led device: green
> Registered led device: yellow
> Registered led device: CON9_1
> Registered led device: CON9_2
> usbcore: registered new interface driver usbhid

/sys/class/以下は、このようになります。
> # less /sys/class/leds/
> CON9_1/ CON9_2/ green/  red/    yellow/
> # less /sys/class/leds/CON9_1/
> brightness  device/     power/      subsystem/  trigger     uevent
> # less /sys/class/leds/CON9_2/
> brightness  device/     power/      subsystem/  trigger     uevent
> # less /sys/class/gpio/
> CON9_11/    CON9_17/    CON9_25/    export      gpio18/     gpio53/     gpio9/
> CON9_12/    CON9_18/    CON9_26/    gpio10/     gpio27/     gpio54/     gpiochip0/
> CON9_13/    CON9_21/    CON9_27/    gpio11/     gpio28/     gpio6/      gpiochip32/
> CON9_14/    CON9_22/    CON9_28/    gpio117/    gpio29/     gpio7/      gpiochip64/
> CON9_15/    CON9_23/    CON9_4/     gpio16/     gpio30/     gpio79/     gpiochip96/
> CON9_16/    CON9_24/    CON9_6/     gpio17/     gpio31/     gpio8/      unexport


ご助言まことにありがとうございました。

On Mon, 05 Sep 2011 16:24:23 +0900
g-kihara <email@hidden> wrote:

> 木原です。
> 
> 今後のため、結局、どのような設定にすれば
> 点滅させることができたのか、ファイルの設定等を
> メーリングリストに反映しておいてはいかがでしょうか?
> 
> 以上
> 
> 
> (2011/09/05 16:20), 冨澤 則喜 wrote:
> > 木原様
> > 
> > 冨澤です。ご回答ありがとうございます。
> > 
> > 確認を行った所、ファイルシステムの異常で、
> > 修正が反映されていなかったために
> > 起動時のLED点滅しておりませんでした。
> > 
> > ATDE3から以下のコマンドを実行した所、
> > 状態が、改善致しました。
> > 
> >> fsck /dev/sdb1
> > 
> > ご助言まことにありがとうございます。
> > 
> > On Mon, 05 Sep 2011 15:56:39 +0900
> > g-kihara<email@hidden>  wrote:
> > 
> >> 木原です。
> >>
> >>> ifdef部分を入れて、MXC_EXT_GPIO_DIRECTION_OUTPUTに
> >>
> >> 以下のようにしたということでしょうか?
> >>
> >> #if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
> >>        {"CON9_1",   GPIO(3, 17), MXC_EXT_GPIO_DIRECTION_OUTPUT},
> >> #endif
> >> #if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
> >>        {"CON9_2",   GPIO(3, 14), MXC_EXT_GPIO_DIRECTION_OUTPUT}, /*
> >> EXT_GPIO17 */
> >> #endif
> >>
> >> これで動作しないのならば、
> >> CONFIG_ARMADILLO400_CON9_1_GPIO3_17
> >> と
> >> CONFIG_ARMADILLO400_CON9_2_GPIO3_14
> >> が1になっていない(defineされていない)可能性があります。
> >> カーネルコンフィギュレーションを編集するか、
> >> 編集の仕方がわからないのであれば、
> >> #if definedの行をコメントアウトしてみてください。
> >> もちろん、armadillo400_led_pinsについても同様にコメントアウト
> >> してください。
> >>
> >> 以上
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> (2011/09/05 15:30), 冨澤 則喜 wrote:
> >>> 竹之下様
> >>>
> >>> 冨澤です。ご回答ありがとうございます。
> >>>
> >>> ifdef部分を入れて、MXC_EXT_GPIO_DIRECTION_OUTPUTに
> >>> 変更してみましたが、うまく行かない状態です。
> >>>
> >>> よろしくお願い致します。
> >>> On Mon, 05 Sep 2011 14:44:39 +0900
> >>> g-kihara<email@hidden>   wrote:
> >>>
> >>>> 木原です。
> >>>>
> >>>>> MXC_EXT_GPIO_DIRECTION_INPUT
> >>>>
> >>>> 入出力方向の設定は、"出力"にしないといけなのでは?
> >>>>
> >>>> MXC_EXT_GPIO_DIRECTION_OUTPUT
> >>>>
> >>>> にしてみてはどうでしょう?
> >>>>
> >>>> 以上
> >>>>
> >>>>
> >>>> (2011/09/05 14:06), 冨澤 則喜 wrote:
> >>>>> 竹之下様
> >>>>>
> >>>>> 冨澤です。ご回答ありがとうございます。
> >>>>>
> >>>>> #if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)など
> >>>>> ifdef部分だけコメントアウトして、
> >>>>> コンパイルしてみましたが、
> >>>>> うまく行かない状況です。
> >>>>>
> >>>>> よろしくお願い致します。
> >>>>>
> >>>>> On Fri, 02 Sep 2011 18:58:55 +0900
> >>>>> g-kihara<email@hidden>    wrote:
> >>>>>
> >>>>>> CONFIG_ARMADILLO400_CON9_1_GPIO3_17
> >>>>>> と
> >>>>>> CONFIG_ARMADILLO400_CON9_2_GPIO3_14
> >>>>>> が
> >>>>>> defineされていないのでは?
> >>>>>>
> >>>>>> 以上
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> (2011/09/02 18:52), 冨澤 則喜 wrote:
> >>>>>>> 竹之下様
> >>>>>>>
> >>>>>>> 冨澤です。ご回答ありがとうございます。
> >>>>>>>
> >>>>>>> 変更して確認を行ってみましたが、
> >>>>>>> 起動中にCON9_1,2は、点滅しませんでした。
> >>>>>>>
> >>>>>>> GPIO関連の armadillo400_gpio.c など他の部分も変更が、
> >>>>>>> 必要になるのでしょうか。
> >>>>>>>
> >>>>>>> お手数ですが、
> >>>>>>> よろしくお願い致します。
> >>>>>>>
> >>>>>>> On Fri, 02 Sep 2011 16:12:16 +0900
> >>>>>>> Takenoshita Koyo<email@hidden>     wrote:
> >>>>>>>
> >>>>>>>> 竹之下です。
> >>>>>>>>
> >>>>>>>> (2011年09月02日 13:27), 冨澤 則喜 wrote:
> >>>>>>>>>
> >>>>>>>>> 冨澤と申します。
> >>>>>>>>>
> >>>>>>>>> Armadillo 440を使用した機器を開発しております。
> >>>>>>>>>
> >>>>>>>>> LEDとGPIOに関して投稿させて頂きました。
> >>>>>>>>>
> >>>>>>>>> 起動中にLED(緑、赤)を"heartbeat"で
> >>>>>>>>> 点滅させる事が、必要なのですが、
> >>>>>>>>> 接続基板側にLEDを載せることになり、
> >>>>>>>>> 以下のような変更が必要になりました。
> >>>>>>>>>
> >>>>>>>>> 【LED変更】
> >>>>>>>>> デフォルトLED・緑(GPIO3-28) → CON9_1(GPIO3-17)
> >>>>>>>>> デフォルトLED・赤(GPIO3-29) → CON9_2(GPIO3-14)
> >>>>>>>>>
> >>>>>>>>> カーネルのarmadillo400.cなどを変更すれば、
> >>>>>>>>> 可能と考えております。
> >>>>>>>> ご指摘の通りです。
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 方法をご存知の方が、おられましたら
> >>>>>>>>> お教え願えますよう 宜しくお願い致します。
> >>>>>>>> 以下のように、gpio_list_revc[]から記述を削除して、
> >>>>>>>> armadillo400_led_pins[]に追加すれば良いです。
> >>>>>>>>
> >>>>>>>> 4番めのメンバ(active_low)は、外部基板に合わせて0か1を設定してください。
> >>>>>>>>
> >>>>>>>> diff --git a/arch/arm/mach-mx25/armadillo400.c b/arch/arm/mach-mx25/armadillo400.c
> >>>>>>>> index 83cb615..de94e50 100644
> >>>>>>>> --- a/arch/arm/mach-mx25/armadillo400.c
> >>>>>>>> +++ b/arch/arm/mach-mx25/armadillo400.c
> >>>>>>>> @@ -283,6 +283,12 @@ static struct gpio_led armadillo400_led_pins[] = {
> >>>>>>>>             {"red",    "default-on", GPIO(3, 28), 0},
> >>>>>>>>             {"green",  "default-on", GPIO(3, 29), 0},
> >>>>>>>>             {"yellow", NULL,         GPIO(4, 30), 0},
> >>>>>>>> +#if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
> >>>>>>>> +       {"CON9_1", "heartbeat", GPIO(3, 17), 0},
> >>>>>>>> +#endif
> >>>>>>>> +#if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
> >>>>>>>> +       {"CON9_2", "heartbeat", GPIO(3, 14), 0},
> >>>>>>>> +#endif
> >>>>>>>>      };
> >>>>>>>>
> >>>>>>>>      struct gpio_led_platform_data armadillo400_led_data = {
> >>>>>>>> @@ -475,12 +481,6 @@ static struct mxc_ext_gpio gpio_list_revc[] = {
> >>>>>>>>      #if defined(CONFIG_ARMADILLO400_CON9_18_GPIO1_6)
> >>>>>>>>             {"CON9_18",  GPIO(1, 6),  MXC_EXT_GPIO_DIRECTION_INPUT},
> >>>>>>>>      #endif
> >>>>>>>> -#if defined(CONFIG_ARMADILLO400_CON9_1_GPIO3_17)
> >>>>>>>> -       {"CON9_1",   GPIO(3, 17), MXC_EXT_GPIO_DIRECTION_INPUT},
> >>>>>>>> -#endif
> >>>>>>>> -#if defined(CONFIG_ARMADILLO400_CON9_2_GPIO3_14)
> >>>>>>>> -       {"CON9_2",   GPIO(3, 14), MXC_EXT_GPIO_DIRECTION_INPUT}, /* EXT_GPIO17 */
> >>>>>>>> -#endif
> >>>>>>>>      #if defined(CONFIG_ARMADILLO400_CON11_42_GPIO_2_31)
> >>>>>>>>             {"CON11_42", GPIO(2, 31), MXC_EXT_GPIO_DIRECTION_INPUT},
> >>>>>>>>      #endif
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> armadillo mailing list
> >>>>>>>>> email@hidden
> >>>>>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> -- 
> >>>>>>>> Koyo Takenoshita
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> armadillo mailing list
> >>>>>>>> email@hidden
> >>>>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> armadillo mailing list
> >>>>>>> email@hidden
> >>>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>>>
> >>>>>> _______________________________________________
> >>>>>> armadillo mailing list
> >>>>>> email@hidden
> >>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> armadillo mailing list
> >>>>> email@hidden
> >>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>
> >>>> _______________________________________________
> >>>> armadillo mailing list
> >>>> email@hidden
> >>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>
> >>>
> >>> _______________________________________________
> >>> armadillo mailing list
> >>> email@hidden
> >>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>
> >> _______________________________________________
> >> armadillo mailing list
> >> email@hidden
> >> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> > 
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> > 




armadillo メーリングリストの案内