aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/firmware-guide/acpi/dsd/graph.rst (renamed from Documentation/acpi/dsd/graph.txt)157
-rw-r--r--Documentation/firmware-guide/acpi/index.rst1
2 files changed, 81 insertions, 77 deletions
diff --git a/Documentation/acpi/dsd/graph.txt b/Documentation/firmware-guide/acpi/dsd/graph.rst
index b9ce910781dc..e0baed35b037 100644
--- a/Documentation/acpi/dsd/graph.txt
+++ b/Documentation/firmware-guide/acpi/dsd/graph.rst
@@ -1,8 +1,11 @@
1Graphs 1.. SPDX-License-Identifier: GPL-2.0
2 2
3======
4Graphs
5======
3 6
4_DSD 7_DSD
5---- 8====
6 9
7_DSD (Device Specific Data) [7] is a predefined ACPI device 10_DSD (Device Specific Data) [7] is a predefined ACPI device
8configuration object that can be used to convey information on 11configuration object that can be used to convey information on
@@ -30,7 +33,7 @@ hierarchical data extension array on each depth.
30 33
31 34
32Ports and endpoints 35Ports and endpoints
33------------------- 36===================
34 37
35The port and endpoint concepts are very similar to those in Devicetree 38The port and endpoint concepts are very similar to those in Devicetree
36[3]. A port represents an interface in a device, and an endpoint 39[3]. A port represents an interface in a device, and an endpoint
@@ -38,9 +41,9 @@ represents a connection to that interface.
38 41
39All port nodes are located under the device's "_DSD" node in the hierarchical 42All port nodes are located under the device's "_DSD" node in the hierarchical
40data extension tree. The data extension related to each port node must begin 43data extension tree. The data extension related to each port node must begin
41with "port" and must be followed by the "@" character and the number of the port 44with "port" and must be followed by the "@" character and the number of the
42as its key. The target object it refers to should be called "PRTX", where "X" is 45port as its key. The target object it refers to should be called "PRTX", where
43the number of the port. An example of such a package would be: 46"X" is the number of the port. An example of such a package would be::
44 47
45 Package() { "port@4", PRT4 } 48 Package() { "port@4", PRT4 }
46 49
@@ -49,7 +52,7 @@ data extension key of the endpoint nodes must begin with
49"endpoint" and must be followed by the "@" character and the number of the 52"endpoint" and must be followed by the "@" character and the number of the
50endpoint. The object it refers to should be called "EPXY", where "X" is the 53endpoint. The object it refers to should be called "EPXY", where "X" is the
51number of the port and "Y" is the number of the endpoint. An example of such a 54number of the port and "Y" is the number of the endpoint. An example of such a
52package would be: 55package would be::
53 56
54 Package() { "endpoint@0", EP40 } 57 Package() { "endpoint@0", EP40 }
55 58
@@ -62,85 +65,85 @@ of that port shall be zero. Similarly, if a port may only have a single
62endpoint, the number of that endpoint shall be zero. 65endpoint, the number of that endpoint shall be zero.
63 66
64The endpoint reference uses property extension with "remote-endpoint" property 67The endpoint reference uses property extension with "remote-endpoint" property
65name followed by a reference in the same package. Such references consist of the 68name followed by a reference in the same package. Such references consist of
66the remote device reference, the first package entry of the port data extension 69the remote device reference, the first package entry of the port data extension
67reference under the device and finally the first package entry of the endpoint 70reference under the device and finally the first package entry of the endpoint
68data extension reference under the port. Individual references thus appear as: 71data extension reference under the port. Individual references thus appear as::
69 72
70 Package() { device, "port@X", "endpoint@Y" } 73 Package() { device, "port@X", "endpoint@Y" }
71 74
72In the above example, "X" is the number of the port and "Y" is the number of the 75In the above example, "X" is the number of the port and "Y" is the number of
73endpoint. 76the endpoint.
74 77
75The references to endpoints must be always done both ways, to the 78The references to endpoints must be always done both ways, to the
76remote endpoint and back from the referred remote endpoint node. 79remote endpoint and back from the referred remote endpoint node.
77 80
78A simple example of this is show below: 81A simple example of this is show below::
79 82
80 Scope (\_SB.PCI0.I2C2) 83 Scope (\_SB.PCI0.I2C2)
81 { 84 {
82 Device (CAM0) 85 Device (CAM0)
83 { 86 {
84 Name (_DSD, Package () { 87 Name (_DSD, Package () {
85 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 88 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
86 Package () { 89 Package () {
87 Package () { "compatible", Package () { "nokia,smia" } }, 90 Package () { "compatible", Package () { "nokia,smia" } },
88 }, 91 },
89 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), 92 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
90 Package () { 93 Package () {
91 Package () { "port@0", PRT0 }, 94 Package () { "port@0", PRT0 },
92 } 95 }
93 }) 96 })
94 Name (PRT0, Package() { 97 Name (PRT0, Package() {
95 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 98 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
96 Package () { 99 Package () {
97 Package () { "reg", 0 }, 100 Package () { "reg", 0 },
98 }, 101 },
99 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), 102 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
100 Package () { 103 Package () {
101 Package () { "endpoint@0", EP00 }, 104 Package () { "endpoint@0", EP00 },
102 } 105 }
103 }) 106 })
104 Name (EP00, Package() { 107 Name (EP00, Package() {
105 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 108 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
106 Package () { 109 Package () {
107 Package () { "reg", 0 }, 110 Package () { "reg", 0 },
108 Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } }, 111 Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } },
109 } 112 }
110 }) 113 })
111 } 114 }
112 } 115 }
113 116
114 Scope (\_SB.PCI0) 117 Scope (\_SB.PCI0)
115 { 118 {
116 Device (ISP) 119 Device (ISP)
117 { 120 {
118 Name (_DSD, Package () { 121 Name (_DSD, Package () {
119 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), 122 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
120 Package () { 123 Package () {
121 Package () { "port@4", PRT4 }, 124 Package () { "port@4", PRT4 },
122 } 125 }
123 }) 126 })
124 127
125 Name (PRT4, Package() { 128 Name (PRT4, Package() {
126 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 129 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
127 Package () { 130 Package () {
128 Package () { "reg", 4 }, /* CSI-2 port number */ 131 Package () { "reg", 4 }, /* CSI-2 port number */
129 }, 132 },
130 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), 133 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
131 Package () { 134 Package () {
132 Package () { "endpoint@0", EP40 }, 135 Package () { "endpoint@0", EP40 },
133 } 136 }
134 }) 137 })
135 138
136 Name (EP40, Package() { 139 Name (EP40, Package() {
137 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 140 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
138 Package () { 141 Package () {
139 Package () { "reg", 0 }, 142 Package () { "reg", 0 },
140 Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } }, 143 Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } },
141 } 144 }
142 }) 145 })
143 } 146 }
144 } 147 }
145 148
146Here, the port 0 of the "CAM0" device is connected to the port 4 of 149Here, 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 151
149 152
150References 153References
151---------- 154==========
152 155
153[1] _DSD (Device Specific Data) Implementation Guide. 156[1] _DSD (Device Specific Data) Implementation Guide.
154 <URL:http://www.uefi.org/sites/default/files/resources/_DSD-implementation-guide-toplevel-1_1.htm>, 157 http://www.uefi.org/sites/default/files/resources/_DSD-implementation-guide-toplevel-1_1.htm,
155 referenced 2016-10-03. 158 referenced 2016-10-03.
156 159
157[2] Devicetree. <URL:http://www.devicetree.org>, referenced 2016-10-03. 160[2] Devicetree. http://www.devicetree.org, referenced 2016-10-03.
158 161
159[3] Documentation/devicetree/bindings/graph.txt 162[3] Documentation/devicetree/bindings/graph.txt
160 163
161[4] Device Properties UUID For _DSD. 164[4] Device Properties UUID For _DSD.
162 <URL:http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf>, 165 http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf,
163 referenced 2016-10-04. 166 referenced 2016-10-04.
164 167
165[5] Hierarchical Data Extension UUID For _DSD. 168[5] Hierarchical Data Extension UUID For _DSD.
166 <URL:http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf>, 169 http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf,
167 referenced 2016-10-04. 170 referenced 2016-10-04.
168 171
169[6] Advanced Configuration and Power Interface Specification. 172[6] Advanced Configuration and Power Interface Specification.
170 <URL:http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf>, 173 http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf,
171 referenced 2016-10-04. 174 referenced 2016-10-04.
172 175
173[7] _DSD Device Properties Usage Rules. 176[7] _DSD Device Properties Usage Rules.
174 Documentation/acpi/DSD-properties-rules.txt 177 :doc:`../DSD-properties-rules`
diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst
index bedcb0b242a2..f81cfbcb6878 100644
--- a/Documentation/firmware-guide/acpi/index.rst
+++ b/Documentation/firmware-guide/acpi/index.rst
@@ -8,6 +8,7 @@ ACPI Support
8 :maxdepth: 1 8 :maxdepth: 1
9 9
10 namespace 10 namespace
11 dsd/graph
11 enumeration 12 enumeration
12 osi 13 osi
13 method-customizing 14 method-customizing