Skip to content

Commit

Permalink
ACPI: property: Document key numbering for hierarchical data extensio…
Browse files Browse the repository at this point in the history
…n refs

As part of the hierarchical data extension key naming, introduce numbering
scheme for the nodes that may be referred to using hierarchical data
extension references. This allows iterating over particular kind of nodes
recognised by the node name whilst allowing numbering the nodes, bringing
ACPI to feature parity with DT in this respect.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Sakari Ailus authored and Rafael J. Wysocki committed Jul 23, 2018
1 parent 18f1e58 commit 2285e6d
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions Documentation/acpi/dsd/data-node-references.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,43 @@ 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.

The keys in the hierarchical data nodes shall consist of the name of the node,
"@" character and the number of the node in hexadecimal notation (without pre-
or postfixes). The same ACPI object shall include the _DSD property extension
with a property "reg" that shall have the same numerical value as the number of
the node.

In case a hierarchical data extensions node has no numerical value, then the
"reg" property shall be omitted from the ACPI object's _DSD properties and the
"@" character and the number shall be omitted from the hierarchical data
extension key.


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.
hierarchical data extension key "node@1" referring to the NOD1 object
and lastly, a hierarchical data extension key "anothernode" referring to
the ANOD object which is also the final target node of the reference.

Device (DEV0)
{
Name (_DSD, Package () {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
Package () { "node", NODE },
Package () { "node@0", NOD0 },
Package () { "node@1", NOD1 },
}
})
Name (NOD0, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package () { "random-property", 3 },
}
})
Name (NODE, Package() {
Name (NOD1, Package() {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
Package () { "anothernode", ANOD },
Expand All @@ -51,7 +70,7 @@ Example
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package () { "reference", ^DEV0, "node", "anothernode" },
Package () { "reference", ^DEV0, "node@1", "anothernode" },
}
})
}
Expand Down

0 comments on commit 2285e6d

Please sign in to comment.