diff options
author | Tommy Chung <tommy.chung@quanta.corp-partner.google.com> | 2023-05-10 15:49:06 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-11 02:56:49 +0000 |
commit | fe2610d0ef2feef5f7d80a1aa7ca540e854ee8aa (patch) | |
tree | 5a698a9fc7e9877da8c293d9c123d242fd6bee98 | |
parent | d0d67299d61a2647ea76035d85ebf4eff65b4b8a (diff) | |
download | chrome-ec-fe2610d0ef2feef5f7d80a1aa7ca540e854ee8aa.tar.gz |
yavilla: Limit C1 current with low power charger
This follows CL:4379827 to solve C1 OCPC voltage drop with
low power charger (5V).
BUG=none
TEST=make sure that yavilla c2c charging will not brownout on C1
port.
Change-Id: I603bec0c8bcc3da7e934b8d88d791e2245ef7793
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4520738
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Tested-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com>
Reviewed-by: Devin Lu <devin.lu@quantatw.com>
Commit-Queue: Tommy Chung <tommy.chung@quanta.corp-partner.google.com>
-rw-r--r-- | zephyr/program/nissa/yavilla/project.conf | 3 | ||||
-rw-r--r-- | zephyr/program/nissa/yavilla/src/usbc.c | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/zephyr/program/nissa/yavilla/project.conf b/zephyr/program/nissa/yavilla/project.conf index 4c89a45147..30818c4419 100644 --- a/zephyr/program/nissa/yavilla/project.conf +++ b/zephyr/program/nissa/yavilla/project.conf @@ -41,3 +41,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/yavilla/src/usbc.c b/zephyr/program/nissa/yavilla/src/usbc.c index c9950ae73b..e3b46d6daa 100644 --- a/zephyr/program/nissa/yavilla/src/usbc.c +++ b/zephyr/program/nissa/yavilla/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: Yavilla 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) { /* |