summaryrefslogtreecommitdiff
path: root/common/charge_ramp.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/charge_ramp.c')
-rw-r--r--common/charge_ramp.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/common/charge_ramp.c b/common/charge_ramp.c
index a408771f40..32e0d21ddb 100644
--- a/common/charge_ramp.c
+++ b/common/charge_ramp.c
@@ -18,16 +18,29 @@ test_mockable int chg_ramp_allowed(int port, int supplier)
return 0;
switch (supplier) {
- /* Use ramping for USB-C DTS suppliers (debug accessory eg suzy-q). */
+ /*
+ * Use ramping for USB-C DTS suppliers (debug accessory eg suzy-q).
+ * The suzy-q simply passes through the VBUS. The power supplier behind
+ * may be a SDP/CDP which requires ramping.
+ */
case CHARGE_SUPPLIER_TYPEC_DTS:
return 1;
/*
- * Use HW ramping for USB-C chargers. Don't use SW ramping since the
- * slow ramp causes issues with auto power on (b/169634979).
+ * Don't regulate the input voltage for USB-C chargers. It is
+ * unnecessary as the USB-C compliant adapters should never trigger it
+ * active.
+ *
+ * The USB-C spec defines their load curves should not be below
+ * 4.75V @0A and 4V @3A. We can't define the voltage regulation value
+ * higher than 4V since it limits the current reaching its max 3A. If
+ * we define the voltage regulation value lower than 4V, their load
+ * curves will never be below the voltage regulation line.
+ *
+ * Check go/charge_ramp_typec for detail.
*/
case CHARGE_SUPPLIER_PD:
case CHARGE_SUPPLIER_TYPEC:
- return IS_ENABLED(CONFIG_CHARGE_RAMP_HW);
+ return 0;
/* default: fall through */
}