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