diff options
author | Randall Spangler <rspangler@chromium.org> | 2014-02-07 10:45:05 -0800 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2014-02-08 00:22:09 +0000 |
commit | 99d2981ba5ac86558b96ae83ab8bd1b8d6338120 (patch) | |
tree | ce5131f8eb8909c31baec66067fab108c584a37a /include | |
parent | 369ae5b0608df27a16517e796750b9a8b599b8f9 (diff) | |
download | chrome-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.h | 28 | ||||
-rw-r--r-- | include/ec_commands.h | 8 |
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 |