diff options
author | johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com> | 2022-11-15 15:59:47 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-16 06:57:45 +0000 |
commit | 1d3a7723f310fd32a64e2ba59f3ab41d7f6c9042 (patch) | |
tree | 40555a08fe4a636414ad6154d1753c7276ac6167 | |
parent | ced7b670199fbab446eb4b5e27afb47203e20d51 (diff) | |
download | chrome-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.c | 16 |
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) |