1
0
Fork 0
mirror of https://github.com/tylernguyen/x1c6-hackintosh.git synced 2025-02-05 01:23:14 -06:00
x1c6-hackintosh/patches/SSDT-XHC1.dsl

976 lines
34 KiB
Text
Raw Permalink Normal View History

// Depends on /patches/OpenCore Patches/ XHC1.plist
//
// Native ACPI-setup for the USB2/3-controller on x80-series Thinkpads
//
// This enables all ports to be as native as possible on OSX and only disables those devices which
// have definetly no drivers on OSX. It should be compatible with almost all thinkpad-configs.
//
// The opinion that things like cardreader, which might not be used, are adding to a significant
// power-draw is false - if one has a working USB-setup. Even if it does not hurt.
//
// This SSDT is developed with compatibility in mind and therefor all devices are enabled by default.
//
// I'm driving both of my thinkpads with ~0.7W pkg-power draw on idle with all devices enabled.
//
// Reference: https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
//
// Credits @benbender
2020-11-03 11:58:35 -06:00
DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC1", 0x00001000)
{
2020-11-17 14:32:44 -06:00
// External method from SSDT-Darwin.dsl
External (OSDW, MethodObj) // 0 Arguments
External (DTGP, MethodObj) // 5 Arguments
External (_SB.PCI0.XHC_, DeviceObj)
External (_SB.PCI0.XHC_.RHUB, DeviceObj)
External (_SB.PCI0.XHC_.RHUB.HS01, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS01.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS02, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS02.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS03, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS03.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS04, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS04.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS05, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS05.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS06, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS06.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS07, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS07.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS08, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS08.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS09, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS09.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.HS10, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.HS10.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS01, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS01.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS02, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS02.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS03, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS03.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS04, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS04.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS05, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS05.XUPC, MethodObj)
External (_SB.PCI0.XHC_.RHUB.SS06, DeviceObj)
2020-11-17 14:32:44 -06:00
External (_SB.PCI0.XHC_.RHUB.SS06.XUPC, MethodObj)
External (_SB.PCI0.XHC_.PDBM, FieldUnitObj)
External (_SB.PCI0.XHC_.MEMB, FieldUnitObj)
External (_SB.PCI0.XHC_.XPS0, MethodObj)
External (_SB.PCI0.XHC_.XPS3, MethodObj)
External (_SB.PCI0.RP09.PXSX.DSB2.XHC2, DeviceObj)
External (_SB.PCI0.RP09.PXSX.DSB2.XHC2.MODU, MethodObj) // 0 Arguments
External (_SB.PCI0.RP09.UPN1, IntObj)
External (_SB.PCI0.RP09.UPN2, IntObj)
External (TBAS, IntObj)
External (XLTP, FieldUnitObj)
External (MPMC, FieldUnitObj)
External (PMFS, FieldUnitObj)
External (UWAB, FieldUnitObj)
Scope (\_SB)
2020-11-03 11:58:35 -06:00
{
2020-11-14 10:19:55 -06:00
// kUSBPlatformProperties
Device (USBX)
2020-11-03 11:58:35 -06:00
{
Name (_ADR, Zero) // _ADR: Address
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
2020-11-03 11:58:35 -06:00
{
Local0 = Package ()
{
"kUSBSleepPortCurrentLimit",
2020-11-17 14:32:44 -06:00
2100,
"kUSBWakePortCurrentLimit",
2020-11-17 14:32:44 -06:00
2100,
2020-11-14 10:19:55 -06:00
"kUSBSleepPowerSupply",
2020-11-17 14:32:44 -06:00
5100,
2020-11-14 10:19:55 -06:00
"kUSBWakePowerSupply",
2020-11-17 14:32:44 -06:00
5100,
}
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
2020-11-03 11:58:35 -06:00
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (OSDW ())
{
Return (0x0F)
}
Return (Zero)
}
}
Scope (PCI0.XHC_)
{
2020-11-14 10:19:55 -06:00
// Name (SDPC, Zero)
Name (_GPE, 0x6D) // _GPE: General Purpose Events
2020-11-03 11:58:35 -06:00
2020-11-14 10:19:55 -06:00
// Name (SBAR, Zero)
// OperationRegion (XPRX, PCI_Config, Zero, 0x0100)
// Field (XPRX, AnyAcc, NoLock, Preserve)
// {
// DVIX, 16,
// Offset (0x40),
// , 11,
// SWAI, 1,
// Offset (0x44),
// , 12,
// SAIP, 2,
// Offset (0x48),
// Offset (0x50),
// , 2,
// STGX, 1,
// Offset (0x74),
// D03X, 2,
// Offset (0x75),
// PXEE, 1,
// , 6,
// PXES, 1,
// Offset (0xA2),
// , 2,
// D3HX, 1,
// Offset (0xA8),
// , 13,
// MW13, 1,
// MW14, 1,
// Offset (0xAC),
// Offset (0xB0),
// , 13,
// MB13, 1,
// MB14, 1,
// Offset (0xB4),
// Offset (0xD0),
// PR2, 32,
// PR2M, 32,
// PR3, 32,
// PR3M, 32
// }
// kUSBTypeCCableDetectACPIMethodSupported
Method (RTPC, 1, Serialized)
2020-11-03 11:58:35 -06:00
{
Debug = Concatenate ("XHC:RTPC called with args: ", Arg0)
2020-11-03 11:58:35 -06:00
Return (Zero)
2020-11-03 11:58:35 -06:00
}
/**
2020-11-14 10:19:55 -06:00
* kUSBTypeCCableDetectACPIMethod
*
* Return:
* kUSBTypeCCableTypeNone = 0,
* kUSBTypeCCableTypeUSB = 1,
*/
Method (MODU, 0, Serialized)
2020-11-03 11:58:35 -06:00
{
// If (CondRefOf (\_SB.PCI0.RP09.PXSX.DSB2.XHC2.MODU, Local0))
// {
// Local0 = \_SB.PCI0.RP09.PXSX.DSB2.XHC2.MODU ()
// }
// Local1 = Zero
// If ((Local0 == One) || (Local1 == One))
// {
// Local0 = One
// }
// ElseIf ((Local0 == 0xFF) || (Local1 == 0xFF))
// {
// Local0 = 0xFF
// }
// Else
// {
// Local0 = Zero
// }
// Debug = Concatenate ("XHC:MODU - Result: ", Local0)
// Return (Local0)
2020-11-03 11:58:35 -06:00
Local0 = One
2020-11-03 11:58:35 -06:00
If (CondRefOf (\_SB.PCI0.RP09.PXSX.DSB2.XHC2.MODU))
{
Local0 = (\_SB.PCI0.RP09.PXSX.DSB2.XHC2.MODU ())
}
Debug = Concatenate ("XHC:MODU - Result: ", Local0)
2020-11-03 11:58:35 -06:00
Return (Local0)
2020-11-03 11:58:35 -06:00
}
2020-11-14 10:19:55 -06:00
// Method (USBM, 0, Serialized)
// {
// ^D03X = Zero
// Local1 = ^PDBM /* \_SB_.PCI0.XHC1.PDBM */
// Local2 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// ^PDBM = (Local1 | 0x02)
// Local0 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local0 &= 0xFFFFFFFFFFFFFFF0
// OperationRegion (PSCA, SystemMemory, Local0, 0x0600)
// Field (PSCA, DWordAcc, NoLock, Preserve)
// {
// Offset (0x480),
// PC01, 32,
// Offset (0x490),
// PC02, 32,
// Offset (0x4A0),
// PC03, 32,
// Offset (0x4B0),
// PC04, 32
// }
// Local6 = PC03 /* \_SB_.PCI0.XHC1.USBM.PC03 */
// Local6 = (PC03 & 0xFFFFFFFFFFFFFFFD)
// PC03 = (Local6 & 0xFFFFFFFFFFFFFDFF)
// Sleep (0x32)
// Local6 = PC03 /* \_SB_.PCI0.XHC1.USBM.PC03 */
// ^PDBM &= 0xFFFFFFFFFFFFFFF9
// ^D03X = 0x03
// ^MEMB = Local2
// ^PDBM = Local1
// Return (Zero)
// }
// Method (_PS0, 0, Serialized) // _PS0: Power State 0
// {
// If (OSDW ())
// {
// Local2 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local1 = ^PDBM /* \_SB_.PCI0.XHC1.PDBM */
// ^PDBM &= 0xFFFFFFFFFFFFFFF9
// ^D03X = Zero
// If (SBAR == Zero)
// {
// Local7 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local7 &= 0xFFFFFFFFFFFFFFF0
// If ((Local7 == Zero) || (Local7 == 0xFFFFFFFFFFFFFFF0))
// {
// ^MEMB = 0xFEAF0000
// }
// }
// Else
// {
// ^MEMB = SBAR /* \_SB_.PCI0.XHC1.SBAR */
// }
// ^PDBM = (Local1 | 0x02)
// Local0 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local0 &= 0xFFFFFFFFFFFFFFF0
// OperationRegion (MCA1, SystemMemory, Local0, 0x9000)
// Field (MCA1, DWordAcc, NoLock, Preserve)
// {
// Offset (0x80A4),
// , 28,
// AX28, 1,
// Offset (0x80C0),
// , 10,
// S0IX, 1,
// Offset (0x81C4),
// , 2,
// CLK0, 1,
// , 3,
// CLK1, 1
// }
// S0IX = Zero
// AX28 = One
// Stall (0x33)
// AX28 = Zero
// CLK0 = Zero
// CLK1 = Zero
// ^PDBM &= 0xFFFFFFFFFFFFFFFD
// ^MEMB = Local2
// ^PDBM = Local1
// If (UWAB && (D03X == Zero))
// {
// MPMC = One
// Local0 = (Timer + 0x00989680)
// While (Timer <= Local0)
// {
// If (PMFS == Zero)
// {
// Break
// }
// Sleep (0x0A)
// }
// }
// }
// Else
// {
// // NON-OSX
// \_SB.PCI0.XHC_.XPS0 ()
// }
// }
// Method (_PS3, 0, Serialized) // _PS3: Power State 3
// {
// If (OSDW ())
// {
// Local1 = ^PDBM /* \_SB_.PCI0.XHC1.PDBM */
// Local2 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// ^PDBM &= 0xFFFFFFFFFFFFFFF9
// If (XLTP == Zero)
// {
// ^D03X = 0x03
// Stall (0x1E)
// }
// ^D03X = Zero
// ^PDBM = (Local1 | 0x02)
// SBAR = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// If (SBAR == Zero)
// {
// Local7 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local7 &= 0xFFFFFFFFFFFFFFF0
// If ((Local7 == Zero) || (Local7 == 0xFFFFFFFFFFFFFFF0))
// {
// ^MEMB = 0xFEAF0000
// }
// }
// Local0 = ^MEMB /* \_SB_.PCI0.XHC1.MEMB */
// Local0 &= 0xFFFFFFFFFFFFFFF0
// OperationRegion (MCA1, SystemMemory, Local0, 0x9000)
// Field (MCA1, DWordAcc, NoLock, Preserve)
// {
// Offset (0x80A4),
// , 28,
// AX28, 1,
// Offset (0x80C0),
// , 10,
// S0IX, 1,
// Offset (0x81C4),
// , 2,
// CLK0, 1,
// , 3,
// CLK1, 1
// }
// If (XLTP == Zero)
// {
// S0IX = One
// Stall (0x14)
// }
// CLK0 = Zero
// CLK1 = One
// ^PDBM = Local1
// ^D03X = 0x03
// ^MEMB = Local2
// ^PDBM = Local1
// If (UWAB && (D03X == 0x03))
// {
// MPMC = 0x03
// Local0 = (Timer + 0x00989680)
// While (Timer <= Local0)
// {
// If (PMFS == Zero)
// {
// Break
// }
// Sleep (0x0A)
// }
// }
// }
// Else
// {
// // NON-OSX
// \_SB.PCI0.XHC_.XPS3 ()
// }
// }
2020-11-03 11:58:35 -06:00
Scope (RHUB)
2020-11-03 11:58:35 -06:00
{
Scope (HS01) // Right USB-A-Port, 480 Mbit/s
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS02) // Left USB-A-Port, 480 Mbit/s
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS03) // Upper USB-C-Port, weired config, needs investigation
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
2020-11-17 14:32:44 -06:00
If (CondRefOf (\_SB_.PCI0.RP09.PXSX.DSB2.XHC2))
{
Debug = "XHC:U2OP - companion ports enabled"
}
2020-11-17 14:32:44 -06:00
Return (Package () // _UPC: USB Port Capabilities
{
2020-11-14 10:19:55 -06:00
0xFF,
2020-11-17 14:32:44 -06:00
0x08,
Zero,
2020-11-14 10:19:55 -06:00
Zero
2020-11-17 14:32:44 -06:00
})
2020-11-14 10:19:55 -06:00
}
Else
{
2020-11-17 14:32:44 -06:00
Return (^XUPC ())
}
}
If (CondRefOf (\_SB_.PCI0.RP09.PXSX.DSB2.XHC2))
2020-11-03 11:58:35 -06:00
{
Name (SSP, Package (0x02)
{
"XHC2",
0x03
})
Name (SS, Package (0x02)
{
"XHC2",
0x03
})
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
2020-11-03 11:58:35 -06:00
{
Local0 = Package (0x01) {}
If (CondRefOf (\_SB.PCI0.RP09.UPN2))
{
Local0 = Package (0x02) {
"UsbCPortNumber",
\_SB.PCI0.RP09.UPN1
2020-11-03 11:58:35 -06:00
}
}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
2020-11-03 11:58:35 -06:00
}
}
Scope (HS04) // Lower USB-C-Port, weired config, needs investigation
2020-11-03 11:58:35 -06:00
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
2020-11-14 10:19:55 -06:00
{
2020-11-17 14:32:44 -06:00
Return (Package () // _UPC: USB Port Capabilities
{
2020-11-14 10:19:55 -06:00
0xFF,
2020-11-17 14:32:44 -06:00
0x08,
Zero,
2020-11-14 10:19:55 -06:00
Zero
2020-11-17 14:32:44 -06:00
})
2020-11-14 10:19:55 -06:00
}
Else
{
2020-11-17 14:32:44 -06:00
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
If (CondRefOf (\_SB_.PCI0.RP09.PXSX.DSB2.XHC2))
2020-11-03 11:58:35 -06:00
{
Name (SSP, Package (0x02)
{
"XHC2",
0x04
})
Name (SS, Package (0x02)
{
"XHC2",
0x04
})
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
If (CondRefOf (\_SB.PCI0.RP09.UPN2))
{
Local0 = Package (0x02) {
"UsbCPortNumber",
\_SB.PCI0.RP09.UPN2
}
}
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
2020-11-03 11:58:35 -06:00
}
}
Scope (HS05) // internal, ir-webcam, deactivated
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (OSDW ())
2020-11-03 11:58:35 -06:00
{
Return (Zero) // disabled on OSX
2020-11-03 11:58:35 -06:00
}
Return (0xF) // enabled on others
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS06) // internal, unused
2020-11-03 11:58:35 -06:00
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS07) // Bluetooth, internal
2020-11-03 11:58:35 -06:00
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS08) // Webcam, internal
2020-11-03 11:58:35 -06:00
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS09) // Fingerprint reader, internal, deactivated
2020-11-03 11:58:35 -06:00
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (OSDW ())
{
Return (Zero) // disabled on OSX
}
Return (0xF) // enabled on others
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (HS10) // Touchscreen, internal
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS01) // Right USB-A-Port, 5 Gbit/s
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS02) // Left USB-A-Port, 5 Gbit/s
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS03) // Cardreader, internal
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
{
Return (0x00)
}
Name (IGNR, 0x00)
2020-11-14 10:19:55 -06:00
Method (SBHV, 1, Serialized)
{
If (Arg0)
{
Store (0x01, IGNR)
}
Else
{
Store (0x00, IGNR)
}
}
2020-11-14 10:19:55 -06:00
// kGetBehaviorACPIMethod
Method (GBHV, 0, Serialized)
{
Return (IGNR)
}
2020-11-14 10:19:55 -06:00
// kSDControllerCaptiveUSB3ReaderKey
Name (U3SD, 0x0FBE)
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x02) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS04) // Unused, internal
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS05) // Unused, internal
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Scope (SS06) // Unused, internal
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
2020-11-03 11:58:35 -06:00
{
2020-11-17 14:32:44 -06:00
If (OSDW ())
{
Return (Package () // _UPC: USB Port Capabilities
{
0xFF,
0xFF,
Zero,
Zero
})
}
Else
{
Return (^XUPC ())
}
}
2020-11-03 11:58:35 -06:00
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x01) {}
2020-11-03 11:58:35 -06:00
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
2020-11-14 10:19:55 -06:00
// system support SuperDrive
2020-11-03 11:58:35 -06:00
Method (MBSD, 0, NotSerialized)
{
Return (One)
}
If (CondRefOf (\_SB_.PCI0.RP09.PXSX.DSB2.XHC2))
{
Name (SSP, Package (0x01)
{
"XHC2"
})
Name (SS, Package (0x01)
{
"XHC2"
})
}
2020-11-03 11:58:35 -06:00
}
}
2020-11-17 14:32:44 -06:00
}