diff options
author | Devin Lu <Devin.Lu@quantatw.com> | 2023-03-29 17:08:26 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-10 05:47:26 +0000 |
commit | 0fbfb5b1f045ba68eb6c15b553403325dff69de1 (patch) | |
tree | 969effc87a508c665f680ef6ad3fbe9587267672 | |
parent | ca51664045529ad6525c900e4f28ffcb3710e4db (diff) | |
download | chrome-ec-0fbfb5b1f045ba68eb6c15b553403325dff69de1.tar.gz |
yaviks: Limit C1 current with low power charger
Yaviks C1 port is OCPC (One Charger IC Per Type-C) architecture, The
charging current is controlled by increasing Vsys. However, the
charger SM5803 is not limit current while Vsys increasing, we can see
the voltage drops to ~3.48V to cause C1 port brownout with low
power charger (5V). To avoid C1 port brownout at low power charger
connected. Limit charge current to 2A.
BUG=b:261102000
TEST=Left battery ~50% with sink device. Toggle 10 times power role
swap. Yaviks c2c charging is not brownout on C1 port.
Change-Id: I361eda581d3611e176c75804131b3a17343d85c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4379827
Tested-by: Devin Lu <devin.lu@quantatw.com>
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Commit-Queue: Devin Lu <devin.lu@quantatw.com>
-rw-r--r-- | zephyr/program/nissa/yaviks/project.conf | 3 | ||||
-rw-r--r-- | zephyr/program/nissa/yaviks/src/usbc.c | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/zephyr/program/nissa/yaviks/project.conf b/zephyr/program/nissa/yaviks/project.conf index 2e52005cad..06c63967c6 100644 --- a/zephyr/program/nissa/yaviks/project.conf +++ b/zephyr/program/nissa/yaviks/project.conf @@ -45,3 +45,6 @@ CONFIG_PLATFORM_EC_USB_PORT_POWER_SMART=y CONFIG_PLATFORM_EC_USB_PORT_POWER_SMART_CDP_SDP_ONLY=y CONFIG_PLATFORM_EC_USB_PORT_POWER_SMART_DEFAULT_CDP=y CONFIG_PLATFORM_EC_USB_PORT_POWER_SMART_INVERTED=y + +# Charger +CONFIG_PLATFORM_EC_CHARGER_INPUT_CURRENT_DERATE_PCT=0 diff --git a/zephyr/program/nissa/yaviks/src/usbc.c b/zephyr/program/nissa/yaviks/src/usbc.c index c9950ae73b..a4cb140059 100644 --- a/zephyr/program/nissa/yaviks/src/usbc.c +++ b/zephyr/program/nissa/yaviks/src/usbc.c @@ -235,6 +235,25 @@ __override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) } } +__override void board_set_charge_limit(int port, int supplier, int charge_ma, + int max_ma, int charge_mv) +{ + /* + * b:213937755: Yaviks C1 port is OCPC (One Charger IC Per Type-C) + * architecture, The charging current is controlled by increasing Vsys. + * However, the charger SM5803 is not limit current while Vsys + * increasing, we can see the current overshoot to ~3.6A to cause + * C1 port brownout with low power charger (5V). To avoid C1 port + * brownout at low power charger connected. Limit charge current to 2A. + */ + if (charge_mv <= 5000 && port == 1) + charge_ma = MIN(charge_ma, 2000); + else + charge_ma = charge_ma * 96 / 100; + + charge_set_input_current_limit(charge_ma, charge_mv); +} + void board_reset_pd_mcu(void) { /* |