summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnwc_yeh <johnwc_yeh@compal.corp-partner.google.com>2022-11-15 15:59:47 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-16 06:57:45 +0000
commit1d3a7723f310fd32a64e2ba59f3ab41d7f6c9042 (patch)
tree40555a08fe4a636414ad6154d1753c7276ac6167
parentced7b670199fbab446eb4b5e27afb47203e20d51 (diff)
downloadchrome-ec-1d3a7723f310fd32a64e2ba59f3ab41d7f6c9042.tar.gz
Xivu: modify target current setting
When device at USB-C port happen short, the RAA489000 charger IC have current limit function with OTG UVP function. The target current needs to be adjusted, and set 0x92 to 3.3A (0x68) for better protection. BUG=b:259013588 BRANCH=none TEST=zmake build xivu Signed-off-by: johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com> Change-Id: I72e05f257a7d6b78c354f912c7bbb9c7e9d3fccf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4027783 Code-Coverage: Andrew McRae <amcrae@google.com> Reviewed-by: SamSP Liu <samsp_liu2@compal.corp-partner.google.com> Reviewed-by: Peter Marheine <pmarheine@chromium.org> Tested-by: Andrew McRae <amcrae@google.com> Commit-Queue: Andrew McRae <amcrae@google.com>
-rw-r--r--zephyr/program/nissa/xivu/src/usbc.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/zephyr/program/nissa/xivu/src/usbc.c b/zephyr/program/nissa/xivu/src/usbc.c
index c4ba75f741..aab4f85438 100644
--- a/zephyr/program/nissa/xivu/src/usbc.c
+++ b/zephyr/program/nissa/xivu/src/usbc.c
@@ -163,12 +163,26 @@ void pd_power_supply_reset(int port)
pd_send_host_event(PD_EVENT_POWER_CHANGE);
}
+/* VBUS_CURRENT_TARGET */
+#define RAA489000_VBUS_CURRENT_TARGET_3_3A 0x68 /* 3.3A */
+
__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
{
+ int rv;
+
if (port < 0 || port >= CONFIG_USB_PD_PORT_MAX_COUNT)
return;
- raa489000_set_output_current(port, rp);
+ int selected_cur = rp == TYPEC_RP_3A0 ?
+ RAA489000_VBUS_CURRENT_TARGET_3_3A :
+ RAA489000_VBUS_CURRENT_TARGET_1_5A;
+
+ rv = tcpc_write16(port, RAA489000_VBUS_CURRENT_TARGET, selected_cur);
+
+ if (rv != EC_SUCCESS) {
+ LOG_WRN("Failed to set source ilimit on port %d to %d: %d",
+ port, selected_cur, rv);
+ }
}
int pd_set_power_supply_ready(int port)