Commit f2dde1ed authored by Changbin Du's avatar Changbin Du Committed by Rafael J. Wysocki

Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST

This converts the plain text documentation to reStructuredText format
and adds it to Sphinx TOC tree.

No essential content change.
Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
Reviewed-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 011eed59
Graphs .. SPDX-License-Identifier: GPL-2.0
======
Graphs
======
_DSD _DSD
---- ====
_DSD (Device Specific Data) [7] is a predefined ACPI device _DSD (Device Specific Data) [7] is a predefined ACPI device
configuration object that can be used to convey information on configuration object that can be used to convey information on
...@@ -30,7 +33,7 @@ hierarchical data extension array on each depth. ...@@ -30,7 +33,7 @@ hierarchical data extension array on each depth.
Ports and endpoints Ports and endpoints
------------------- ===================
The port and endpoint concepts are very similar to those in Devicetree The port and endpoint concepts are very similar to those in Devicetree
[3]. A port represents an interface in a device, and an endpoint [3]. A port represents an interface in a device, and an endpoint
...@@ -38,9 +41,9 @@ represents a connection to that interface. ...@@ -38,9 +41,9 @@ represents a connection to that interface.
All port nodes are located under the device's "_DSD" node in the hierarchical All port nodes are located under the device's "_DSD" node in the hierarchical
data extension tree. The data extension related to each port node must begin data extension tree. The data extension related to each port node must begin
with "port" and must be followed by the "@" character and the number of the port with "port" and must be followed by the "@" character and the number of the
as its key. The target object it refers to should be called "PRTX", where "X" is port as its key. The target object it refers to should be called "PRTX", where
the number of the port. An example of such a package would be: "X" is the number of the port. An example of such a package would be::
Package() { "port@4", PRT4 } Package() { "port@4", PRT4 }
...@@ -49,7 +52,7 @@ data extension key of the endpoint nodes must begin with ...@@ -49,7 +52,7 @@ data extension key of the endpoint nodes must begin with
"endpoint" and must be followed by the "@" character and the number of the "endpoint" and must be followed by the "@" character and the number of the
endpoint. The object it refers to should be called "EPXY", where "X" is the endpoint. The object it refers to should be called "EPXY", where "X" is the
number of the port and "Y" is the number of the endpoint. An example of such a number of the port and "Y" is the number of the endpoint. An example of such a
package would be: package would be::
Package() { "endpoint@0", EP40 } Package() { "endpoint@0", EP40 }
...@@ -62,85 +65,85 @@ of that port shall be zero. Similarly, if a port may only have a single ...@@ -62,85 +65,85 @@ of that port shall be zero. Similarly, if a port may only have a single
endpoint, the number of that endpoint shall be zero. endpoint, the number of that endpoint shall be zero.
The endpoint reference uses property extension with "remote-endpoint" property The endpoint reference uses property extension with "remote-endpoint" property
name followed by a reference in the same package. Such references consist of the name followed by a reference in the same package. Such references consist of
the remote device reference, the first package entry of the port data extension the remote device reference, the first package entry of the port data extension
reference under the device and finally the first package entry of the endpoint reference under the device and finally the first package entry of the endpoint
data extension reference under the port. Individual references thus appear as: data extension reference under the port. Individual references thus appear as::
Package() { device, "port@X", "endpoint@Y" } Package() { device, "port@X", "endpoint@Y" }
In the above example, "X" is the number of the port and "Y" is the number of the In the above example, "X" is the number of the port and "Y" is the number of
endpoint. the endpoint.
The references to endpoints must be always done both ways, to the The references to endpoints must be always done both ways, to the
remote endpoint and back from the referred remote endpoint node. remote endpoint and back from the referred remote endpoint node.
A simple example of this is show below: A simple example of this is show below::
Scope (\_SB.PCI0.I2C2) Scope (\_SB.PCI0.I2C2)
{ {
Device (CAM0) Device (CAM0)
{ {
Name (_DSD, Package () { Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () { Package () {
Package () { "compatible", Package () { "nokia,smia" } }, Package () { "compatible", Package () { "nokia,smia" } },
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "port@0", PRT0 }, Package () { "port@0", PRT0 },
} }
}) })
Name (PRT0, Package() { Name (PRT0, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () { Package () {
Package () { "reg", 0 }, Package () { "reg", 0 },
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "endpoint@0", EP00 }, Package () { "endpoint@0", EP00 },
} }
}) })
Name (EP00, Package() { Name (EP00, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () { Package () {
Package () { "reg", 0 }, Package () { "reg", 0 },
Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } }, Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } },
} }
}) })
} }
} }
Scope (\_SB.PCI0) Scope (\_SB.PCI0)
{ {
Device (ISP) Device (ISP)
{ {
Name (_DSD, Package () { Name (_DSD, Package () {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "port@4", PRT4 }, Package () { "port@4", PRT4 },
} }
}) })
Name (PRT4, Package() { Name (PRT4, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () { Package () {
Package () { "reg", 4 }, /* CSI-2 port number */ Package () { "reg", 4 }, /* CSI-2 port number */
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "endpoint@0", EP40 }, Package () { "endpoint@0", EP40 },
} }
}) })
Name (EP40, Package() { Name (EP40, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () { Package () {
Package () { "reg", 0 }, Package () { "reg", 0 },
Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } }, Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } },
} }
}) })
} }
} }
Here, the port 0 of the "CAM0" device is connected to the port 4 of Here, the port 0 of the "CAM0" device is connected to the port 4 of
...@@ -148,27 +151,27 @@ the "ISP" device and vice versa. ...@@ -148,27 +151,27 @@ the "ISP" device and vice versa.
References References
---------- ==========
[1] _DSD (Device Specific Data) Implementation Guide. [1] _DSD (Device Specific Data) Implementation Guide.
<URL:http://www.uefi.org/sites/default/files/resources/_DSD-implementation-guide-toplevel-1_1.htm>, http://www.uefi.org/sites/default/files/resources/_DSD-implementation-guide-toplevel-1_1.htm,
referenced 2016-10-03. referenced 2016-10-03.
[2] Devicetree. <URL:http://www.devicetree.org>, referenced 2016-10-03. [2] Devicetree. http://www.devicetree.org, referenced 2016-10-03.
[3] Documentation/devicetree/bindings/graph.txt [3] Documentation/devicetree/bindings/graph.txt
[4] Device Properties UUID For _DSD. [4] Device Properties UUID For _DSD.
<URL:http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf>, http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf,
referenced 2016-10-04. referenced 2016-10-04.
[5] Hierarchical Data Extension UUID For _DSD. [5] Hierarchical Data Extension UUID For _DSD.
<URL:http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf>, http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf,
referenced 2016-10-04. referenced 2016-10-04.
[6] Advanced Configuration and Power Interface Specification. [6] Advanced Configuration and Power Interface Specification.
<URL:http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf>, http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf,
referenced 2016-10-04. referenced 2016-10-04.
[7] _DSD Device Properties Usage Rules. [7] _DSD Device Properties Usage Rules.
Documentation/acpi/DSD-properties-rules.txt :doc:`../DSD-properties-rules`
...@@ -8,6 +8,7 @@ ACPI Support ...@@ -8,6 +8,7 @@ ACPI Support
:maxdepth: 1 :maxdepth: 1
namespace namespace
dsd/graph
enumeration enumeration
osi osi
method-customizing method-customizing
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment