ec/system76/ec: Clean up and document ACPI EC registers

Change-Id: I8d60b1826fd5402978fb7092fe807da0c4dd5179
This commit is contained in:
Jeremy Soller
2020-08-28 09:46:54 -06:00
committed by Jeremy Soller
parent fbf0bd5b7e
commit fa5896209f
2 changed files with 72 additions and 195 deletions

View File

@ -30,29 +30,29 @@ Device (BAT0)
Name (PBIF, Package (0x0D) Name (PBIF, Package (0x0D)
{ {
One, One, // 0 - Power Unit
0xFFFFFFFF, 0xFFFFFFFF, // 1 - Design Capacity
0xFFFFFFFF, 0xFFFFFFFF, // 2 - Last Full Charge Capacity
One, One, // 3 - Battery Technology
0x39D0, 0xFFFFFFFF, // 4 - Design Voltage
Zero, Zero, // 5 - Design Capacity of Warning
Zero, Zero, // 6 - Design Capacity of Low
0x40, 0x40, // 7 - Battery Capacity Granularity 1
0x40, 0x40, // 8 - Battery Capacity Granularity 2
"BAT", " ", // 9 - Model Number
"0001", " ", // 10 - Serial Number
"LION", " ", // 11 - Battery Type
"Notebook" " " // 12 - OEM Information
}) })
Method (IVBI, 0, NotSerialized) Method (IVBI, 0, NotSerialized)
{ {
PBIF [One] = 0xFFFFFFFF PBIF [1] = 0xFFFFFFFF
PBIF [0x02] = 0xFFFFFFFF PBIF [2] = 0xFFFFFFFF
PBIF [0x04] = 0xFFFFFFFF PBIF [4] = 0xFFFFFFFF
PBIF [0x09] = " " PBIF [9] = " "
PBIF [0x0A] = " " PBIF [10] = " "
PBIF [0x0B] = " " PBIF [11] = " "
PBIF [0x0C] = " " PBIF [12] = " "
BFCC = Zero BFCC = Zero
} }
@ -61,20 +61,20 @@ Device (BAT0)
If (^^PCI0.LPCB.EC0.BAT0) If (^^PCI0.LPCB.EC0.BAT0)
{ {
Local0 = (^^PCI0.LPCB.EC0.BDC0 & 0xFFFF) Local0 = (^^PCI0.LPCB.EC0.BDC0 & 0xFFFF)
PBIF [One] = Local0 PBIF [1] = Local0
Local0 = (^^PCI0.LPCB.EC0.BFC0 & 0xFFFF) Local0 = (^^PCI0.LPCB.EC0.BFC0 & 0xFFFF)
PBIF [0x02] = Local0 PBIF [2] = Local0
BFCC = Local0 BFCC = Local0
Local0 = (^^PCI0.LPCB.EC0.BDV0 & 0xFFFF) Local0 = (^^PCI0.LPCB.EC0.BDV0 & 0xFFFF)
PBIF [0x04] = Local0 PBIF [4] = Local0
Local0 = (^^PCI0.LPCB.EC0.BCW0 & 0xFFFF) Local0 = (^^PCI0.LPCB.EC0.BCW0 & 0xFFFF)
PBIF [0x05] = Local0 PBIF [5] = Local0
Local0 = (^^PCI0.LPCB.EC0.BCL0 & 0xFFFF) Local0 = (^^PCI0.LPCB.EC0.BCL0 & 0xFFFF)
PBIF [0x06] = Local0 PBIF [6] = Local0
PBIF [0x09] = "BAT" PBIF [9] = "BAT"
PBIF [0x0A] = "0001" PBIF [10] = "0001"
PBIF [0x0B] = "LION" PBIF [11] = "LION"
PBIF [0x0C] = "Notebook" PBIF [12] = "Notebook"
} }
Else Else
{ {
@ -98,17 +98,17 @@ Device (BAT0)
Name (PBST, Package (0x04) Name (PBST, Package (0x04)
{ {
Zero, Zero, // 0 - Battery state
0xFFFFFFFF, 0xFFFFFFFF, // 1 - Battery present rate
0xFFFFFFFF, 0xFFFFFFFF, // 2 - Battery remaining capacity
0x3D90 0xFFFFFFFF // 3 - Battery present voltage
}) })
Method (IVBS, 0, NotSerialized) Method (IVBS, 0, NotSerialized)
{ {
PBST [Zero] = Zero PBST [0] = Zero
PBST [One] = 0xFFFFFFFF PBST [1] = 0xFFFFFFFF
PBST [0x02] = 0xFFFFFFFF PBST [2] = 0xFFFFFFFF
PBST [0x03] = 0x2710 PBST [3] = 0xFFFFFFFF
} }
Method (UPBS, 0, NotSerialized) Method (UPBS, 0, NotSerialized)
@ -139,10 +139,10 @@ Device (BAT0)
Local2 = (^^PCI0.LPCB.EC0.BRC0 & 0xFFFF) Local2 = (^^PCI0.LPCB.EC0.BRC0 & 0xFFFF)
Local3 = (^^PCI0.LPCB.EC0.BPV0 & 0xFFFF) Local3 = (^^PCI0.LPCB.EC0.BPV0 & 0xFFFF)
PBST [Zero] = Local0 PBST [0] = Local0
PBST [One] = Local1 PBST [1] = Local1
PBST [0x02] = Local2 PBST [2] = Local2
PBST [0x03] = Local3 PBST [3] = Local3
If ((BFCC != ^^PCI0.LPCB.EC0.BFC0)) If ((BFCC != ^^PCI0.LPCB.EC0.BFC0))
{ {
Notify (BAT0, 0x81) // Information Change Notify (BAT0, 0x81) // Information Change

View File

@ -3,168 +3,45 @@
OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
Field (ERAM, ByteAcc, Lock, Preserve) Field (ERAM, ByteAcc, Lock, Preserve)
{ {
NMSG, 8,
SLED, 4,
Offset (0x02),
MODE, 1,
FAN0, 1,
TME0, 1,
TME1, 1,
FAN1, 1,
, 2,
Offset (0x03), Offset (0x03),
LSTE, 1, LSTE, 1, // Lid is open
LSW0, 1, , 1,
LWKE, 1, LWKE, 1, // Lid wake
WAKF, 1, , 5,
, 2,
PWKE, 1,
MWKE, 1,
AC0, 8,
PSV, 8,
CRT, 8,
TMP, 8,
AC1, 8,
BBST, 8,
Offset (0x0B),
Offset (0x0C),
Offset (0x0D),
Offset (0x0E),
SLPT, 8,
SWEJ, 1,
SWCH, 1,
Offset (0x10), Offset (0x10),
ADP, 1, ADP, 1, // AC adapter connected
AFLT, 1, , 1,
BAT0, 1, BAT0, 1, // Battery connected
BAT1, 1, , 5,
, 3, WFNO, 8, // Wake cause (not implemented)
PWOF, 1, Offset (0x16),
WFNO, 8, BDC0, 32, // Battery design capacity
BPU0, 32, BFC0, 32, // Battery full capacity
BDC0, 32, Offset (0x22),
BFC0, 32, BDV0, 32, // Battery design voltage
BTC0, 32, BST0, 32, // Battery status
BDV0, 32, BPR0, 32, // Battery current
BST0, 32, BRC0, 32, // Battery remaining capacity
BPR0, 32, BPV0, 32, // Battery voltage
BRC0, 32, Offset (0x3A),
BPV0, 32, BCW0, 32,
BTP0, 16, BCL0, 32,
BRS0, 16,
BCW0, 32,
BCL0, 32,
BCG0, 32,
BG20, 32,
BMO0, 64,
BIF0, 64,
BSN0, 32,
BTY0, 64,
Offset (0x67),
Offset (0x68), Offset (0x68),
ECOS, 8, ECOS, 8, // Detected OS, 0 = no ACPI, 1 = ACPI but no driver, 2 = ACPI with driver
LNXD, 8,
ECPS, 8,
Offset (0x6C),
BTMP, 16,
EVTN, 8,
Offset (0x72),
PRCL, 8,
PRC0, 8,
PRC1, 8,
PRCM, 8,
PRIN, 8,
PSTE, 8,
PCAD, 8,
PEWL, 8,
PWRL, 8,
PECD, 8,
PEHI, 8,
PECI, 8,
PEPL, 8,
PEPM, 8,
PWFC, 8,
PECC, 8,
PDT0, 8,
PDT1, 8,
PDT2, 8,
PDT3, 8,
PRFC, 8,
PRS0, 8,
PRS1, 8,
PRS2, 8,
PRS3, 8,
PRS4, 8,
PRCS, 8,
PEC0, 8,
PEC1, 8,
PEC2, 8,
PEC3, 8,
CMDR, 8,
CVRT, 8,
GTVR, 8,
FANT, 8,
SKNT, 8,
AMBT, 8,
MCRT, 8,
DIM0, 8,
DIM1, 8,
PMAX, 8,
PPDT, 8,
PECH, 8,
PMDT, 8,
TSD0, 8,
TSD1, 8,
TSD2, 8,
TSD3, 8,
CPUP, 16,
MCHP, 16,
SYSP, 16,
CPAP, 16,
MCAP, 16,
SYAP, 16,
CFSP, 16,
CPUE, 16,
Offset (0xC6),
Offset (0xC7), Offset (0xC7),
VGAT, 8, VGAT, 8, // GPU temperature (not implemented)
OEM1, 8, OEM1, 8,
OEM2, 8, OEM2, 8,
OEM3, 16, OEM3, 16,
OEM4, 8, OEM4, 8, // Extra SCI data
Offset (0xCE), Offset (0xCE),
DUT1, 8, DUT1, 8, // Fan 1 duty (not implemented)
DUT2, 8, DUT2, 8, // Fan 2 duty (not implemented)
RPM1, 16, RPM1, 16, // Fan 1 RPM (not implemented)
RPM2, 16, RPM2, 16, // Fan 2 RPM (not implemented)
RPM4, 16, Offset (0xD9),
Offset (0xD7), AIRP, 8, // Airplane mode LED
DTHL, 8, WINF, 8, // Enable ACPI brightness controls
DTBP, 8,
AIRP, 8,
WINF, 8,
RINF, 8,
Offset (0xDD),
INF2, 8,
MUTE, 1,
Offset (0xE0),
RPM3, 16,
ECKS, 8,
Offset (0xE4),
, 4,
XTUF, 1,
EP12, 1,
Offset (0xE5),
INF3, 8,
Offset (0xE7),
GFOF, 8,
Offset (0xE9),
KPCR, 1,
Offset (0xEA),
Offset (0xF0),
PL1T, 16,
PL2T, 16,
TAUT, 8,
Offset (0xF8), Offset (0xF8),
FCMD, 8, FCMD, 8,
FDAT, 8, FDAT, 8,