summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommy Chung <tommy.chung@quanta.corp-partner.google.com>2023-05-10 15:49:06 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-11 02:56:49 +0000
commitfe2610d0ef2feef5f7d80a1aa7ca540e854ee8aa (patch)
tree5a698a9fc7e9877da8c293d9c123d242fd6bee98
parentd0d67299d61a2647ea76035d85ebf4eff65b4b8a (diff)
downloadchrome-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.conf3
-rw-r--r--zephyr/program/nissa/yavilla/src/usbc.c19
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)
{
/*