summaryrefslogtreecommitdiff
path: root/common/acpi.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/acpi.c')
-rw-r--r--common/acpi.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/common/acpi.c b/common/acpi.c
index 69cf3bc837..eed20fdbe0 100644
--- a/common/acpi.c
+++ b/common/acpi.c
@@ -76,6 +76,15 @@ int acpi_ap_to_ec(int is_cmd, uint8_t value, uint8_t *resultptr)
result = dptf_query_next_sensor_event();
break;
#endif
+#ifdef CONFIG_CHARGER
+ case EC_ACPI_MEM_CHARGING_LIMIT:
+ result = dptf_get_charging_current_limit();
+ if (result >= 0)
+ result /= EC_ACPI_MEM_CHARGING_LIMIT_STEP_MA;
+ else
+ result = EC_ACPI_MEM_CHARGING_LIMIT_DISABLED;
+ break;
+#endif
default:
CPRINTF("[%T ACPI read 0x%02x (ignored)]\n", acpi_addr);
break;
@@ -124,6 +133,16 @@ int acpi_ap_to_ec(int is_cmd, uint8_t value, uint8_t *resultptr)
break;
}
#endif
+#ifdef CONFIG_CHARGER
+ case EC_ACPI_MEM_CHARGING_LIMIT:
+ if (data == EC_ACPI_MEM_CHARGING_LIMIT_DISABLED) {
+ dptf_set_charging_current_limit(-1);
+ } else {
+ data *= EC_ACPI_MEM_CHARGING_LIMIT_STEP_MA;
+ dptf_set_charging_current_limit(data);
+ }
+ break;
+#endif
default:
CPRINTF("[%T ACPI write 0x%02x = 0x%02x (ignored)]\n",
acpi_addr, data);