summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2014-02-07 10:45:05 -0800
committerRandall Spangler <rspangler@chromium.org>2014-02-08 00:22:09 +0000
commit99d2981ba5ac86558b96ae83ab8bd1b8d6338120 (patch)
treece5131f8eb8909c31baec66067fab108c584a37a /include
parent369ae5b0608df27a16517e796750b9a8b599b8f9 (diff)
downloadchrome-ec-99d2981ba5ac86558b96ae83ab8bd1b8d6338120.tar.gz
Support DPTF charger current limiting
This enables the AP to limit charging current via ACPI. BUG=chrome-os-partner:23971 BRANCH=rambi TEST=manual drain battery down to <90%, then plug into AC (charger commands at EC console, iotools at root shell) iotools io_write8 0x66 0x81 iotools io_write8 0x62 0x08 iotools io_write8 0x62 3 charger -> dptf limit 192, I_batt=192 charger dptf 320 charger -> dptf limit 320, I_batt=320 iotools io_write8 0x66 0x80 iotools io_write8 0x62 0x08 iotools io_read8 0x62 -> 0x05 iotools io_write8 0x66 0x81 iotools io_write8 0x62 0x08 iotools io_write8 0x62 0xff charger -> dptf disabled, I_batt=(something > 192) iotools io_write8 0x66 0x80 iotools io_write8 0x62 0x08 iotools io_read8 0x62 -> 0xff Orig-Change-Id: Iace2ebbbc018143c0154310d7acd02d16a6b7339 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185411 Reviewed-by: Bill Richardson <wfrichar@chromium.org> (cherry picked from commit 5c808ee56c44be4c665de6a85f5feb5cd5753f9d) Change-Id: I67d5449b2135aedba68f2c189dbef67720124004 Reviewed-on: https://chromium-review.googlesource.com/185492 Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org> Tested-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/dptf.h28
-rw-r--r--include/ec_commands.h8
2 files changed, 31 insertions, 5 deletions
diff --git a/include/dptf.h b/include/dptf.h
index f611acb361..6797806e18 100644
--- a/include/dptf.h
+++ b/include/dptf.h
@@ -8,26 +8,44 @@
#ifndef __CROS_EC_DPTF_H
#define __CROS_EC_DPTF_H
-/* 0-100% sets fixed duty cycle, out of range means let the EC drive */
+/**
+ * Set fan duty target.
+ *
+ * 0-100% sets fixed duty cycle, out of range means let the EC drive.
+ */
void dptf_set_fan_duty_target(int pct);
-/* 0-100% if in duty mode. -1 if not */
+/**
+ * Return 0-100% if in duty mode. -1 if not.
+ */
int dptf_get_fan_duty_target(void);
/* Thermal thresholds may be set for each temp sensor. */
#define DPTF_THRESHOLDS_PER_SENSOR 2
#define DPTF_THRESHOLD_HYSTERESIS 2
-/* Set/enable the thresholds */
+/**
+ * Set/enable the thresholds.
+ */
void dptf_set_temp_threshold(int sensor_id, /* zero-based sensor index */
int temp, /* in degrees K */
int idx, /* which threshold (0 or 1) */
int enable); /* true = on, false = off */
-/*
+/**
* Return the ID of a temp sensor that has crossed its threshold since the last
- time we asked. -1 means none.
+ * time we asked. -1 means none.
*/
int dptf_query_next_sensor_event(void);
+/**
+ * Set charging current limit, in mA. -1 means no limit.
+ */
+void dptf_set_charging_current_limit(int ma);
+
+/**
+ * Get charging current limit, in mA, or -1 if not DPTF-limiting.
+ */
+int dptf_get_charging_current_limit(void);
+
#endif /* __CROS_EC_DPTF_H */
diff --git a/include/ec_commands.h b/include/ec_commands.h
index e4652bed89..3d557eb6d4 100644
--- a/include/ec_commands.h
+++ b/include/ec_commands.h
@@ -1971,6 +1971,14 @@ struct ec_params_reboot_ec {
* write 0x1 to [0x07] -- disable threshold 1
*/
+/* DPTF battery charging current limit */
+#define EC_ACPI_MEM_CHARGING_LIMIT 0x08
+
+/* Charging limit is specified in 64 mA steps */
+#define EC_ACPI_MEM_CHARGING_LIMIT_STEP_MA 64
+/* Value to disable DPTF battery charging limit */
+#define EC_ACPI_MEM_CHARGING_LIMIT_DISABLED 0xff
+
/* Current version of ACPI memory address space */
#define EC_ACPI_MEM_VERSION_CURRENT 1