diff options
author | Bruce <Bruce.Wan@quantatw.com> | 2015-12-23 14:20:23 +0800 |
---|---|---|
committer | ChromeOS bot <3su6n15k.default@developer.gserviceaccount.com> | 2015-12-27 22:50:44 +0000 |
commit | b0808565e065bca7d39da082cf2c52636074645a (patch) | |
tree | 90314a8c060f244d9837bcb1d9bb7c216ebf5d3e | |
parent | 4d9e1e342bc0fd8dd3de666c5f62d7bf62f3acca (diff) | |
download | chrome-ec-b0808565e065bca7d39da082cf2c52636074645a.tar.gz |
Ultima: Add battery FUD support
Add battery FUD support
BUG=chrome-os-partner:44053
BRANCH=firmware-strago-7287.B
TEST=make buildall
Change-Id: I8ead1672f5caf93d8699bacbcdedc489406c24a9
Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com>
Reviewed-on: https://chromium-review.googlesource.com/319722
Reviewed-by: Shawn N <shawnn@chromium.org>
Commit-Queue: Keith Tzeng <keith.tzeng@quantatw.com>
Tested-by: Keith Tzeng <keith.tzeng@quantatw.com>
-rw-r--r-- | board/ultima/battery.c | 40 | ||||
-rw-r--r-- | board/ultima/board.h | 1 |
2 files changed, 41 insertions, 0 deletions
diff --git a/board/ultima/battery.c b/board/ultima/battery.c index 4a8bf7d331..c80b3b9f0b 100644 --- a/board/ultima/battery.c +++ b/board/ultima/battery.c @@ -23,6 +23,9 @@ #define SB_FETON_DATA2 0x4000 #define BATTERY_FETOFF 0x0100 +/* First use day base */ +#define BATT_FUD_BASE 0x38 + /* * Green book support parameter * Enable this will make battery meet JEITA standard @@ -91,3 +94,40 @@ int board_cut_off_battery(void) { return cutoff(); } + +int battery_get_vendor_param(uint32_t param, uint32_t *value) +{ + return EC_ERROR_UNIMPLEMENTED; +} + +/* parameter 0 for first use day */ +int battery_set_vendor_param(uint32_t param, uint32_t value) +{ + if (param == 0) { + int rv, ymd; + rv = sb_read(BATT_FUD_BASE, &ymd); + if (rv != EC_SUCCESS) + return EC_ERROR_UNKNOWN; + if (ymd == 0) + return sb_write(BATT_FUD_BASE, value) ? + EC_ERROR_UNKNOWN : EC_SUCCESS; + + rv = sb_read(BATT_FUD_BASE | 0x03, &ymd); + if (rv != EC_SUCCESS) + return EC_ERROR_UNKNOWN; + if (ymd == 0) + return sb_write(BATT_FUD_BASE | 0x03, value) ? + EC_ERROR_UNKNOWN : EC_SUCCESS; + + rv = sb_read(BATT_FUD_BASE | 0x07, &ymd); + if (rv != EC_SUCCESS) + return EC_ERROR_UNKNOWN; + if (ymd == 0) + return sb_write(BATT_FUD_BASE | 0x07, value) ? + EC_ERROR_UNKNOWN : EC_SUCCESS; + + return EC_ERROR_UNKNOWN; + } else { + return EC_ERROR_UNIMPLEMENTED; + } +} diff --git a/board/ultima/board.h b/board/ultima/board.h index c3b59615a7..1b5e1e4570 100644 --- a/board/ultima/board.h +++ b/board/ultima/board.h @@ -50,6 +50,7 @@ #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L #define CONFIG_BATTERY_SMART +#define CONFIG_BATTERY_VENDOR_PARAM #define CONFIG_CHARGER #define CONFIG_CHARGER_V2 #define CONFIG_CHARGER_BQ24770 |