#author("2016-11-14T23:49:31+09:00","default:afuruta","afuruta")
#author("2016-11-14T23:51:13+09:00","default:afuruta","afuruta")
* GPIO 接続 LED class device [#eef4d9af]
GPIO に接続した LED に対して LED class device として扱うための汎用ドライバ &ogfileone(drivers/leds/leds-gpio.c); があります。gpio_* 関数群でアクセス可能な端子であれば、次のようなデータ構造を記述して &ogdefs(struct  platform_device, platform_device); を &ogdefs(platform_device_register(),platform_device_register); で platform device として登録するだけで LED class device になります。

- &ogdefs(struct gpio_led,gpio_led); を静的に配列状に配置し、そのメンバ name(名前), gpio(GPIO ピン番号), active_low(Low Level で点灯ならば 1) を記述します。
- &ogdefs(struct gpio_led_platform_data, gpio_led_platform_data); を静的に配置し上記で配置した配列を格納します。1 要素の配列でも良い
- &ogdefs(struct platform_device, platform_device); を静的に配置し、dev.platform_data に上記の &ogdefs(struct  gpio_led_platform_data, gpio_led_platform_data); を指すポインタを格納して、name(platform device の class 名) = "leds-gpio", id = -1 とします。

具体的な記述の詳細は &ogrefs(struct gpio_led,gpio_led); または &ogrefs(struct  gpio_led_platform_data, gpio_led_platform_data); を使っているソースを参照して下さい。

#code(c,"/struct\s*gpio_led/../LEDS_GPIO_DEFSTATE_KEEP/",ogfileone:/include/linux/leds.h);
#code(c,"/struct\s*gpio_led_platform_data/../^};\s*$/",ogfileone:/include/linux/leds.h);
#code(c,"/struct\s*struct  platform_device/../^};\s*$/",ogfileone:/include/linux/platform_device.h);
#code(c,"/struct\s*platform_device/../^};\s*$/",ogfileone:/include/linux/platform_device.h);

#textbox(note,ノート){{
今後、具体的なサンプルを用意するかな。
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS