enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0);
 }
 
+static int tcpci_set_bist_data(struct tcpc_dev *tcpc, bool enable)
+{
+       struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
+
+       return regmap_update_bits(tcpci->regmap, TCPC_TCPC_CTRL, TCPC_TCPC_CTRL_BIST_TM,
+                                enable ? TCPC_TCPC_CTRL_BIST_TM : 0);
+}
+
 static int tcpci_set_roles(struct tcpc_dev *tcpc, bool attached,
                           enum typec_role role, enum typec_data_role data)
 {
        tcpci->tcpc.set_pd_rx = tcpci_set_pd_rx;
        tcpci->tcpc.set_roles = tcpci_set_roles;
        tcpci->tcpc.pd_transmit = tcpci_pd_transmit;
+       tcpci->tcpc.set_bist_data = tcpci_set_bist_data;
 
        err = tcpci_parse_config(tcpci);
        if (err < 0)
 
 
 #define TCPC_TCPC_CTRL                 0x19
 #define TCPC_TCPC_CTRL_ORIENTATION     BIT(0)
+#define TCPC_TCPC_CTRL_BIST_TM         BIT(1)
 
 #define TCPC_ROLE_CTRL                 0x1a
 #define TCPC_ROLE_CTRL_DRP             BIT(6)