From fa5896209feb63d9d843b068e85014288f353dd2 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 28 Aug 2020 09:46:54 -0600 Subject: [PATCH] ec/system76/ec: Clean up and document ACPI EC registers Change-Id: I8d60b1826fd5402978fb7092fe807da0c4dd5179 --- src/ec/system76/ec/acpi/battery.asl | 82 ++++++------ src/ec/system76/ec/acpi/ec_ram.asl | 185 +++++----------------------- 2 files changed, 72 insertions(+), 195 deletions(-) diff --git a/src/ec/system76/ec/acpi/battery.asl b/src/ec/system76/ec/acpi/battery.asl index bc239dd9c0..50aaf9ef9e 100644 --- a/src/ec/system76/ec/acpi/battery.asl +++ b/src/ec/system76/ec/acpi/battery.asl @@ -30,29 +30,29 @@ Device (BAT0) Name (PBIF, Package (0x0D) { - One, - 0xFFFFFFFF, - 0xFFFFFFFF, - One, - 0x39D0, - Zero, - Zero, - 0x40, - 0x40, - "BAT", - "0001", - "LION", - "Notebook" + One, // 0 - Power Unit + 0xFFFFFFFF, // 1 - Design Capacity + 0xFFFFFFFF, // 2 - Last Full Charge Capacity + One, // 3 - Battery Technology + 0xFFFFFFFF, // 4 - Design Voltage + Zero, // 5 - Design Capacity of Warning + Zero, // 6 - Design Capacity of Low + 0x40, // 7 - Battery Capacity Granularity 1 + 0x40, // 8 - Battery Capacity Granularity 2 + " ", // 9 - Model Number + " ", // 10 - Serial Number + " ", // 11 - Battery Type + " " // 12 - OEM Information }) Method (IVBI, 0, NotSerialized) { - PBIF [One] = 0xFFFFFFFF - PBIF [0x02] = 0xFFFFFFFF - PBIF [0x04] = 0xFFFFFFFF - PBIF [0x09] = " " - PBIF [0x0A] = " " - PBIF [0x0B] = " " - PBIF [0x0C] = " " + PBIF [1] = 0xFFFFFFFF + PBIF [2] = 0xFFFFFFFF + PBIF [4] = 0xFFFFFFFF + PBIF [9] = " " + PBIF [10] = " " + PBIF [11] = " " + PBIF [12] = " " BFCC = Zero } @@ -61,20 +61,20 @@ Device (BAT0) If (^^PCI0.LPCB.EC0.BAT0) { Local0 = (^^PCI0.LPCB.EC0.BDC0 & 0xFFFF) - PBIF [One] = Local0 + PBIF [1] = Local0 Local0 = (^^PCI0.LPCB.EC0.BFC0 & 0xFFFF) - PBIF [0x02] = Local0 + PBIF [2] = Local0 BFCC = Local0 Local0 = (^^PCI0.LPCB.EC0.BDV0 & 0xFFFF) - PBIF [0x04] = Local0 + PBIF [4] = Local0 Local0 = (^^PCI0.LPCB.EC0.BCW0 & 0xFFFF) - PBIF [0x05] = Local0 + PBIF [5] = Local0 Local0 = (^^PCI0.LPCB.EC0.BCL0 & 0xFFFF) - PBIF [0x06] = Local0 - PBIF [0x09] = "BAT" - PBIF [0x0A] = "0001" - PBIF [0x0B] = "LION" - PBIF [0x0C] = "Notebook" + PBIF [6] = Local0 + PBIF [9] = "BAT" + PBIF [10] = "0001" + PBIF [11] = "LION" + PBIF [12] = "Notebook" } Else { @@ -98,17 +98,17 @@ Device (BAT0) Name (PBST, Package (0x04) { - Zero, - 0xFFFFFFFF, - 0xFFFFFFFF, - 0x3D90 + Zero, // 0 - Battery state + 0xFFFFFFFF, // 1 - Battery present rate + 0xFFFFFFFF, // 2 - Battery remaining capacity + 0xFFFFFFFF // 3 - Battery present voltage }) Method (IVBS, 0, NotSerialized) { - PBST [Zero] = Zero - PBST [One] = 0xFFFFFFFF - PBST [0x02] = 0xFFFFFFFF - PBST [0x03] = 0x2710 + PBST [0] = Zero + PBST [1] = 0xFFFFFFFF + PBST [2] = 0xFFFFFFFF + PBST [3] = 0xFFFFFFFF } Method (UPBS, 0, NotSerialized) @@ -139,10 +139,10 @@ Device (BAT0) Local2 = (^^PCI0.LPCB.EC0.BRC0 & 0xFFFF) Local3 = (^^PCI0.LPCB.EC0.BPV0 & 0xFFFF) - PBST [Zero] = Local0 - PBST [One] = Local1 - PBST [0x02] = Local2 - PBST [0x03] = Local3 + PBST [0] = Local0 + PBST [1] = Local1 + PBST [2] = Local2 + PBST [3] = Local3 If ((BFCC != ^^PCI0.LPCB.EC0.BFC0)) { Notify (BAT0, 0x81) // Information Change diff --git a/src/ec/system76/ec/acpi/ec_ram.asl b/src/ec/system76/ec/acpi/ec_ram.asl index d5f97edbd7..6f41a8d1c7 100644 --- a/src/ec/system76/ec/acpi/ec_ram.asl +++ b/src/ec/system76/ec/acpi/ec_ram.asl @@ -3,168 +3,45 @@ OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) Field (ERAM, ByteAcc, Lock, Preserve) { - NMSG, 8, - SLED, 4, - Offset (0x02), - MODE, 1, - FAN0, 1, - TME0, 1, - TME1, 1, - FAN1, 1, - , 2, Offset (0x03), - LSTE, 1, - LSW0, 1, - LWKE, 1, - WAKF, 1, - , 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, + LSTE, 1, // Lid is open + , 1, + LWKE, 1, // Lid wake + , 5, Offset (0x10), - ADP, 1, - AFLT, 1, - BAT0, 1, - BAT1, 1, - , 3, - PWOF, 1, - WFNO, 8, - BPU0, 32, - BDC0, 32, - BFC0, 32, - BTC0, 32, - BDV0, 32, - BST0, 32, - BPR0, 32, - BRC0, 32, - BPV0, 32, - BTP0, 16, - BRS0, 16, - BCW0, 32, - BCL0, 32, - BCG0, 32, - BG20, 32, - BMO0, 64, - BIF0, 64, - BSN0, 32, - BTY0, 64, - Offset (0x67), + ADP, 1, // AC adapter connected + , 1, + BAT0, 1, // Battery connected + , 5, + WFNO, 8, // Wake cause (not implemented) + Offset (0x16), + BDC0, 32, // Battery design capacity + BFC0, 32, // Battery full capacity + Offset (0x22), + BDV0, 32, // Battery design voltage + BST0, 32, // Battery status + BPR0, 32, // Battery current + BRC0, 32, // Battery remaining capacity + BPV0, 32, // Battery voltage + Offset (0x3A), + BCW0, 32, + BCL0, 32, Offset (0x68), - ECOS, 8, - 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), + ECOS, 8, // Detected OS, 0 = no ACPI, 1 = ACPI but no driver, 2 = ACPI with driver Offset (0xC7), - VGAT, 8, + VGAT, 8, // GPU temperature (not implemented) OEM1, 8, OEM2, 8, OEM3, 16, - OEM4, 8, + OEM4, 8, // Extra SCI data Offset (0xCE), - DUT1, 8, - DUT2, 8, - RPM1, 16, - RPM2, 16, - RPM4, 16, - Offset (0xD7), - DTHL, 8, - 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, + DUT1, 8, // Fan 1 duty (not implemented) + DUT2, 8, // Fan 2 duty (not implemented) + RPM1, 16, // Fan 1 RPM (not implemented) + RPM2, 16, // Fan 2 RPM (not implemented) + Offset (0xD9), + AIRP, 8, // Airplane mode LED + WINF, 8, // Enable ACPI brightness controls Offset (0xF8), FCMD, 8, FDAT, 8,