]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ACPI: property: Document hierarchical data extension references
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 17 Jul 2018 14:19:13 +0000 (17:19 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 23 Jul 2018 10:44:52 +0000 (12:44 +0200)
Add documentation on how to refer to hierarchical data nodes in a
generic way. This brings ACPI to feature parity with Device Tree in
terms of being able to refer to any node in the tree.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/acpi/dsd/data-node-references.txt [new file with mode: 0644]

diff --git a/Documentation/acpi/dsd/data-node-references.txt b/Documentation/acpi/dsd/data-node-references.txt
new file mode 100644 (file)
index 0000000..00c3b5f
--- /dev/null
@@ -0,0 +1,69 @@
+Copyright (C) 2018 Intel Corporation
+Author: Sakari Ailus <sakari.ailus@linux.intel.com>
+
+
+Referencing hierarchical data nodes
+-----------------------------------
+
+ACPI in general allows referring to device objects in the tree only.
+Hierarchical data extension nodes may not be referred to directly, hence this
+document defines a scheme to implement such references.
+
+A reference consist of the device object name followed by one or more
+hierarchical data extension [1] keys. Specifically, the hierarchical data
+extension node which is referred to by the key shall lie directly under the
+parent object i.e. either the device object or another hierarchical data
+extension node.
+
+Example
+-------
+
+       In the ASL snippet below, the "reference" _DSD property [2] contains a
+       device object reference to DEV0 and under that device object, a
+       hierarchical data extension key "node" referring to the NODE object and
+       lastly, a hierarchical data extension key "anothernode" referring to the
+       ANOD object which is also the final target of the reference.
+
+       Device (DEV0)
+       {
+           Name (_DSD, Package () {
+               ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
+               Package () {
+                   Package () { "node", NODE },
+               }
+           })
+           Name (NODE, Package() {
+               ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
+               Package () {
+                   Package () { "anothernode", ANOD },
+               }
+           })
+           Name (ANOD, Package() {
+               ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+               Package () {
+                   Package () { "random-property", 0 },
+               }
+           })
+       }
+
+       Device (DEV1)
+       {
+           Name (_DSD, Package () {
+               ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+               Package () {
+                   Package () { "reference", ^DEV0, "node", "anothernode" },
+               }
+           })
+       }
+
+
+References
+----------
+
+[1] Hierarchical Data Extension UUID For _DSD.
+    <URL:http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf>,
+    referenced 2018-07-17.
+
+[2] Device Properties UUID For _DSD.
+    <URL:http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf>,
+    referenced 2016-10-04.