summaryrefslogtreecommitdiffstats
path: root/drivers/usb/typec
diff options
context:
space:
mode:
authorBadhri Jagan Sridharan <badhri@google.com>2020-07-15 20:41:26 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-07-21 13:38:21 +0200
commitb2dcfefc43f783c4462f30507f78b7bb093ee8df (patch)
tree4db04e487561c2861009cb56aeabd4cea82e2dd0 /drivers/usb/typec
parentd25d61be6bed44d3a5b7050836e6df602bf3d6ba (diff)
downloadlinux-b2dcfefc43f783c4462f30507f78b7bb093ee8df.tar.bz2
usb: typec: tcpm: Support bist test data mode for compliance
TCPM supports BIST carried mode. PD compliance tests require BIST Test Data to be supported as well. Introducing set_bist_data callback to signal tcpc driver for configuring the port controller hardware to enable/disable BIST Test Data mode. Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20200716034128.1251728-1-badhri@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/typec')
-rw-r--r--drivers/usb/typec/tcpm/tcpm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index a6d4b03ec250..a04f6c18b11a 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -2748,6 +2748,11 @@ static void tcpm_detach(struct tcpm_port *port)
if (!port->attached)
return;
+ if (port->tcpc->set_bist_data) {
+ tcpm_log(port, "disable BIST MODE TESTDATA");
+ port->tcpc->set_bist_data(port->tcpc, false);
+ }
+
if (tcpm_port_is_disconnected(port))
port->hard_reset_count = 0;
@@ -3557,6 +3562,12 @@ static void run_state_machine(struct tcpm_port *port)
case BDO_MODE_CARRIER2:
tcpm_pd_transmit(port, TCPC_TX_BIST_MODE_2, NULL);
break;
+ case BDO_MODE_TESTDATA:
+ if (port->tcpc->set_bist_data) {
+ tcpm_log(port, "Enable BIST MODE TESTDATA");
+ port->tcpc->set_bist_data(port->tcpc, true);
+ }
+ break;
default:
break;
}