diff options
author | Diana Z <dzigterman@chromium.org> | 2020-08-07 10:57:28 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-08-11 20:24:38 +0000 |
commit | d3ba2c4d0b2eeac179322f1ffd477130029e8e83 (patch) | |
tree | 3c9df4273a70a52bd69a72230535b38b781b77db /driver/charger/sm5803.h | |
parent | c1231644fa6bfa46ff9867419d40a5d01dd00c14 (diff) | |
download | chrome-ec-d3ba2c4d0b2eeac179322f1ffd477130029e8e83.tar.gz |
SM5803: Flow 1 register updates
This commit adds:
- bit names updated to the most recent SM5803A datasheet
- centralized control of FLOW1 updates after init in one function
- verification of charger register 0x5C contents before enabling
charging
- correction of init charger disable behavior
BRANCH=None
BUG=None
TEST=on drawcia, observe that sink mode is enabled when charger is
plugged in to MB, OTG bits are enabled with dongles plugged in
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: I4e841e8288f85eeb8b4ee6afe953ea0f8df61fa0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2343604
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'driver/charger/sm5803.h')
-rw-r--r-- | driver/charger/sm5803.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/driver/charger/sm5803.h b/driver/charger/sm5803.h index c0a3ec70e5..9fc04de0f4 100644 --- a/driver/charger/sm5803.h +++ b/driver/charger/sm5803.h @@ -151,11 +151,18 @@ enum sm5803_gpio0_modes { /* Charger registers (address 0x32) */ #define SM5803_REG_FLOW1 0x1C -#define SM5803_FLOW1_CHG_EN BIT(0) -#define SM5803_FLOW1_VBUSIN_DISCHG_EN BIT(1) +#define SM5803_FLOW1_MODE GENMASK(1, 0) #define SM5803_FLOW1_DIRECTCHG_SRC_EN BIT(2) +#define SM5803_FLOW1_LINEAR_CHARGE_EN BIT(3) #define SM5803_FLOW1_USB_SUSP BIT(7) +enum sm5803_charger_modes { + CHARGER_MODE_DISABLED, + CHARGER_MODE_SINK, + CHARGER_MODE_RESERVED, + CHARGER_MODE_SOURCE, +}; + #define SM5803_REG_FLOW2 0x1D #define SM5803_FLOW2_AUTO_TRKL_EN BIT(0) #define SM5803_FLOW2_AUTO_PRECHG_EN BIT(1) |