ec/google/wilco: Correct scope of UCSI ACPI device
Set the USCI device scope to _SB and set HID to USBC000 so Windows driver attaches. This matches the ACPI used by the non-Chromebook version of the Dell Latittude 7410 (which uses the same EC). TEST=build/boot Win11 on google/drallion Change-Id: If482fa4a4856c7bc085795bc72b35ebefe2f15c4 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77281 Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: CoolStar <coolstarorganization@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
23c718c93a
commit
4a587b8e96
@ -50,7 +50,7 @@ Device (EC0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize UCSI */
|
/* Initialize UCSI */
|
||||||
^UCSI.INIT ()
|
\_SB.UCSI.INIT ()
|
||||||
|
|
||||||
// Initialize LID switch state
|
// Initialize LID switch state
|
||||||
\LIDS = R (P1LC)
|
\LIDS = R (P1LC)
|
||||||
|
@ -131,53 +131,59 @@ Name (DWTQ, Package () { 0x38, 0xff, WR }) /* DPTF: Write Trip Query */
|
|||||||
Name (CSOS, Package () { 0xb8, 0xff, WR }) /* OS support for S0ix */
|
Name (CSOS, Package () { 0xb8, 0xff, WR }) /* OS support for S0ix */
|
||||||
Name (CSEX, Package () { 0xb9, 0xff, WR }) /* OS enter(1)/exit(0) S0ix */
|
Name (CSEX, Package () { 0xb9, 0xff, WR }) /* OS enter(1)/exit(0) S0ix */
|
||||||
|
|
||||||
/*
|
Scope (\_SB)
|
||||||
* EC UCSI
|
{
|
||||||
*/
|
Name (RD, 0)
|
||||||
Name (UVR0, Package () { 0x80, 0xff, RD }) /* UCSI Version */
|
Name (WR, 1)
|
||||||
Name (UVR1, Package () { 0x81, 0xff, RD }) /* UCSI Version */
|
|
||||||
Name (UCI0, Package () { 0x84, 0xff, RD }) /* UCSI Change Indicator */
|
/*
|
||||||
Name (UCI1, Package () { 0x85, 0xff, RD }) /* UCSI Change Indicator */
|
* EC UCSI
|
||||||
Name (UCI2, Package () { 0x86, 0xff, RD }) /* UCSI Change Indicator */
|
*/
|
||||||
Name (UCI3, Package () { 0x87, 0xff, RD }) /* UCSI Change Indicator */
|
Name (UVR0, Package () { 0x80, 0xff, RD }) /* UCSI Version */
|
||||||
Name (UCL0, Package () { 0x88, 0xff, WR }) /* UCSI Control */
|
Name (UVR1, Package () { 0x81, 0xff, RD }) /* UCSI Version */
|
||||||
Name (UCL1, Package () { 0x89, 0xff, WR }) /* UCSI Control */
|
Name (UCI0, Package () { 0x84, 0xff, RD }) /* UCSI Change Indicator */
|
||||||
Name (UCL2, Package () { 0x8a, 0xff, WR }) /* UCSI Control */
|
Name (UCI1, Package () { 0x85, 0xff, RD }) /* UCSI Change Indicator */
|
||||||
Name (UCL3, Package () { 0x8b, 0xff, WR }) /* UCSI Control */
|
Name (UCI2, Package () { 0x86, 0xff, RD }) /* UCSI Change Indicator */
|
||||||
Name (UCL4, Package () { 0x8c, 0xff, WR }) /* UCSI Control */
|
Name (UCI3, Package () { 0x87, 0xff, RD }) /* UCSI Change Indicator */
|
||||||
Name (UCL5, Package () { 0x8d, 0xff, WR }) /* UCSI Control */
|
Name (UCL0, Package () { 0x88, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UCL6, Package () { 0x8e, 0xff, WR }) /* UCSI Control */
|
Name (UCL1, Package () { 0x89, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UCL7, Package () { 0x8f, 0xff, WR }) /* UCSI Control */
|
Name (UCL2, Package () { 0x8a, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI0, Package () { 0x90, 0xff, RD }) /* UCSI Message In */
|
Name (UCL3, Package () { 0x8b, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI1, Package () { 0x91, 0xff, RD }) /* UCSI Message In */
|
Name (UCL4, Package () { 0x8c, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI2, Package () { 0x92, 0xff, RD }) /* UCSI Message In */
|
Name (UCL5, Package () { 0x8d, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI3, Package () { 0x93, 0xff, RD }) /* UCSI Message In */
|
Name (UCL6, Package () { 0x8e, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI4, Package () { 0x94, 0xff, RD }) /* UCSI Message In */
|
Name (UCL7, Package () { 0x8f, 0xff, WR }) /* UCSI Control */
|
||||||
Name (UMI5, Package () { 0x95, 0xff, RD }) /* UCSI Message In */
|
Name (UMI0, Package () { 0x90, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMI6, Package () { 0x96, 0xff, RD }) /* UCSI Message In */
|
Name (UMI1, Package () { 0x91, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMI7, Package () { 0x97, 0xff, RD }) /* UCSI Message In */
|
Name (UMI2, Package () { 0x92, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMI8, Package () { 0x98, 0xff, RD }) /* UCSI Message In */
|
Name (UMI3, Package () { 0x93, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMI9, Package () { 0x99, 0xff, RD }) /* UCSI Message In */
|
Name (UMI4, Package () { 0x94, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMIA, Package () { 0x9a, 0xff, RD }) /* UCSI Message In */
|
Name (UMI5, Package () { 0x95, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMIB, Package () { 0x9b, 0xff, RD }) /* UCSI Message In */
|
Name (UMI6, Package () { 0x96, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMIC, Package () { 0x9c, 0xff, RD }) /* UCSI Message In */
|
Name (UMI7, Package () { 0x97, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMID, Package () { 0x9d, 0xff, RD }) /* UCSI Message In */
|
Name (UMI8, Package () { 0x98, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMIE, Package () { 0x9e, 0xff, RD }) /* UCSI Message In */
|
Name (UMI9, Package () { 0x99, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMIF, Package () { 0x9f, 0xff, RD }) /* UCSI Message In */
|
Name (UMIA, Package () { 0x9a, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO0, Package () { 0xa0, 0xff, WR }) /* UCSI Message Out */
|
Name (UMIB, Package () { 0x9b, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO1, Package () { 0xa1, 0xff, WR }) /* UCSI Message Out */
|
Name (UMIC, Package () { 0x9c, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO2, Package () { 0xa2, 0xff, WR }) /* UCSI Message Out */
|
Name (UMID, Package () { 0x9d, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO3, Package () { 0xa3, 0xff, WR }) /* UCSI Message Out */
|
Name (UMIE, Package () { 0x9e, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO4, Package () { 0xa4, 0xff, WR }) /* UCSI Message Out */
|
Name (UMIF, Package () { 0x9f, 0xff, RD }) /* UCSI Message In */
|
||||||
Name (UMO5, Package () { 0xa5, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO0, Package () { 0xa0, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMO6, Package () { 0xa6, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO1, Package () { 0xa1, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMO7, Package () { 0xa7, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO2, Package () { 0xa2, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMO8, Package () { 0xa8, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO3, Package () { 0xa3, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMO9, Package () { 0xa9, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO4, Package () { 0xa4, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOA, Package () { 0xaa, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO5, Package () { 0xa5, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOB, Package () { 0xab, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO6, Package () { 0xa6, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOC, Package () { 0xac, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO7, Package () { 0xa7, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOD, Package () { 0xad, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO8, Package () { 0xa8, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOE, Package () { 0xae, 0xff, WR }) /* UCSI Message Out */
|
Name (UMO9, Package () { 0xa9, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UMOF, Package () { 0xaf, 0xff, WR }) /* UCSI Message Out */
|
Name (UMOA, Package () { 0xaa, 0xff, WR }) /* UCSI Message Out */
|
||||||
Name (UCTL, Package () { 0xb0, 0xff, WR }) /* UCSI Control Register */
|
Name (UMOB, Package () { 0xab, 0xff, WR }) /* UCSI Message Out */
|
||||||
|
Name (UMOC, Package () { 0xac, 0xff, WR }) /* UCSI Message Out */
|
||||||
|
Name (UMOD, Package () { 0xad, 0xff, WR }) /* UCSI Message Out */
|
||||||
|
Name (UMOE, Package () { 0xae, 0xff, WR }) /* UCSI Message Out */
|
||||||
|
Name (UMOF, Package () { 0xaf, 0xff, WR }) /* UCSI Message Out */
|
||||||
|
Name (UCTL, Package () { 0xb0, 0xff, WR }) /* UCSI Control Register */
|
||||||
|
}
|
||||||
|
@ -141,7 +141,7 @@ Method (_Q79, 0, Serialized)
|
|||||||
{
|
{
|
||||||
If (ISSX == 0) {
|
If (ISSX == 0) {
|
||||||
Printf ("EC _Q79 UCSI Event")
|
Printf ("EC _Q79 UCSI Event")
|
||||||
Notify (^UCSI, 0x80)
|
Notify (\_SB.UCSI, 0x80)
|
||||||
^UCEP = 0
|
^UCEP = 0
|
||||||
} Else {
|
} Else {
|
||||||
Printf ("EC _Q79 UCSI Event Masked in S0ix")
|
Printf ("EC _Q79 UCSI Event Masked in S0ix")
|
||||||
|
@ -1,143 +1,155 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
Device (UCSI)
|
Scope (\_SB)
|
||||||
{
|
{
|
||||||
Name (_HID, "GOOG000E")
|
Device (UCSI)
|
||||||
Name (_CID, EisaId ("PNP0CA0"))
|
|
||||||
Name (_DDN, "Wilco EC UCSI")
|
|
||||||
Name (_UID, 1)
|
|
||||||
Name (_STA, 0xb)
|
|
||||||
|
|
||||||
/* Value written to EC control register to start UCSI command */
|
|
||||||
Name (UCMD, 0xE0)
|
|
||||||
|
|
||||||
/* Shared memory fields are defined in the SSDT */
|
|
||||||
External (VER0, FieldUnitObj)
|
|
||||||
External (VER1, FieldUnitObj)
|
|
||||||
External (CCI0, FieldUnitObj)
|
|
||||||
External (CCI1, FieldUnitObj)
|
|
||||||
External (CCI2, FieldUnitObj)
|
|
||||||
External (CCI3, FieldUnitObj)
|
|
||||||
External (CTL0, FieldUnitObj)
|
|
||||||
External (CTL1, FieldUnitObj)
|
|
||||||
External (CTL2, FieldUnitObj)
|
|
||||||
External (CTL3, FieldUnitObj)
|
|
||||||
External (CTL4, FieldUnitObj)
|
|
||||||
External (CTL5, FieldUnitObj)
|
|
||||||
External (CTL6, FieldUnitObj)
|
|
||||||
External (CTL7, FieldUnitObj)
|
|
||||||
External (MGI0, FieldUnitObj)
|
|
||||||
External (MGI1, FieldUnitObj)
|
|
||||||
External (MGI2, FieldUnitObj)
|
|
||||||
External (MGI3, FieldUnitObj)
|
|
||||||
External (MGI4, FieldUnitObj)
|
|
||||||
External (MGI5, FieldUnitObj)
|
|
||||||
External (MGI6, FieldUnitObj)
|
|
||||||
External (MGI7, FieldUnitObj)
|
|
||||||
External (MGI8, FieldUnitObj)
|
|
||||||
External (MGI9, FieldUnitObj)
|
|
||||||
External (MGIA, FieldUnitObj)
|
|
||||||
External (MGIB, FieldUnitObj)
|
|
||||||
External (MGIC, FieldUnitObj)
|
|
||||||
External (MGID, FieldUnitObj)
|
|
||||||
External (MGIE, FieldUnitObj)
|
|
||||||
External (MGIF, FieldUnitObj)
|
|
||||||
External (MGO0, FieldUnitObj)
|
|
||||||
External (MGO1, FieldUnitObj)
|
|
||||||
External (MGO2, FieldUnitObj)
|
|
||||||
External (MGO3, FieldUnitObj)
|
|
||||||
External (MGO4, FieldUnitObj)
|
|
||||||
External (MGO5, FieldUnitObj)
|
|
||||||
External (MGO6, FieldUnitObj)
|
|
||||||
External (MGO7, FieldUnitObj)
|
|
||||||
External (MGO8, FieldUnitObj)
|
|
||||||
External (MGO9, FieldUnitObj)
|
|
||||||
External (MGOA, FieldUnitObj)
|
|
||||||
External (MGOB, FieldUnitObj)
|
|
||||||
External (MGOC, FieldUnitObj)
|
|
||||||
External (MGOD, FieldUnitObj)
|
|
||||||
External (MGOE, FieldUnitObj)
|
|
||||||
External (MGOF, FieldUnitObj)
|
|
||||||
|
|
||||||
Method (INIT)
|
|
||||||
{
|
{
|
||||||
/* Read UCSI version from EC into shared memory */
|
Name (_HID, EisaId("USBC000"))
|
||||||
^VER0 = R (^^UVR0)
|
Name (_CID, Package { "GOOG000E", EisaId ("PNP0CA0") })
|
||||||
^VER1 = R (^^UVR1)
|
Name (_DDN, "Wilco EC UCSI")
|
||||||
}
|
Name (_UID, 1)
|
||||||
|
Name (_STA, 0xf)
|
||||||
|
|
||||||
Method (_DSM, 4, Serialized)
|
/* Value written to EC control register to start UCSI command */
|
||||||
{
|
Name (UCMD, 0xE0)
|
||||||
If (Arg0 != ToUUID ("6f8398c2-7ca4-11e4-ad36-631042b5008f")) {
|
|
||||||
|
/* Shared memory fields are defined in the SSDT */
|
||||||
|
External (VER0, FieldUnitObj)
|
||||||
|
External (VER1, FieldUnitObj)
|
||||||
|
External (CCI0, FieldUnitObj)
|
||||||
|
External (CCI1, FieldUnitObj)
|
||||||
|
External (CCI2, FieldUnitObj)
|
||||||
|
External (CCI3, FieldUnitObj)
|
||||||
|
External (CTL0, FieldUnitObj)
|
||||||
|
External (CTL1, FieldUnitObj)
|
||||||
|
External (CTL2, FieldUnitObj)
|
||||||
|
External (CTL3, FieldUnitObj)
|
||||||
|
External (CTL4, FieldUnitObj)
|
||||||
|
External (CTL5, FieldUnitObj)
|
||||||
|
External (CTL6, FieldUnitObj)
|
||||||
|
External (CTL7, FieldUnitObj)
|
||||||
|
External (MGI0, FieldUnitObj)
|
||||||
|
External (MGI1, FieldUnitObj)
|
||||||
|
External (MGI2, FieldUnitObj)
|
||||||
|
External (MGI3, FieldUnitObj)
|
||||||
|
External (MGI4, FieldUnitObj)
|
||||||
|
External (MGI5, FieldUnitObj)
|
||||||
|
External (MGI6, FieldUnitObj)
|
||||||
|
External (MGI7, FieldUnitObj)
|
||||||
|
External (MGI8, FieldUnitObj)
|
||||||
|
External (MGI9, FieldUnitObj)
|
||||||
|
External (MGIA, FieldUnitObj)
|
||||||
|
External (MGIB, FieldUnitObj)
|
||||||
|
External (MGIC, FieldUnitObj)
|
||||||
|
External (MGID, FieldUnitObj)
|
||||||
|
External (MGIE, FieldUnitObj)
|
||||||
|
External (MGIF, FieldUnitObj)
|
||||||
|
External (MGO0, FieldUnitObj)
|
||||||
|
External (MGO1, FieldUnitObj)
|
||||||
|
External (MGO2, FieldUnitObj)
|
||||||
|
External (MGO3, FieldUnitObj)
|
||||||
|
External (MGO4, FieldUnitObj)
|
||||||
|
External (MGO5, FieldUnitObj)
|
||||||
|
External (MGO6, FieldUnitObj)
|
||||||
|
External (MGO7, FieldUnitObj)
|
||||||
|
External (MGO8, FieldUnitObj)
|
||||||
|
External (MGO9, FieldUnitObj)
|
||||||
|
External (MGOA, FieldUnitObj)
|
||||||
|
External (MGOB, FieldUnitObj)
|
||||||
|
External (MGOC, FieldUnitObj)
|
||||||
|
External (MGOD, FieldUnitObj)
|
||||||
|
External (MGOE, FieldUnitObj)
|
||||||
|
External (MGOF, FieldUnitObj)
|
||||||
|
|
||||||
|
Method (INIT)
|
||||||
|
{
|
||||||
|
/* Read UCSI version from EC into shared memory */
|
||||||
|
^VER0 = R (^^UVR0)
|
||||||
|
^VER1 = R (^^UVR1)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (R, 1, Serialized, 2){
|
||||||
|
Local0 = \_SB.PCI0.LPCB.EC0.R(Arg0)
|
||||||
|
Return (Local0)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (W, 2, Serialized, 2){
|
||||||
|
\_SB.PCI0.LPCB.EC0.W(Arg0, Arg1)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_DSM, 4, Serialized)
|
||||||
|
{
|
||||||
|
If (Arg0 != ToUUID ("6f8398c2-7ca4-11e4-ad36-631042b5008f")) {
|
||||||
|
Return (Buffer (1) { 0 })
|
||||||
|
}
|
||||||
|
|
||||||
|
Switch (ToInteger (Arg2))
|
||||||
|
{
|
||||||
|
Case (0)
|
||||||
|
{
|
||||||
|
Return (Buffer (1) { 0x07 })
|
||||||
|
}
|
||||||
|
Case (1)
|
||||||
|
{
|
||||||
|
/* Write Message Out */
|
||||||
|
W (^^UMO0, ^MGO0)
|
||||||
|
W (^^UMO1, ^MGO1)
|
||||||
|
W (^^UMO2, ^MGO2)
|
||||||
|
W (^^UMO3, ^MGO3)
|
||||||
|
W (^^UMO4, ^MGO4)
|
||||||
|
W (^^UMO5, ^MGO5)
|
||||||
|
W (^^UMO6, ^MGO6)
|
||||||
|
W (^^UMO7, ^MGO7)
|
||||||
|
W (^^UMO8, ^MGO8)
|
||||||
|
W (^^UMO9, ^MGO9)
|
||||||
|
W (^^UMOA, ^MGOA)
|
||||||
|
W (^^UMOB, ^MGOB)
|
||||||
|
W (^^UMOC, ^MGOC)
|
||||||
|
W (^^UMOD, ^MGOD)
|
||||||
|
W (^^UMOE, ^MGOE)
|
||||||
|
W (^^UMOF, ^MGOF)
|
||||||
|
|
||||||
|
/* Write Control */
|
||||||
|
W (^^UCL0, ^CTL0)
|
||||||
|
W (^^UCL1, ^CTL1)
|
||||||
|
W (^^UCL2, ^CTL2)
|
||||||
|
W (^^UCL3, ^CTL3)
|
||||||
|
W (^^UCL4, ^CTL4)
|
||||||
|
W (^^UCL5, ^CTL5)
|
||||||
|
W (^^UCL6, ^CTL6)
|
||||||
|
W (^^UCL7, ^CTL7)
|
||||||
|
|
||||||
|
/* Start EC Command */
|
||||||
|
W (^^UCTL, ^UCMD)
|
||||||
|
}
|
||||||
|
Case (2)
|
||||||
|
{
|
||||||
|
/* Read Message In */
|
||||||
|
^MGI0 = R (^^UMI0)
|
||||||
|
^MGI1 = R (^^UMI1)
|
||||||
|
^MGI2 = R (^^UMI2)
|
||||||
|
^MGI3 = R (^^UMI3)
|
||||||
|
^MGI4 = R (^^UMI4)
|
||||||
|
^MGI5 = R (^^UMI5)
|
||||||
|
^MGI6 = R (^^UMI6)
|
||||||
|
^MGI7 = R (^^UMI7)
|
||||||
|
^MGI8 = R (^^UMI8)
|
||||||
|
^MGI9 = R (^^UMI9)
|
||||||
|
^MGIA = R (^^UMIA)
|
||||||
|
^MGIB = R (^^UMIB)
|
||||||
|
^MGIC = R (^^UMIC)
|
||||||
|
^MGID = R (^^UMID)
|
||||||
|
^MGIE = R (^^UMIE)
|
||||||
|
^MGIF = R (^^UMIF)
|
||||||
|
|
||||||
|
/* Read Status */
|
||||||
|
^CCI0 = R (^^UCI0)
|
||||||
|
^CCI1 = R (^^UCI1)
|
||||||
|
^CCI2 = R (^^UCI2)
|
||||||
|
^CCI3 = R (^^UCI3)
|
||||||
|
}
|
||||||
|
}
|
||||||
Return (Buffer (1) { 0 })
|
Return (Buffer (1) { 0 })
|
||||||
}
|
}
|
||||||
|
|
||||||
Switch (ToInteger (Arg2))
|
|
||||||
{
|
|
||||||
Case (0)
|
|
||||||
{
|
|
||||||
Return (Buffer (1) { 0x07 })
|
|
||||||
}
|
|
||||||
Case (1)
|
|
||||||
{
|
|
||||||
/* Write Message Out */
|
|
||||||
W (^^UMO0, ^MGO0)
|
|
||||||
W (^^UMO1, ^MGO1)
|
|
||||||
W (^^UMO2, ^MGO2)
|
|
||||||
W (^^UMO3, ^MGO3)
|
|
||||||
W (^^UMO4, ^MGO4)
|
|
||||||
W (^^UMO5, ^MGO5)
|
|
||||||
W (^^UMO6, ^MGO6)
|
|
||||||
W (^^UMO7, ^MGO7)
|
|
||||||
W (^^UMO8, ^MGO8)
|
|
||||||
W (^^UMO9, ^MGO9)
|
|
||||||
W (^^UMOA, ^MGOA)
|
|
||||||
W (^^UMOB, ^MGOB)
|
|
||||||
W (^^UMOC, ^MGOC)
|
|
||||||
W (^^UMOD, ^MGOD)
|
|
||||||
W (^^UMOE, ^MGOE)
|
|
||||||
W (^^UMOF, ^MGOF)
|
|
||||||
|
|
||||||
/* Write Control */
|
|
||||||
W (^^UCL0, ^CTL0)
|
|
||||||
W (^^UCL1, ^CTL1)
|
|
||||||
W (^^UCL2, ^CTL2)
|
|
||||||
W (^^UCL3, ^CTL3)
|
|
||||||
W (^^UCL4, ^CTL4)
|
|
||||||
W (^^UCL5, ^CTL5)
|
|
||||||
W (^^UCL6, ^CTL6)
|
|
||||||
W (^^UCL7, ^CTL7)
|
|
||||||
|
|
||||||
/* Start EC Command */
|
|
||||||
W (^^UCTL, ^UCMD)
|
|
||||||
}
|
|
||||||
Case (2)
|
|
||||||
{
|
|
||||||
/* Read Message In */
|
|
||||||
^MGI0 = R (^^UMI0)
|
|
||||||
^MGI1 = R (^^UMI1)
|
|
||||||
^MGI2 = R (^^UMI2)
|
|
||||||
^MGI3 = R (^^UMI3)
|
|
||||||
^MGI4 = R (^^UMI4)
|
|
||||||
^MGI5 = R (^^UMI5)
|
|
||||||
^MGI6 = R (^^UMI6)
|
|
||||||
^MGI7 = R (^^UMI7)
|
|
||||||
^MGI8 = R (^^UMI8)
|
|
||||||
^MGI9 = R (^^UMI9)
|
|
||||||
^MGIA = R (^^UMIA)
|
|
||||||
^MGIB = R (^^UMIB)
|
|
||||||
^MGIC = R (^^UMIC)
|
|
||||||
^MGID = R (^^UMID)
|
|
||||||
^MGIE = R (^^UMIE)
|
|
||||||
^MGIF = R (^^UMIF)
|
|
||||||
|
|
||||||
/* Read Status */
|
|
||||||
^CCI0 = R (^^UCI0)
|
|
||||||
^CCI1 = R (^^UCI1)
|
|
||||||
^CCI2 = R (^^UCI2)
|
|
||||||
^CCI3 = R (^^UCI3)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Return (Buffer (1) { 0 })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ static void wilco_ec_fill_ssdt_generator(const struct device *dev)
|
|||||||
opreg.regionoffset = (uintptr_t)region_ptr;
|
opreg.regionoffset = (uintptr_t)region_ptr;
|
||||||
opreg.regionlen = ucsi_alloc_region_len;
|
opreg.regionlen = ucsi_alloc_region_len;
|
||||||
|
|
||||||
acpigen_write_scope(acpi_device_path_join(dev, "UCSI"));
|
acpigen_write_scope("\\_SB.UCSI");
|
||||||
acpigen_write_name("_CRS");
|
acpigen_write_name("_CRS");
|
||||||
acpigen_write_resourcetemplate_header();
|
acpigen_write_resourcetemplate_header();
|
||||||
acpigen_write_mem32fixed(1, (uintptr_t)region_ptr, ucsi_region_len);
|
acpigen_write_mem32fixed(1, (uintptr_t)region_ptr, ucsi_region_len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user