]>
Commit | Line | Data |
---|---|---|
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 | |
21 | DefinitionBlock (\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 |