• Maximilian Luz's avatar
    power: supply: Add battery driver for Surface Aggregator Module · 167f77f7
    Maximilian Luz authored
    On newer Microsoft Surface models (specifically 7th-generation, i.e.
    Surface Pro 7, Surface Book 3, Surface Laptop 3, and Surface Laptop Go),
    battery and AC status/information is no longer handled via standard ACPI
    devices, but instead directly via the Surface System Aggregator Module
    (SSAM), i.e. the embedded controller on those devices.
    
    While on previous generation models, battery status is also handled via
    SSAM, an ACPI shim was present to translate the standard ACPI battery
    interface to SSAM requests. The SSAM interface itself, which is modeled
    closely after the ACPI interface, has not changed.
    
    This commit introduces a new SSAM client device driver to support
    battery status/information via the aforementioned interface on said
    Surface models. It is in parts based on the standard ACPI battery
    driver.
    Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
    Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
    167f77f7
surface_battery.c 21.5 KB