summaryrefslogtreecommitdiff
path: root/common/usb_pd_protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_pd_protocol.c')
-rw-r--r--common/usb_pd_protocol.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 4370835fe1..3ea1dbf723 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -659,9 +659,16 @@ static int pd_send_request_msg(int port, int always_send_request)
*/
return -1;
- /* Don't re-request the same voltage */
- if (!always_send_request && pd[port].prev_request_mv == supply_voltage)
- return EC_SUCCESS;
+ if (!always_send_request) {
+ /* Don't re-request the same voltage */
+ if (pd[port].prev_request_mv == supply_voltage)
+ return EC_SUCCESS;
+#ifdef CONFIG_CHARGE_MANAGER
+ /* Limit current to PD_MIN_MA during transition */
+ else
+ charge_manager_force_ceil(port, PD_MIN_MA);
+#endif
+ }
CPRINTF("Req C%d [%d] %dmV %dmA", port, RDO_POS(rdo),
supply_voltage, curr_limit);