天天看點

Linux核心自帶led驅動

1.自帶led驅動使能

Linux核心自帶led驅動

2.自帶led驅動介紹

2.1 驅動架構分析

Linux核心自帶led驅動
Linux核心自帶led驅動
Linux核心自帶led驅動
Linux核心自帶led驅動

2.2 module_paltform_driver

Linux核心自帶led驅動
Linux核心自帶led驅動
Linux核心自帶led驅動
Linux核心自帶led驅動

2.3 gpio_led_probe

3.裝置樹節點編寫

  • 建立一個節點表示 LED 燈裝置,比如 dtsleds,如果闆子上有多個 LED 燈的話每個 LED燈都作為 dtsleds 的子節點。
  • dtsleds 節點的 compatible 屬性值一定要為“gpio-leds”。
  • 設定 label 屬性,此屬性為可選,每個子節點都有一個 label 屬性,label 屬性一般表示LED 燈的名字,比如以顔色區分的話就是 red、green 等等。
  • 每個子節點必須要設定 gpios 屬性值,表示此 LED 所使用的 GPIO 引腳!
  • 可以設定“linux,default-trigger”屬性值,也就是設定 LED 燈的預設功能,可以查閱Documentation/devicetree/bindings/leds/common.txt 這個文檔來檢視可選功能,比如:

    backlight:LED 燈作為背光。

    default-on:LED 燈打開

    heartbeat:LED 燈作為心跳訓示燈,可以作為系統運作提示燈。

    ide-disk:LED 燈作為硬碟活動訓示燈。

    timer:LED 燈周期性閃爍,由定時器驅動,閃爍頻率可以修改

  • 可以設定“default-state”屬性值,可以設定為 on、off 或 keep,為 on 的時候 LED 燈預設打開,為 off 的話 LED 燈預設關閉,為 keep 的話 LED 燈保持目前模式。

    根據上述幾條要求在 imx6ull-alientek-emmc.dts 中添加如下所示 LED 燈裝置節點:

    Linux核心自帶led驅動
    Linux核心自帶led驅動

    echo > 1 xxx//往xxx寫入1

    心跳閃爍:

    Linux核心自帶led驅動