[Armadillo:08918] Re: Armadillo-440 PWMバックライト制御の初期化について

高橋 宏章 email@hidden
2013年 6月 24日 (月) 08:17:29 JST


高橋です。

竹之下様、回答ありがとうございました。

下記について非常に参考になりました。
やはり「初期化って名前だからここでいいかな」と想像で入れてしまう
のはダメですね。
ご指摘の場所に処理を移そうと思います。

以上、よろしくお願い致します。

>>  /linux-2.6.26-at16/drivers/video/backlight/pwm_bl.c
>>>>  static int __init pwm_backlight_init(void)
>>  {
>>   return platform_driver_register(&pwm_backlight_driver);
>>  }
>> の中で、前述のgpio_lcd_bl_active()を呼んであげると変更したブートローダ
>> ーを使用していても、linux起動後にPWM制御が出ているのを確認できました。
>> brightness値変更で明るさも変更できました。
>>
>> ということで、一応は解決したように見えるのですが、本当にこの修正でよい
>> のか心配です。
>> 「その方法は違う」とか「そこにその処理入れちゃダメ」とかご指摘ありまし
>> たら是非お願いします。
> 意味合いとしては、pwm_backlight_init()はカーネルモジュールの初期化処理
> (ドライバを使わなくても実行される処理)で、
> pwm_backlight_probe()の方が、このドライバを使えるようにするときの初期化処理 
> 
> なので、pwm_backlight_probe()に入れた方が良いです。

----- Original Message ----- 
From: "Koyo Takenoshita" <email@hidden>
To: <email@hidden>
Sent: Friday, June 21, 2013 9:43 PM
Subject: [Armadillo:08911] Re: Armadillo-440 PWMバックライト制御の初期化について


> 竹之下です。
>
>>  /linux-2.6.26-at16/arch/arm/mach-mx25/armadillo400_gpio.c
>>>>  void gpio_lcd_bl_active(void)
>>  {
>>   mxc_iomux_v3_setup_multiple_pads(armadillo400_lcd_bl_pads,
>>        ARRAY_SIZE(armadillo400_lcd_bl_pads));
>>  }
>> が、PWMバックライト用の設定だと思われました(たぶん…)。
> PWMバックライト用の設定です。(のつもりでした。)
>
>> ただ、これを呼んでる処理がいません。
> 本当ですね。。。
>
>>  /linux-2.6.26-at16/drivers/video/backlight/pwm_bl.c
>>>>  static int __init pwm_backlight_init(void)
>>  {
>>   return platform_driver_register(&pwm_backlight_driver);
>>  }
>> の中で、前述のgpio_lcd_bl_active()を呼んであげると変更したブートローダ
>> ーを使用していても、linux起動後にPWM制御が出ているのを確認できました。
>> brightness値変更で明るさも変更できました。
>>
>> ということで、一応は解決したように見えるのですが、本当にこの修正でよい
>> のか心配です。
>> 「その方法は違う」とか「そこにその処理入れちゃダメ」とかご指摘ありまし
>> たら是非お願いします。
> 意味合いとしては、pwm_backlight_init()はカーネルモジュールの初期化処理
> (ドライバを使わなくても実行される処理)で、
> pwm_backlight_probe()の方が、このドライバを使えるようにするときの初期化処理 
> 
> なので、pwm_backlight_probe()に入れた方が良いです。
>
> が、実使用上、問題にはならないと思います。
> (Armadillo-400シリーズ以外でpwm_blドライバが使えなくなるとか、
> pwm_blを複数登録するとき区別がつかないとか、汎用ドライバとしては
> 良くないですが、Armadillo-440専用として使う分には問題ないです。)
>
> (2013/06/21 14:47), 高橋 宏章 wrote:
>> 日本高周波の高橋です。
>> お世話になっております。
>>
>> PWMバックライト制御の初期化についてご教授願います。
>> ちょっと前置きの話が長くなります。
>>
>>
>> <事の発端>
>> LCDバックライトのbrightness
>>  /sys/class/backlight/pwm-backlight/brightness
>> を255から小さい値に変更しても明るさが変わりませんでした。
>> bl_powerを0にしても消灯されません。
>>
>> オシロでPWMのラインを見てみたのですが、確かにパルスが出ていませんでし
>> た。
>> ただ、Armadilloに標準イメージが書き込まれた状態では確かにパルスが出て
>> いて、brightnessの変更で明るさが変わったのを確認しています。
>> linuxカーネル、ユーザーランド、ブートローダーを変更しているのでその変
>> 更の影響だろうと思われました。
>>
>>
>> <原因>
>> 結局ブートローダーの変更が影響していたようで、ブートローダーのみ標準
>> のものに書き換えるときちんとPWM制御しているのが確認できました。
>>
>> ブートローダーの変更は、以前
>> 「Armadillo-440ブートローダー処理中の液晶表示について」
>> http://lists.atmark-techno.com/pipermail/armadillo/2013-March/008663.html
>> として質問させていただいて、nakai様のご教授のもとブートローダー処理中
>> にLCD画面に表示を行うよう変更を入れていました。
>>
>> この処理の中で
>>  mx25_iomux_config(pwm_pins, 0);
>> としてPWMピンの設定を行っているのですが、この処理を無くすとlinux起動後
>> にきちんとパルスが出ました(ただし、ブートローダーによる画面表示は出な
>> くなる)。
>>
>>
>> <本題>
>> 確かにブートローダーでPWMピンの設定を行っていますが、linuxのドライバの
>> 処理で再度設定し直すからPWM制御が行われなくなるのは変だなと思いました。
>>
>> それでドライバ側の処理を(よくわからないながらも)追ってみたのですが、
>>
>>  /linux-2.6.26-at16/arch/arm/mach-mx25/armadillo400_gpio.c
>>>>  void gpio_lcd_bl_active(void)
>>  {
>>   mxc_iomux_v3_setup_multiple_pads(armadillo400_lcd_bl_pads,
>>        ARRAY_SIZE(armadillo400_lcd_bl_pads));
>>  }
>> が、PWMバックライト用の設定だと思われました(たぶん…)。
>> ただ、これを呼んでる処理がいません。そこで、バックライトドライバ処理(
>> だと思う…)、
>>
>>  /linux-2.6.26-at16/drivers/video/backlight/pwm_bl.c
>>>>  static int __init pwm_backlight_init(void)
>>  {
>>   return platform_driver_register(&pwm_backlight_driver);
>>  }
>> の中で、前述のgpio_lcd_bl_active()を呼んであげると変更したブートローダ
>> ーを使用していても、linux起動後にPWM制御が出ているのを確認できました。
>> brightness値変更で明るさも変更できました。
>>
>> ということで、一応は解決したように見えるのですが、本当にこの修正でよい
>> のか心配です。
>> 「その方法は違う」とか「そこにその処理入れちゃダメ」とかご指摘ありまし
>> たら是非お願いします。
>>
>> 以上、よろしくお願い致します。
>>
>> _______________________________________________
>> 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 メーリングリストの案内