diff options
author | Alec Berg <alecaberg@chromium.org> | 2015-11-03 18:26:26 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-11-09 12:49:30 -0800 |
commit | 75f740fa231703b7000fdfbee8f7225214c1a7ff (patch) | |
tree | 9a7053d0bab3b07c698e0fb93633ed17d4bc240d /board | |
parent | 92a65427d3881f3d2ec64b1ab540fb5a4aa0ce93 (diff) | |
download | chrome-ec-75f740fa231703b7000fdfbee8f7225214c1a7ff.tar.gz |
glados: isl9237: add HW charge ramping
Add HW charge ramping option and enable on glados.
Modify charge_manager to enable/disable HW charge ramping
when option is defined.
Unfortunately, the isl9237 doesn't have a way to determine
what the input current limit has settled on, so the EC will
always report the max input current for that supplier.
BUG=chrome-os-partner:47335
BRANCH=none
TEST=plug in CDP, SDP, DCP, type-C, and PD charger. Make sure
we ramp to a reasonable value for the correct suppliers.
Make sure we don't ramp for type-C and PD chargers.
Change-Id: Ib541fa0be48d8f4d261c71b853b0ee72b2adbf6b
Signed-off-by: Alec Berg <alecaberg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/311301
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/glados/board.c | 34 | ||||
-rw-r--r-- | board/glados/board.h | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/board/glados/board.c b/board/glados/board.c index 299e04fbae..2681c49f94 100644 --- a/board/glados/board.c +++ b/board/glados/board.c @@ -321,6 +321,40 @@ void board_set_charge_limit(int charge_ma) CONFIG_CHARGER_INPUT_CURRENT)); } +/** + * Return whether ramping is allowed for given supplier + */ +int board_is_ramp_allowed(int supplier) +{ + /* Don't allow ramping in RO when write protected */ + if (system_get_image_copy() != SYSTEM_IMAGE_RW + && system_is_locked()) + return 0; + else + return supplier == CHARGE_SUPPLIER_BC12_DCP || + supplier == CHARGE_SUPPLIER_BC12_SDP || + supplier == CHARGE_SUPPLIER_BC12_CDP || + supplier == CHARGE_SUPPLIER_PROPRIETARY; +} + +/** + * Return the maximum allowed input current + */ +int board_get_ramp_current_limit(int supplier, int sup_curr) +{ + switch (supplier) { + case CHARGE_SUPPLIER_BC12_DCP: + return 2000; + case CHARGE_SUPPLIER_BC12_SDP: + return 1000; + case CHARGE_SUPPLIER_BC12_CDP: + case CHARGE_SUPPLIER_PROPRIETARY: + return sup_curr; + default: + return 500; + } +} + /* Enable or disable input devices, based upon chipset state and tablet mode */ static void enable_input_devices(void) { diff --git a/board/glados/board.h b/board/glados/board.h index 0d4063c2dd..ff9f817dca 100644 --- a/board/glados/board.h +++ b/board/glados/board.h @@ -20,6 +20,7 @@ #define CONFIG_BOARD_VERSION #define CONFIG_BUTTON_COUNT 2 #define CONFIG_CHARGE_MANAGER +#define CONFIG_CHARGE_RAMP_HW #define CONFIG_CHARGER #define CONFIG_CHARGER_V2 |