[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 メーリングリストの案内