描述和引用 ACPI 中的 LED
单个 LED 由设备节点(LED 驱动芯片)下的分层数据扩展 [5] 节点描述。LED 特定节点中的“reg”属性指示 LED 所连接的每个 LED 输出的数字 ID。[leds] 分层数据节点名为“led@X”,其中 X 是 LED 输出的编号。
在设备树中引用 LED 的文档记录在 [video-interfaces] 的“flash-leds”属性文档中。简而言之,使用 phandle 直接引用 LED。
虽然设备树允许引用树中的任何节点 [devicetree],但在 ACPI 中引用仅限于设备节点 [acpi]。因此,在 ACPI 上使用相同的机制是不可能的。引用非设备 ACPI 节点的机制记录在 [data-node-ref] 中。
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, "led@0", ^LED, "led@1" }, } } }) }
释义:
LED LED driver device
LED0 First LED
LED1 Second LED
SEN Camera sensor device (or another device the LED is related to)
参考
- [acpi] Advanced Configuration and Power Interface Specification.
-
https://uefi.org/specifications/ACPI/6.4/, referenced 2021-11-30.
[data-node-ref] Referencing hierarchical data nodes
[devicetree] Devicetree. https://www.devicetree.org, referenced 2019-02-21.
- [dsd-guide] DSD Guide.
-
https://github.com/UEFI/DSD-Guide/blob/main/dsd-guide.adoc, referenced 2021-11-30.
[leds] Documentation/devicetree/bindings/leds/common.yaml
[video-interfaces] Documentation/devicetree/bindings/media/video-interfaces.yaml
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/18724639
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)