在 ACPI 中描述和引用 LED¶
各個 LED 由裝置節點(LED 驅動晶片)下的分層資料擴充套件 [5] 節點描述。LED 特定節點中的“reg”屬性告知每個 LED 輸出的數值 ID,LED 連線到這些輸出。[leds] 分層資料節點被命名為“led@X”,其中 X 是 LED 輸出的編號。
在裝置樹中引用 LED 在 [video-interfaces] 中有文件記錄,在“flash-leds”屬性文件中。簡而言之,LED 直接透過使用 phandle 來引用。
ACPI 允許(與 DT 一樣)在引用後使用整數引數。LED 驅動裝置引用和整數引數的組合(引用相關 LED 的“reg”屬性)用於標識各個 LED。“reg”屬性的值是韌體和軟體之間的約定,它唯一地標識 LED 驅動程式輸出。
在 LED 驅動裝置下,第一個分層資料擴充套件包列表條目應包含字串“led@”,後跟 LED 的編號,後跟引用的物件名稱。該物件應命名為“LED”,後跟 LED 的編號。
示例¶
下面顯示了相機感測器裝置和用於兩個 LED 的 LED 驅動裝置 的 ASL 示例。與 LED 或對其的引用無關的物件已被省略。
Device (LED)
{
Name (_DSD, Package () {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
Package () { "led@0", LED0 },
Package () { "led@1", LED1 },
}
})
Name (LED0, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package () { "reg", 0 },
Package () { "flash-max-microamp", 1000000 },
Package () { "flash-timeout-us", 200000 },
Package () { "led-max-microamp", 100000 },
Package () { "label", "white:flash" },
}
})
Name (LED1, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package () { "reg", 1 },
Package () { "led-max-microamp", 10000 },
Package () { "label", "red:indicator" },
}
})
}
Device (SEN)
{
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package () {
"flash-leds",
Package () { "^LED.LED0", "^LED.LED1" },
}
}
})
}
其中
LED LED driver device
LED0 First LED
LED1 Second LED
SEN Camera sensor device (or another device the LED is related to)
參考¶
- [acpi] 高階配置和電源介面規範。
https://uefi.org/specifications/ACPI/6.4/,引用自 2021-11-30。
[data-node-ref] 引用分層資料節點
[devicetree] 裝置樹。 https://www.devicetree.org,引用自 2019-02-21。
- [dsd-guide] DSD 指南。
https://github.com/UEFI/DSD-Guide/blob/main/dsd-guide.adoc,引用自 2021-11-30。
[leds] Documentation/devicetree/bindings/leds/common.yaml
[video-interfaces] Documentation/devicetree/bindings/media/video-interfaces.yaml