forked from luck/tmp_suning_uos_patched
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>
This commit is contained in:
parent
d25d61be6b
commit
b2dcfefc43
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -79,6 +79,7 @@ enum tcpm_transmit_type {
|
|||
* @try_role: Optional; called to set a preferred role
|
||||
* @pd_transmit:Called to transmit PD message
|
||||
* @mux: Pointer to multiplexer data
|
||||
* @set_bist_data: Turn on/off bist data mode for compliance testing
|
||||
*/
|
||||
struct tcpc_dev {
|
||||
struct fwnode_handle *fwnode;
|
||||
|
@ -103,6 +104,7 @@ struct tcpc_dev {
|
|||
int (*try_role)(struct tcpc_dev *dev, int role);
|
||||
int (*pd_transmit)(struct tcpc_dev *dev, enum tcpm_transmit_type type,
|
||||
const struct pd_message *msg);
|
||||
int (*set_bist_data)(struct tcpc_dev *dev, bool on);
|
||||
};
|
||||
|
||||
struct tcpm_port;
|
||||
|
|
Loading…
Reference in New Issue
Block a user