Provide battery and peci info through acpi pmc interface

This commit is contained in:
Jeremy Soller
2019-11-18 20:34:02 -07:00
parent 788fa5ee52
commit d928ef8a9a
7 changed files with 168 additions and 80 deletions

View File

@ -1,18 +1,43 @@
#include <board/acpi.h>
#include <board/battery.h>
#include <board/peci.h>
#include <common/debug.h>
uint8_t acpi_read(uint8_t addr) {
uint8_t data = 0;
DEBUG("acpi_read %02X = %02X\n", addr, data);
#define ACPI_8(K, V) \
case (K): \
data = (uint8_t)(V); \
break
#define ACPI_16(K, V) \
ACPI_8(K, V); \
ACPI_8((K) + 1, (V) >> 8)
#define ACPI_32(K, V) \
ACPI_16(K, V); \
ACPI_16((K) + 2, (V) >> 16)
switch (addr) {
//TODO
ACPI_16(0x00, battery_temp);
ACPI_16(0x02, battery_voltage);
ACPI_16(0x04, battery_current);
ACPI_16(0x06, battery_charge);
ACPI_16(0x10, peci_offset);
ACPI_16(0x12, peci_temp);
ACPI_8 (0x14, peci_duty);
}
DEBUG("acpi_read %02X = %02X\n", addr, data);
return data;
}
void acpi_write(uint8_t addr, uint8_t data) {
DEBUG("acpi_write %02X = %02X\n", addr, data);
switch (addr) {
//TODO
//TODO
}
}