usb: typec: tcpci: Enable bleed discharge when auto discharge is enabled
authorBadhri Jagan Sridharan <badhri@google.com>
Fri, 11 Dec 2020 07:11:45 +0000 (23:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Dec 2020 10:13:55 +0000 (11:13 +0100)
Auto discharge circuits kick in only when vbus decays and reaches
VBUS_SINK_DISCONNECT_THRESHOLD threshold. Enable bleed discharge to
discharge vbus to VBUS_SINK_DISCONNECT_THRESHOLD upon disconnect.

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Link: https://lore.kernel.org/r/20201211071145.2199997-1-badhri@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpci.c

index af55243..f676aba 100644 (file)
@@ -725,6 +725,8 @@ struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data)
                tcpci->tcpc.enable_auto_vbus_discharge = tcpci_enable_auto_vbus_discharge;
                tcpci->tcpc.set_auto_vbus_discharge_threshold =
                        tcpci_set_auto_vbus_discharge_threshold;
+               regmap_update_bits(tcpci->regmap, TCPC_POWER_CTRL, TCPC_POWER_CTRL_BLEED_DISCHARGE,
+                                  TCPC_POWER_CTRL_BLEED_DISCHARGE);
        }
 
        if (tcpci->data->vbus_vsafe0v)