1/***************************************************************************************;
2;*                                                                                     *;
3;*                                                                                     *;
4;*    Intel Corporation - ACPI Reference Code for the Baytrail                         *;
5;*    Family of Customer Reference Boards.                                             *;
6;*                                                                                     *;
7;*                                                                                     *;
8;*    Copyright (c)  2011  - 2014, Intel Corporation. All rights reserved              *;
9;*                                                                                     *;
10;*   This program and the accompanying materials are licensed and made available under *;
11;*   the terms and conditions of the BSD License that accompanies this distribution.   *;
12;*   The full text of the license may be found at                                      *;
13;*   http://opensource.org/licenses/bsd-license.php.                                   *;
14;*                                                                                     *;
15;*   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,             *;
16;*   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.     *;
17;*                                                                                     *;
18;*                                                                                     *;
19;*                                                                                     *;
20;***************************************************************************************/
21
22OperationRegion(PWKE,PCI_Config,0x62,0x04)
23
24Field(PWKE,DWordAcc,NoLock,Preserve)
25{
26  , 1,
27  PWUC, 8 // Port Wake Up Capability Mask
28}
29
30Method(_PSW,1)
31{
32  If(Arg0)
33  {
34    Store(Ones,PWUC)
35  }
36  Else
37  {
38    Store(0,PWUC)
39  }
40}
41
42// Leaves the USB ports on in S3/S4 to allow
43// the ability to Wake from USB.  Therefore, define
44// the below control methods to state D2 entry during
45// the given S-State.
46
47Method(_S3D,0)
48{
49  Return(2)
50}
51
52Method(_S4D,0)
53{
54  Return(2)
55}
56
57Device(HUBN)
58{
59  Name(_ADR, Zero)
60  Device(PR01)
61  {
62    Name(_ADR, One)
63
64    //
65    // There will have "Generic USB Hub" existed at Port 1 of each EHCI controller
66    // in Windows "Device Manager" while RMH is enabled, so need to add _UPC
67    // and _PLD to report OS that it's not user visible to pass WHQL: Single Computer
68    // Display Object test in Win7
69    //
70    Name(_UPC, Package()
71    {
72      0xFF,                       // Port is connectable
73      0x00,                       // Connector type - Type "A"
74      0x00000000,                 // Reserved 0 - must be zero
75      0x00000000
76    })                // Reserved 1 - must be zero
77
78    Name(_PLD, Package()
79    {
80      Buffer (0x10)
81      {
82        0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
83        0x00, 0x00, 0x00, 0x00,
84        0x30, 0x1C, 0x00, 0x00,     // Panel Unknown, Shape Unknown
85        0x00, 0x00, 0x00, 0x00
86      }
87    })
88
89    Device(PR11)
90    {
91      Name(_ADR, One)
92      Name(_UPC, Package()
93      {
94        0xFF,                       // Port is connectable
95        0xFF,                       // Proprietary connector
96        0x00000000,                 // Reserved 0 - must be zero
97        0x00000000
98      })                // Reserved 1 - must be zero
99      Name(_PLD, Package()
100      {
101        Buffer (0x10)
102        {
103          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
104          0x00, 0x00, 0x00, 0x00,
105          0xE1, 0x1C, 0x00, 0x00,     // Front Panel, Vertical Upper, Horz. Left, Shape Unknown
106          0x00, 0x00, 0x00, 0x00
107        }
108      })
109    }
110
111    Device(PR12)
112    {
113      Name(_ADR, 0x02)
114      Name(_UPC, Package()
115      {
116        0xFF,                       // Port is connectable
117        0xFF,                       // Proprietary connector
118        0x00000000,                 // Reserved 0 - must be zero
119        0x00000000
120      })                // Reserved 1 - must be zero
121      Name(_PLD, Package()
122      {
123        Buffer (0x10)
124        {
125          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
126          0x00, 0x00, 0x00, 0x00,
127          0xE1, 0x1D, 0x00, 0x00,     // Front Panel, Vertical Center, Horz. Left, Shape Unknown
128          0x00, 0x00, 0x00, 0x00
129        }
130      })
131    }
132
133    Device(PR13)
134    {
135      Name(_ADR, 0x03)
136      Name(_UPC, Package()
137      {
138        0xFF,                       // Port is connectable
139        0xFF,                       // Proprietary connector
140        0x00000000,                 // Reserved 0 - must be zero
141        0x00000000
142      })                // Reserved 1 - must be zero
143      Name(_PLD, Package()
144      {
145        Buffer (0x10)
146        {
147          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
148          0x00, 0x00, 0x00, 0x00,
149          0xE1, 0x1D, 0x00, 0x00,     // Front Panel, Vertical Center, Horz. Left, Shape Unknown
150          0x00, 0x00, 0x00, 0x00
151        }
152      })
153    }
154
155    Device(PR14)
156    {
157      Name(_ADR, 0x04)
158      Name(_UPC, Package()
159      {
160        0xFF,                       // Port is connectable
161        0xFF,                       // Proprietary connector
162        0x00000000,                 // Reserved 0 - must be zero
163        0x00000000
164      })                // Reserved 1 - must be zero
165
166      Name(_PLD, Package()
167      {
168        Buffer (0x10)
169        {
170          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
171          0x00, 0x00, 0x00, 0x00,
172          0xE1, 0x1E, 0x00, 0x00,     // Front Panel, Vertical Lower, Horz. Left, Shape Unknown
173          0x00, 0x00, 0x00, 0x00
174        }
175      })
176
177      // copy USB Sideband Deferring GPE Vector (HOST_ALERT#1) to DSM method
178      Include("UsbSbd.asl")
179    }
180
181    Device(PR15)
182    {
183      Name(_ADR, 0x05)
184      Name(_UPC, Package()
185      {
186        0xFF,                       // Port is connectable
187        0xFF,                       // Proprietary connector
188        0x00000000,                 // Reserved 0 - must be zero
189        0x00000000
190      })                // Reserved 1 - must be zero
191      Name(_PLD, Package()
192      {
193        Buffer (0x10)
194        {
195          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
196          0x00, 0x00, 0x00, 0x00,
197          0xB1, 0x1E, 0x00, 0x00,     // Panel Unknown, Shape Unknown
198          0x00, 0x00, 0x00, 0x00
199        }
200      })
201      // copy USB Sideband Deferring GPE Vector (HOST_ALERT#2) to DSM method
202      Include("UsbSbd.asl")
203    }
204
205    Device(PR16)
206    {
207      Name(_ADR, 0x06)
208      Name(_UPC, Package()
209      {
210        0xFF,                       // Port is connectable
211        0xFF,                       // Proprietary connector
212        0x00000000,                 // Reserved 0 - must be zero
213        0x00000000
214      })                // Reserved 1 - must be zero
215      Name(_PLD, Package()
216      {
217        Buffer (0x10)
218        {
219          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
220          0x00, 0x00, 0x00, 0x00,
221          0xB1, 0x1E, 0x00, 0x00,     // Panel Unknown, Shape Unknown
222          0x00, 0x00, 0x00, 0x00
223        }
224      })
225      // copy USB Sideband Deferring GPE Vector (HOST_ALERT#1) to DSM method
226      Include("UsbSbd.asl")
227    }
228
229    Device(PR17)
230    {
231      Name(_ADR, 0x07)
232      Name(_UPC, Package()
233      {
234        0xFF,                       // Port is connectable
235        0xFF,                       // Proprietary connector
236        0x00000000,                 // Reserved 0 - must be zero
237        0x00000000
238      })                // Reserved 1 - must be zero
239      Name(_PLD, Package()
240      {
241        Buffer (0x10)
242        {
243          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
244          0x00, 0x00, 0x00, 0x00,
245          0xB1, 0x1E, 0x00, 0x00,     // Panel Unknown, Shape Unknown
246          0x00, 0x00, 0x00, 0x00
247        }
248      })
249      // copy USB Sideband Deferring GPE Vector (HOST_ALERT#2) to DSM method
250      Include("UsbSbd.asl")
251    }
252
253    Device(PR18)
254    {
255      Name(_ADR, 0x08)
256      Name(_UPC, Package()
257      {
258        0xFF,                       // Port is connectable
259        0xFF,                       // Proprietary connector
260        0x00000000,                 // Reserved 0 - must be zero
261        0x00000000
262      })                // Reserved 1 - must be zero
263      Name(_PLD, Package()
264      {
265        Buffer (0x10)
266        {
267          0x81, 0x00, 0x00, 0x00,     // Revision 1, Ignore color
268          0x00, 0x00, 0x00, 0x00,
269          0xB1, 0x1E, 0x00, 0x00,     // Panel Unknown, Shape Unknown
270          0x00, 0x00, 0x00, 0x00
271        }
272      })
273    }
274  } // End of PR01
275} // End of HUBN
276