summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Lu <Devin.Lu@quantatw.com>2023-03-29 17:08:26 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-10 05:47:26 +0000
commit0fbfb5b1f045ba68eb6c15b553403325dff69de1 (patch)
tree969effc87a508c665f680ef6ad3fbe9587267672
parentca51664045529ad6525c900e4f28ffcb3710e4db (diff)
downloadchrome-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.conf3
-rw-r--r--zephyr/program/nissa/yaviks/src/usbc.c19
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)
{
/*