summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c17
-rw-r--r--driver/tcpm/tcpci.c17
-rw-r--r--driver/tcpm/tcpci.h3
-rw-r--r--driver/tcpm/tcpm.h7
-rw-r--r--include/usb_pd_tcpm.h4
5 files changed, 17 insertions, 31 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 51207a9acb..dea25931a2 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -1739,7 +1739,7 @@ static void tc_unattached_snk_run(const int port)
* Set RC.CC2=10b (Rd)
*/
tcpm_enable_auto_discharge_disconnect(port, 0);
- tcpm_set_connection(port, TYPEC_CC_RD, 0, NULL);
+ tcpm_set_connection(port, TYPEC_CC_RD, 0);
set_state_tc(port, TC_DRP_AUTO_TOGGLE);
return;
}
@@ -2503,7 +2503,7 @@ static void tc_unattached_src_run(const int port)
* Set RC.CC2=01b (Rp)
*/
tcpm_enable_auto_discharge_disconnect(port, 0);
- tcpm_set_connection(port, TYPEC_CC_RP, 0, NULL);
+ tcpm_set_connection(port, TYPEC_CC_RP, 0);
set_state_tc(port, TC_DRP_AUTO_TOGGLE);
}
#endif
@@ -2872,7 +2872,6 @@ static __maybe_unused void check_drp_connection(const int port)
{
enum pd_drp_next_states next_state;
enum tcpc_cc_voltage_status cc1, cc2;
- int prev_drp;
TC_CLR_FLAG(port, TC_FLAGS_CHECK_CONNECTION);
@@ -2896,9 +2895,8 @@ static __maybe_unused void check_drp_connection(const int port)
* Set RC.DRP=0
* Set TCPC_CONTROl.PlugOrientation
*/
- tcpm_set_connection(port, TYPEC_CC_RD, 1, &prev_drp);
- if (prev_drp)
- tcpm_enable_auto_discharge_disconnect(port, 1);
+ tcpm_set_connection(port, TYPEC_CC_RD, 1);
+ tcpm_enable_auto_discharge_disconnect(port, 1);
set_state_tc(port, TC_UNATTACHED_SNK);
break;
case DRP_TC_UNATTACHED_SRC:
@@ -2908,9 +2906,8 @@ static __maybe_unused void check_drp_connection(const int port)
* Set RC.DRP=0
* Set TCPC_CONTROl.PlugOrientation
*/
- tcpm_set_connection(port, TYPEC_CC_RP, 1, &prev_drp);
- if (prev_drp)
- tcpm_enable_auto_discharge_disconnect(port, 1);
+ tcpm_set_connection(port, TYPEC_CC_RP, 1);
+ tcpm_enable_auto_discharge_disconnect(port, 1);
set_state_tc(port, TC_UNATTACHED_SRC);
break;
@@ -2927,7 +2924,7 @@ static __maybe_unused void check_drp_connection(const int port)
(PD_ROLE_DEFAULT(port) == PD_ROLE_SOURCE)
? TYPEC_CC_RP
: TYPEC_CC_RD,
- 0, NULL);
+ 0);
set_state_tc(port, TC_DRP_AUTO_TOGGLE);
break;
#endif
diff --git a/driver/tcpm/tcpci.c b/driver/tcpm/tcpci.c
index d45b1323c4..4cc686f92c 100644
--- a/driver/tcpm/tcpci.c
+++ b/driver/tcpm/tcpci.c
@@ -409,21 +409,11 @@ int tcpci_tcpc_drp_toggle(int port)
int tcpci_tcpc_set_connection(int port,
enum tcpc_cc_pull pull,
- int connect,
- int *prev_drp)
+ int connect)
{
int rv;
int role;
- /* Get the ROLE CONTROL value */
- rv = tcpc_read(port, TCPC_REG_ROLE_CTRL, &role);
- if (rv)
- return rv;
-
- /* if optional prev_drp is present then save the current DRP state */
- if (prev_drp)
- *prev_drp = !!(role & TCPC_REG_ROLE_CTRL_DRP_MASK);
-
/*
* Disconnecting will set the following and then return
* Set RC.DRP=1b (DRP)
@@ -436,6 +426,11 @@ int tcpci_tcpc_set_connection(int port,
return EC_SUCCESS;
}
+ /* Get the ROLE CONTROL value */
+ rv = tcpc_read(port, TCPC_REG_ROLE_CTRL, &role);
+ if (rv)
+ return rv;
+
if (role & TCPC_REG_ROLE_CTRL_DRP_MASK) {
enum tcpc_cc_pull cc1_pull, cc2_pull;
enum tcpc_cc_voltage_status cc1, cc2;
diff --git a/driver/tcpm/tcpci.h b/driver/tcpm/tcpci.h
index 9c9fa111e9..d400c4dee2 100644
--- a/driver/tcpm/tcpci.h
+++ b/driver/tcpm/tcpci.h
@@ -226,8 +226,7 @@ int tcpci_tcpm_release(int port);
#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
int tcpci_set_role_ctrl(int port, int toggle, int rp, int pull);
int tcpci_tcpc_drp_toggle(int port);
-int tcpci_tcpc_set_connection(int port, enum tcpc_cc_pull pull,
- int connect, int *prev_drp);
+int tcpci_tcpc_set_connection(int port, enum tcpc_cc_pull pull, int connect);
#endif
#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
int tcpci_enter_low_power_mode(int port);
diff --git a/driver/tcpm/tcpm.h b/driver/tcpm/tcpm.h
index c62235eec9..f97bb39b9c 100644
--- a/driver/tcpm/tcpm.h
+++ b/driver/tcpm/tcpm.h
@@ -180,16 +180,13 @@ static inline int tcpm_set_cc(int port, int pull)
static inline int tcpm_set_connection(int port,
enum tcpc_cc_pull pull,
- int connect,
- int *prev_drp)
+ int connect)
{
const struct tcpm_drv *tcpc = tcpc_config[port].drv;
if (IS_ENABLED(CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE) &&
tcpc->set_connection)
- return tcpc->set_connection(port, pull, connect, prev_drp);
- else if (prev_drp)
- *prev_drp = 0;
+ return tcpc->set_connection(port, pull, connect);
return EC_SUCCESS;
}
diff --git a/include/usb_pd_tcpm.h b/include/usb_pd_tcpm.h
index 5b160b46b5..60a50f0f2e 100644
--- a/include/usb_pd_tcpm.h
+++ b/include/usb_pd_tcpm.h
@@ -341,14 +341,12 @@ struct tcpm_drv {
* @param port Type-C port number
* @param pull enum tcpc_cc_pull of CC lines
* @param connect Connect(1) or Disconnect(0)
- * @param prev_drp optional output of previous DRP value
*
* @return EC_SUCCESS or error
*/
int (*set_connection)(int port,
enum tcpc_cc_pull pull,
- int connect,
- int *prev_drp);
+ int connect);
#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
/**