forked from RehabMan/Intel-NUC-DSDT-Patch
-
Notifications
You must be signed in to change notification settings - Fork 3
/
SSDT-DEHCI.dsl
73 lines (70 loc) · 2.03 KB
/
SSDT-DEHCI.dsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Disabling EHCI #1 (and EHCI #2)
//DefinitionBlock("", "SSDT", 2, "hack", "_DEHCI", 0)
//{
External(_SB.PCI0, DeviceObj)
External(_SB.PCI0.EH01, DeviceObj)
External(_SB.PCI0.EH02, DeviceObj)
External(_SB.PCI0.LPCB, DeviceObj)
// registers needed for disabling EHC#1
Scope(_SB.PCI0.EH01)
{
OperationRegion(RMP1, PCI_Config, 0x54, 2)
Field(RMP1, WordAcc, NoLock, Preserve)
{
PSTE, 2 // bits 2:0 are power state
}
}
// registers needed for disabling EHC#1
Scope(_SB.PCI0.EH02)
{
OperationRegion(RMP1, PCI_Config, 0x54, 2)
Field(RMP1, WordAcc, NoLock, Preserve)
{
PSTE, 2 // bits 2:0 are power state
}
}
Scope(_SB.PCI0.LPCB)
{
OperationRegion(RMP1, PCI_Config, 0xF0, 4)
Field(RMP1, DWordAcc, NoLock, Preserve)
{
RCB1, 32, // Root Complex Base Address
}
// address is in bits 31:14
OperationRegion(FDM1, SystemMemory, (RCB1 & Not((1<<14)-1)) + 0x3418, 4)
Field(FDM1, DWordAcc, NoLock, Preserve)
{
,13, // skip first 13 bits
FDE2,1, // should be bit 13 (0-based) (FD EHCI#2)
,1,
FDE1,1, // should be bit 15 (0-based) (FD EHCI#1)
}
}
Scope(_SB.PCI0)
{
Device(RMD2)
{
Name(_HID, "RMD20000")
Method(_INI)
{
If (CondRefOf(\_SB.PCI0.EH01))
{
// disable EHCI#1
// put EHCI#1 in D3hot (sleep mode)
^^EH01.PSTE = 3
// disable EHCI#1 PCI space
^^LPCB.FDE1 = 1
}
If (CondRefOf(\_SB.PCI0.EH02))
{
// disable EHCI#2
// put EHCI#2 in D3hot (sleep mode)
^^EH02.PSTE = 3
// disable EHCI#2 PCI space
^^LPCB.FDE2 = 1
}
}
}
}
//}
//EOF