diff options
author | Yilun Lin <yllin@google.com> | 2019-05-27 17:22:41 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-06-12 09:35:48 +0000 |
commit | 3f7fa9b08875f332d2d80f4fa9096ad57491bba5 (patch) | |
tree | 1334b152bfbe0b64e72f6d3ea4f1dd4808223b1d /driver | |
parent | 97032bc99dd5f275e600364a1c1cce5392a13c8f (diff) | |
download | chrome-ec-3f7fa9b08875f332d2d80f4fa9096ad57491bba5.tar.gz |
charger/rt946x: Support software ramping API.
Add usb_charger_ramp_allowed() and usb_Charger_ramp_max() API.
Also, targets DCP ramping voltage to 2000mA(charger support
maximum is 3500mA), a conservative value to prevent a bad charger.
TEST=With CL:1610385, plug a DCP 5V/2.1A charger and see it ramps
and drains up to 1.75A, rather than original 1.34A.
BUG=b:131284131
BRANCH=None
Change-Id: I1e87badbca8991862186fc37227d203cfb54bce3
Signed-off-by: Yilun Lin <yllin@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1633930
Commit-Queue: Yilun Lin <yllin@chromium.org>
Tested-by: Yilun Lin <yllin@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/charger/rt946x.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/driver/charger/rt946x.c b/driver/charger/rt946x.c index 4573943197..3d5722ae09 100644 --- a/driver/charger/rt946x.c +++ b/driver/charger/rt946x.c @@ -913,8 +913,11 @@ static int rt946x_get_bc12_device_type(void) static int rt946x_get_bc12_ilim(int charge_supplier) { switch (charge_supplier) { - case CHARGE_SUPPLIER_BC12_CDP: case CHARGE_SUPPLIER_BC12_DCP: + if (IS_ENABLED(CONFIG_CHARGE_RAMP_SW)) + /* A conservative value to prevent a bad charger. */ + return 2000; + case CHARGE_SUPPLIER_BC12_CDP: return 1500; case CHARGE_SUPPLIER_BC12_SDP: default: @@ -988,6 +991,16 @@ void usb_charger_task(void *u) task_wait_event(-1); } } + +int usb_charger_ramp_allowed(int supplier) +{ + return supplier == CHARGE_SUPPLIER_BC12_DCP; +} + +int usb_charger_ramp_max(int supplier, int sup_curr) +{ + return rt946x_get_bc12_ilim(supplier); +} #endif /* HAS_TASK_USB_CHG */ /* Non-standard interface functions */ |