]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2DeviceRefCodePkg/AcpiTablesPCAT/RTD3.asl
Vlv2DeviceRefCodePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / AcpiTablesPCAT / RTD3.asl
1 /**************************************************************************;
2 ;* *;
3 ;* *;
4 ;* Intel Corporation - ACPI Reference Code for the Baytrail *;
5 ;* Family of Customer Reference Boards. *;
6 ;* *;
7 ;* *;
8 ;* Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved *;
9 ;
10 ; SPDX-License-Identifier: BSD-2-Clause-Patent
11 ;
12 ;* *;
13 ;* *;
14 ;**************************************************************************/
15 DefinitionBlock (
16 "Rtd3.aml",
17 "SSDT",
18 1,
19 "AcpiRef",
20 "Msg_Rtd3",
21 0x1000
22 )
23 {
24 External(RTD3) //flag if RTD3 is enabled
25
26 If(LEqual(RTD3,1))
27 {
28 Scope (\_SB)
29 {
30 Name(OSCI, 0) // \_SB._OSC DWORD2 input
31 Name(OSCO, 0) // \_SB._OSC DWORD2 output
32
33 //Arg0 -- A buffer containing UUID
34 //Arg1 -- An Interger containing a Revision ID of the buffer format
35 //Arg2 -- An interger containing a count of entries in Arg3
36 //Arg3 -- A buffer containing a list of DWORD capacities
37 Method(_OSC, 4, NotSerialized)
38 {
39 // Check for proper UUID
40 If(LEqual(Arg0, ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48")))
41 {
42 CreateDWordField(Arg3,0,CDW1) //bit1,2 is always clear
43 CreateDWordField(Arg3,4,CDW2) //Table 6-147 from ACPI spec
44
45 Store(CDW2, OSCI) // Save DWord2
46 Or(OSCI, 0x4, OSCO) // Only allow _PR3 support
47
48 If(LNotEqual(Arg1,One))
49 {
50 Or(CDW1,0x08,CDW1) // Unknown revision
51 }
52
53 If(LNotEqual(OSCI, OSCO))
54 {
55 Or(CDW1,0x10,CDW1) // Capabilities bits were masked
56 }
57
58 Store(OSCO, CDW2) // Replace DWord2
59 Return(Arg3)
60 } Else
61 {
62 Or(CDW1,4,CDW1) // Unrecognized UUID
63 Return(Arg3)
64 }
65 }// End _OSC
66 }
67 }//end of RTD3 condition
68
69
70 //USB RTD3 code
71 If(LEqual(RTD3,1))
72 {
73 Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR13)
74 {
75 Name(_PR0, Package() {\PR34})
76 Name(_PR3, Package() {\PR34})
77
78 Method(_S0W, 0)
79 {
80 If(And(\_SB.OSCO, 0x04)) // PMEs can be genrated from D3cold
81 {
82 Return(4) // OS comprehends D3cold, as described via \_SB._OSC
83 } Else
84 {
85 Return(3)
86 }
87 } // End _S0W
88 }
89
90 Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR14)
91 {
92 Name(_PR0, Package() {\PR34})
93 Name(_PR3, Package() {\PR34})
94
95 Method(_S0W, 0)
96 {
97 If(And(\_SB.OSCO, 0x04))
98 {
99 Return(4)
100 } Else
101 {
102 Return(3)
103 }
104 } // End _S0W
105 }
106
107
108 Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR15)
109 {
110 Name(_PR0, Package() {\PR56})
111 Name(_PR3, Package() {\PR56})
112
113 Method(_S0W, 0)
114 {
115 If(And(\_SB.OSCO, 0x04))
116 {
117 Return(4)
118 } Else
119 {
120 Return(3)
121 }
122 } // End _S0W
123 }
124
125 Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR16)
126 {
127 Name(_PR0, Package() {\PR56})
128 Name(_PR3, Package() {\PR56})
129
130 Method(_S0W, 0)
131 {
132 If(And(\_SB.OSCO, 0x04))
133 {
134 Return(4)
135 } Else
136 {
137 Return(3)
138 }
139 } // End _S0W
140 }
141
142 Scope(\_SB.PCI0.XHC1) // XHCI host only controller
143 {
144
145 Method(_PS0,0,Serialized) // set device into D0 state
146 {
147 }
148
149 Method(_PS3,0,Serialized) // place device into D3H state
150 {
151 //write to PMCSR
152 }
153
154 Method(_DSW, 3,Serialized) // enable or disable the device’s ability to wake a sleeping system.
155 {
156 }
157 }
158
159 Scope(\_SB.PCI0.XHC1.RHUB.HS01)
160 {
161
162 }
163
164 Scope(\_SB.PCI0.XHC1.RHUB.SSP1)
165 {
166
167 }
168
169 Scope(\_SB.PCI0.XHC2) // OTG
170 {
171
172 Method(_PS0,0,Serialized) // set device into D0 state
173 {
174 }
175
176 Method(_PS3,0,Serialized) // place device into D3H state
177 {
178 //write to PMCSR
179 }
180
181 Method(_DSW, 3,Serialized) // enable or disable the device’s ability to wake a sleeping system.
182 {
183 }
184 }
185
186 Scope(\_SB.PCI0.XHC2.RHUB.HS01)
187 {
188
189 }
190
191 Scope(\_SB.PCI0.XHC2.RHUB.SSP1)
192 {
193
194 }
195 } //If(LEqual(RTD3,1)) USB
196
197 }//end of SSDT