mirror of https://github.com/acidanthera/audk.git
204 lines
5.3 KiB
Plaintext
204 lines
5.3 KiB
Plaintext
|
/**************************************************************************;
|
|||
|
;* *;
|
|||
|
;* *;
|
|||
|
;* Intel Corporation - ACPI Reference Code for the Baytrail *;
|
|||
|
;* Family of Customer Reference Boards. *;
|
|||
|
;* *;
|
|||
|
;* *;
|
|||
|
;* Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved *;
|
|||
|
;
|
|||
|
; This program and the accompanying materials are licensed and made available under
|
|||
|
; the terms and conditions of the BSD License that accompanies this distribution.
|
|||
|
; The full text of the license may be found at
|
|||
|
; http://opensource.org/licenses/bsd-license.php.
|
|||
|
;
|
|||
|
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|||
|
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
;
|
|||
|
;* *;
|
|||
|
;* *;
|
|||
|
;**************************************************************************/
|
|||
|
DefinitionBlock (
|
|||
|
"Rtd3.aml",
|
|||
|
"SSDT",
|
|||
|
1,
|
|||
|
"AcpiRef",
|
|||
|
"Msg_Rtd3",
|
|||
|
0x1000
|
|||
|
)
|
|||
|
{
|
|||
|
External(RTD3) //flag if RTD3 is enabled
|
|||
|
|
|||
|
If(LEqual(RTD3,1))
|
|||
|
{
|
|||
|
Scope (\_SB)
|
|||
|
{
|
|||
|
Name(OSCI, 0) // \_SB._OSC DWORD2 input
|
|||
|
Name(OSCO, 0) // \_SB._OSC DWORD2 output
|
|||
|
|
|||
|
//Arg0 -- A buffer containing UUID
|
|||
|
//Arg1 -- An Interger containing a Revision ID of the buffer format
|
|||
|
//Arg2 -- An interger containing a count of entries in Arg3
|
|||
|
//Arg3 -- A buffer containing a list of DWORD capacities
|
|||
|
Method(_OSC, 4, NotSerialized)
|
|||
|
{
|
|||
|
// Check for proper UUID
|
|||
|
If(LEqual(Arg0, ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48")))
|
|||
|
{
|
|||
|
CreateDWordField(Arg3,0,CDW1) //bit1,2 is always clear
|
|||
|
CreateDWordField(Arg3,4,CDW2) //Table 6-147 from ACPI spec
|
|||
|
|
|||
|
Store(CDW2, OSCI) // Save DWord2
|
|||
|
Or(OSCI, 0x4, OSCO) // Only allow _PR3 support
|
|||
|
|
|||
|
If(LNotEqual(Arg1,One))
|
|||
|
{
|
|||
|
Or(CDW1,0x08,CDW1) // Unknown revision
|
|||
|
}
|
|||
|
|
|||
|
If(LNotEqual(OSCI, OSCO))
|
|||
|
{
|
|||
|
Or(CDW1,0x10,CDW1) // Capabilities bits were masked
|
|||
|
}
|
|||
|
|
|||
|
Store(OSCO, CDW2) // Replace DWord2
|
|||
|
Return(Arg3)
|
|||
|
} Else
|
|||
|
{
|
|||
|
Or(CDW1,4,CDW1) // Unrecognized UUID
|
|||
|
Return(Arg3)
|
|||
|
}
|
|||
|
}// End _OSC
|
|||
|
}
|
|||
|
}//end of RTD3 condition
|
|||
|
|
|||
|
|
|||
|
//USB RTD3 code
|
|||
|
If(LEqual(RTD3,1))
|
|||
|
{
|
|||
|
Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR13)
|
|||
|
{
|
|||
|
Name(_PR0, Package() {\PR34})
|
|||
|
Name(_PR3, Package() {\PR34})
|
|||
|
|
|||
|
Method(_S0W, 0)
|
|||
|
{
|
|||
|
If(And(\_SB.OSCO, 0x04)) // PMEs can be genrated from D3cold
|
|||
|
{
|
|||
|
Return(4) // OS comprehends D3cold, as described via \_SB._OSC
|
|||
|
} Else
|
|||
|
{
|
|||
|
Return(3)
|
|||
|
}
|
|||
|
} // End _S0W
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR14)
|
|||
|
{
|
|||
|
Name(_PR0, Package() {\PR34})
|
|||
|
Name(_PR3, Package() {\PR34})
|
|||
|
|
|||
|
Method(_S0W, 0)
|
|||
|
{
|
|||
|
If(And(\_SB.OSCO, 0x04))
|
|||
|
{
|
|||
|
Return(4)
|
|||
|
} Else
|
|||
|
{
|
|||
|
Return(3)
|
|||
|
}
|
|||
|
} // End _S0W
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR15)
|
|||
|
{
|
|||
|
Name(_PR0, Package() {\PR56})
|
|||
|
Name(_PR3, Package() {\PR56})
|
|||
|
|
|||
|
Method(_S0W, 0)
|
|||
|
{
|
|||
|
If(And(\_SB.OSCO, 0x04))
|
|||
|
{
|
|||
|
Return(4)
|
|||
|
} Else
|
|||
|
{
|
|||
|
Return(3)
|
|||
|
}
|
|||
|
} // End _S0W
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.EHC1.HUBN.PR01.PR16)
|
|||
|
{
|
|||
|
Name(_PR0, Package() {\PR56})
|
|||
|
Name(_PR3, Package() {\PR56})
|
|||
|
|
|||
|
Method(_S0W, 0)
|
|||
|
{
|
|||
|
If(And(\_SB.OSCO, 0x04))
|
|||
|
{
|
|||
|
Return(4)
|
|||
|
} Else
|
|||
|
{
|
|||
|
Return(3)
|
|||
|
}
|
|||
|
} // End _S0W
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC1) // XHCI host only controller
|
|||
|
{
|
|||
|
|
|||
|
Method(_PS0,0,Serialized) // set device into D0 state
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
Method(_PS3,0,Serialized) // place device into D3H state
|
|||
|
{
|
|||
|
//write to PMCSR
|
|||
|
}
|
|||
|
|
|||
|
Method(_DSW, 3,Serialized) // enable or disable the device’s ability to wake a sleeping system.
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC1.RHUB.HS01)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC1.RHUB.SSP1)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC2) // OTG
|
|||
|
{
|
|||
|
|
|||
|
Method(_PS0,0,Serialized) // set device into D0 state
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
Method(_PS3,0,Serialized) // place device into D3H state
|
|||
|
{
|
|||
|
//write to PMCSR
|
|||
|
}
|
|||
|
|
|||
|
Method(_DSW, 3,Serialized) // enable or disable the device’s ability to wake a sleeping system.
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC2.RHUB.HS01)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
Scope(\_SB.PCI0.XHC2.RHUB.SSP1)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
} //If(LEqual(RTD3,1)) USB
|
|||
|
|
|||
|
}//end of SSDT
|