diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-09-18 05:31:36 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-09-18 05:31:36 +0300 |
commit | d2aaa49e281959828370667edbc1cdcc7fc4026a (patch) | |
tree | 64191d74041ce8c6498b3564fc3dae5a3b8d10f1 /Documentation/firmware-guide | |
parent | 77dcfe2b9edc98286cf18e03c243c9b999f955d9 (diff) | |
parent | 0b3e7973128528e804b05dd7f79d54c2792318d6 (diff) | |
download | linux-d2aaa49e281959828370667edbc1cdcc7fc4026a.tar.xz |
Merge tag 'acpi-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI updates from Rafael Wysocki:
"These include an ACPICA update (to upstream revision 20190816),
improvements of support for memory hot-add in the HMAT handling code
and some assorted fixes and cleanups.
Specifics:
- Update the ACPICA code in the kernel to upstream revision 20190816
including:
* Internal limits change to support larger systems (Bob Moore).
* Macros clean up (Bob Moore).
* printf format string fixes (Bob Moore).
* Full deployment of the ACPI_PRINTF_LIKE macro (Bob Moore).
* Tools improvements (Bob Moore, Colin Ian King).
* Windows _OSI support fixes (Jung-uk Kim).
- Improve memory hot-add support in the ACPI HMAT handling code (Dan
Williams, Keith Busch).
- Fix the ACPI LPSS (Low-Power Subsystem) driver for Intel SoCs to
save and restore private registers during system-wide suspend and
resume on systems with the Lynxpoint PCH (Jarkko Nikula).
- Convert the ACPI documentation related to LEDs to ReST (Sakari
Ailus).
- Fix assorted issues and make assorted minor improvements in the
ACPI-related code (Al Stone, Andy Shevchenko, Jiri Slaby, Kelsey
Skunberg, Krzysztof Wilczynski, Liguang Zhang, Wenwen Wang,
YueHaibing)"
* tag 'acpi-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
ACPI / PCI: fix acpi_pci_irq_enable() memory leak
ACPI: custom_method: fix memory leaks
ACPI: thermal: Remove redundant acpi_has_method() calls
ACPI / CPPC: do not require the _PSD method
ACPI: SBS: remove unused const variable 'SMBUS_PEC'
ACPI / LPSS: Save/restore LPSS private registers also on Lynxpoint
ACPI/PCI: Remove surplus parentheses from a return statement
ACPICA: Update version to 20190816.
ACPICA: Add "Windows 2019" string to _OSI support.
ACPICA: Differentiate Windows 8.1 from Windows 8.
ACPICA: Fully deploy ACPI_PRINTF_LIKE macro
ACPICA: iASL,acpi_dump: Improve y/n query
ACPICA: Fix issues with arg types within printf format strings
ACPICA: Macros: remove pointer math on a null pointer
ACPICA: Increase total number of possible Owner IDs
ACPICA: Debugger: remove redundant assignment on obj_desc
Documentation: ACPI: DSD: Convert LED documentation to ReST
ACPI / APEI: Release resources if gen_pool_add() fails
HMAT: Skip publishing target info for nodes with no online memory
HMAT: Register attributes for memory hot add
...
Diffstat (limited to 'Documentation/firmware-guide')
-rw-r--r-- | Documentation/firmware-guide/acpi/dsd/leds.rst | 111 | ||||
-rw-r--r-- | Documentation/firmware-guide/acpi/index.rst | 1 |
2 files changed, 112 insertions, 0 deletions
diff --git a/Documentation/firmware-guide/acpi/dsd/leds.rst b/Documentation/firmware-guide/acpi/dsd/leds.rst new file mode 100644 index 000000000000..946efe2b2936 --- /dev/null +++ b/Documentation/firmware-guide/acpi/dsd/leds.rst @@ -0,0 +1,111 @@ +.. SPDX-License-Identifier: GPL-2.0 +.. include:: <isonum.txt> + +======================================== +Describing and referring to LEDs in ACPI +======================================== + +Individual LEDs are described by hierarchical data extension [6] nodes under the +device node, the LED driver chip. The "reg" property in the LED specific nodes +tells the numerical ID of each individual LED output to which the LEDs are +connected. [3] The hierarchical data nodes are named "led@X", where X is the +number of the LED output. + +Referring to LEDs in Device tree is documented in [4], in "flash-leds" property +documentation. In short, LEDs are directly referred to by using phandles. + +While Device tree allows referring to any node in the tree[1], in ACPI +references are limited to device nodes only [2]. For this reason using the same +mechanism on ACPI is not possible. A mechanism to refer to non-device ACPI nodes +is documented in [7]. + +ACPI allows (as does DT) using integer arguments after the reference. A +combination of the LED driver device reference and an integer argument, +referring to the "reg" property of the relevant LED, is used to identify +individual LEDs. The value of the "reg" property is a contract between the +firmware and software, it uniquely identifies the LED driver outputs. + +Under the LED driver device, The first hierarchical data extension package list +entry shall contain the string "led@" followed by the number of the LED, +followed by the referred object name. That object shall be named "LED" followed +by the number of the LED. + +Example +======= + +An ASL example of a camera sensor device and a LED driver device for two LEDs is +show below. Objects not relevant for LEDs or the references to them have been +omitted. :: + + 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" }, + } + } + }) + } + +where +:: + + LED LED driver device + LED0 First LED + LED1 Second LED + SEN Camera sensor device (or another device the LED is related to) + +References +========== + +[1] Device tree. <URL:http://www.devicetree.org>, referenced 2019-02-21. + +[2] Advanced Configuration and Power Interface Specification. + <URL:https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf>, + referenced 2019-02-21. + +[3] Documentation/devicetree/bindings/leds/common.txt + +[4] Documentation/devicetree/bindings/media/video-interfaces.txt + +[5] Device Properties UUID For _DSD. + <URL:http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf>, + referenced 2019-02-21. + +[6] Hierarchical Data Extension UUID For _DSD. + <URL:http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf>, + referenced 2019-02-21. + +[7] Documentation/firmware-guide/acpi/dsd/data-node-references.rst diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst index 90c90d42d9ad..ad3b5afdae77 100644 --- a/Documentation/firmware-guide/acpi/index.rst +++ b/Documentation/firmware-guide/acpi/index.rst @@ -10,6 +10,7 @@ ACPI Support namespace dsd/graph dsd/data-node-references + dsd/leds enumeration osi method-customizing |