summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2019-09-25 07:50:15 -0600
committerCommit Bot <commit-bot@chromium.org>2019-09-26 05:58:44 +0000
commit068b917ef17383c1cf8987d070b27fea30a72d75 (patch)
tree1c036c36ef0f7d0b6c44b4eb437ccc11edd9d994
parent881d05951d94345c7c5bdea909cf5d393bd66a57 (diff)
downloadchrome-ec-068b917ef17383c1cf8987d070b27fea30a72d75.tar.gz
cleanup: remove copy of pd_cc_state enum
The EC command interface created a separate copy of the enum pd_cc_state. Remove the EC command version and move the pd_cc_state definition to the command interface. Also remove PD_CC_NO_UFP option as there is no difference between that value and PD_CC_NONE. Split PD_CC_DEBUG_ACC into separate UFP and DFP values for clarity. BRANCH=none BUG=none TEST=builds Change-Id: Ic8c4c5ac4dd340b1e605100e35acb147c226a455 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825503 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Sam Hurst <shurst@google.com>
-rw-r--r--common/usb_pd_protocol.c19
-rw-r--r--common/usbc/usb_tc_ctvpd_sm.c6
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c16
-rw-r--r--include/ec_commands.h26
-rw-r--r--include/usb_pd.h13
-rw-r--r--util/ectool.c18
6 files changed, 46 insertions, 52 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 97d2722b4d..6f6d360928 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -388,7 +388,8 @@ int pd_is_ufp(int port)
int pd_is_debug_acc(int port)
{
- return pd[port].cc_state == PD_CC_DEBUG_ACC;
+ return pd[port].cc_state == PD_CC_UFP_DEBUG_ACC ||
+ pd[port].cc_state == PD_CC_DFP_DEBUG_ACC;
}
#endif
@@ -3308,13 +3309,13 @@ void pd_task(void *u)
if (cc_is_snk_dbg_acc(cc1, cc2)) {
/* Debug accessory */
- new_cc_state = PD_CC_DEBUG_ACC;
+ new_cc_state = PD_CC_UFP_DEBUG_ACC;
} else if (cc_is_at_least_one_rd(cc1, cc2)) {
/* UFP attached */
new_cc_state = PD_CC_UFP_ATTACHED;
} else if (cc_is_audio_acc(cc1, cc2)) {
/* Audio accessory */
- new_cc_state = PD_CC_AUDIO_ACC;
+ new_cc_state = PD_CC_UFP_AUDIO_ACC;
} else {
/* No UFP */
set_state(port, PD_STATE_SRC_DISCONNECTED);
@@ -3351,7 +3352,7 @@ void pd_task(void *u)
/* UFP is attached */
if (new_cc_state == PD_CC_UFP_ATTACHED ||
- new_cc_state == PD_CC_DEBUG_ACC) {
+ new_cc_state == PD_CC_UFP_DEBUG_ACC) {
#ifdef CONFIG_USBC_PPC
/* Inform PPC that a sink is connected. */
ppc_sink_is_connected(port, 1);
@@ -3362,7 +3363,7 @@ void pd_task(void *u)
/* initial data role for source is DFP */
pd_set_data_role(port, PD_ROLE_DFP);
- if (new_cc_state == PD_CC_DEBUG_ACC)
+ if (new_cc_state == PD_CC_UFP_DEBUG_ACC)
pd[port].flags |=
PD_FLAGS_TS_DTS_PARTNER;
@@ -3372,7 +3373,7 @@ void pd_task(void *u)
* detected. Section 4.5.2.2.17.1 in USB spec
* v1-3
*/
- if (new_cc_state != PD_CC_DEBUG_ACC) {
+ if (new_cc_state != PD_CC_UFP_DEBUG_ACC) {
/*
* Start sourcing Vconn before Vbus to
* ensure we are within USB Type-C
@@ -3929,7 +3930,7 @@ void pd_task(void *u)
if (cc_is_rp(cc1) && cc_is_rp(cc2)) {
/* Debug accessory */
- new_cc_state = PD_CC_DEBUG_ACC;
+ new_cc_state = PD_CC_DFP_DEBUG_ACC;
} else if (cc_is_rp(cc1) || cc_is_rp(cc2)) {
new_cc_state = PD_CC_DFP_ATTACHED;
} else {
@@ -3994,14 +3995,14 @@ void pd_task(void *u)
/* DFP is attached */
if (new_cc_state == PD_CC_DFP_ATTACHED ||
- new_cc_state == PD_CC_DEBUG_ACC) {
+ new_cc_state == PD_CC_DFP_DEBUG_ACC) {
pd[port].flags |= PD_FLAGS_CHECK_PR_ROLE |
PD_FLAGS_CHECK_DR_ROLE |
PD_FLAGS_CHECK_IDENTITY;
/* Reset cable attributes and flags */
reset_pd_cable(port);
- if (new_cc_state == PD_CC_DEBUG_ACC)
+ if (new_cc_state == PD_CC_DFP_DEBUG_ACC)
pd[port].flags |=
PD_FLAGS_TS_DTS_PARTNER;
set_state(port, PD_STATE_SNK_DISCOVERY);
diff --git a/common/usbc/usb_tc_ctvpd_sm.c b/common/usbc/usb_tc_ctvpd_sm.c
index 46be033514..9aeb7742b0 100644
--- a/common/usbc/usb_tc_ctvpd_sm.c
+++ b/common/usbc/usb_tc_ctvpd_sm.c
@@ -1009,9 +1009,9 @@ static void tc_ct_attach_wait_unsupported_run(const int port)
vpd_ct_get_cc(&cc1, &cc2);
if (cc_is_at_least_one_rd(cc1, cc2))
- new_cc_state = PD_CC_DFP_ATTACHED;
+ new_cc_state = PD_CC_UFP_ATTACHED;
else if (cc_is_audio_acc(cc1, cc2))
- new_cc_state = PD_CC_AUDIO_ACC;
+ new_cc_state = PD_CC_UFP_AUDIO_ACC;
else /* (cc1 == TYPEC_CC_VOLT_OPEN or cc2 == TYPEC_CC_VOLT_OPEN */
new_cc_state = PD_CC_NONE;
@@ -1047,7 +1047,7 @@ static void tc_ct_attach_wait_unsupported_run(const int port)
*/
if (new_cc_state == PD_CC_NONE)
set_state_tc(port, TC_CT_UNATTACHED_VPD);
- else /* PD_CC_DFP_ATTACHED or PD_CC_AUDIO_ACC */
+ else /* PD_CC_UFP_ATTACHED or PD_CC_UFP_AUDIO_ACC */
set_state_tc(port, TC_CT_TRY_SNK);
}
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 9293a2c6a1..de9381742b 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -1753,7 +1753,7 @@ static void tc_attach_wait_snk_run(const int port)
tcpm_get_cc(port, &cc1, &cc2);
if (cc_is_rp(cc1) && cc_is_rp(cc2))
- new_cc_state = PD_CC_DEBUG_ACC;
+ new_cc_state = PD_CC_DFP_DEBUG_ACC;
else if (cc_is_rp(cc1) || cc_is_rp(cc2))
new_cc_state = PD_CC_DFP_ATTACHED;
else
@@ -1810,7 +1810,7 @@ static void tc_attach_wait_snk_run(const int port)
#endif
set_state_tc(port, TC_ATTACHED_SNK);
} else {
- /* new_cc_state is PD_CC_DEBUG_ACC */
+ /* new_cc_state is PD_CC_DFP_DEBUG_ACC */
TC_SET_FLAG(port, TC_FLAGS_TS_DTS_PARTNER);
set_state_tc(port, TC_DBG_ACC_SNK);
}
@@ -2199,13 +2199,13 @@ static void tc_attach_wait_src_run(const int port)
/* Debug accessory */
if (cc_is_snk_dbg_acc(cc1, cc2)) {
/* Debug accessory */
- new_cc_state = PD_CC_DEBUG_ACC;
+ new_cc_state = PD_CC_UFP_DEBUG_ACC;
} else if (cc_is_at_least_one_rd(cc1, cc2)) {
/* UFP attached */
new_cc_state = PD_CC_UFP_ATTACHED;
} else if (cc_is_audio_acc(cc1, cc2)) {
/* AUDIO Accessory not supported. Just ignore */
- new_cc_state = PD_CC_AUDIO_ACC;
+ new_cc_state = PD_CC_UFP_AUDIO_ACC;
} else {
/* No UFP */
set_state_tc(port, TC_UNATTACHED_SNK);
@@ -2237,7 +2237,7 @@ static void tc_attach_wait_src_run(const int port)
if (new_cc_state == PD_CC_UFP_ATTACHED) {
set_state_tc(port, TC_ATTACHED_SRC);
return;
- } else if (new_cc_state == PD_CC_DEBUG_ACC) {
+ } else if (new_cc_state == PD_CC_UFP_DEBUG_ACC) {
set_state_tc(port, TC_UNORIENTED_DBG_ACC_SRC);
return;
}
@@ -2428,9 +2428,9 @@ static void tc_attached_src_run(const int port)
cc1 = cc2;
if (cc1 == TYPEC_CC_VOLT_OPEN)
- new_cc_state = PD_CC_NO_UFP;
- else
new_cc_state = PD_CC_NONE;
+ else
+ new_cc_state = PD_CC_UFP_ATTACHED;
/* Debounce the cc state */
if (new_cc_state != tc[port].cc_state) {
@@ -2451,7 +2451,7 @@ static void tc_attached_src_run(const int port)
* AttachWait.SNK shall enter TryWait.SNK for a Sink detach from
* Attached.SRC.
*/
- if (tc[port].cc_state == PD_CC_NO_UFP &&
+ if (tc[port].cc_state == PD_CC_NONE &&
!TC_CHK_FLAG(port, TC_FLAGS_PR_SWAP_IN_PROGRESS) &&
!TC_CHK_FLAG(port, TC_FLAGS_DISC_IDENT_IN_PROGRESS)) {
diff --git a/include/ec_commands.h b/include/ec_commands.h
index 30783bc1bb..2ce5ca5271 100644
--- a/include/ec_commands.h
+++ b/include/ec_commands.h
@@ -5102,13 +5102,19 @@ struct ec_response_usb_pd_control_v1 {
char state[32];
} __ec_align1;
-/* Values representing usbc PD CC state */
-#define USBC_PD_CC_NONE 0 /* No accessory connected */
-#define USBC_PD_CC_NO_UFP 1 /* No UFP accessory connected */
-#define USBC_PD_CC_AUDIO_ACC 2 /* Audio accessory connected */
-#define USBC_PD_CC_DEBUG_ACC 3 /* Debug accessory connected */
-#define USBC_PD_CC_UFP_ATTACHED 4 /* UFP attached to usbc */
-#define USBC_PD_CC_DFP_ATTACHED 5 /* DPF attached to usbc */
+/* Possible port partner connections based on CC line states */
+enum pd_cc_states {
+ PD_CC_NONE = 0, /* No port partner attached */
+
+ /* From DFP perspective */
+ PD_CC_UFP_AUDIO_ACC = 2, /* UFP Audio accessory connected */
+ PD_CC_UFP_DEBUG_ACC = 3, /* UFP Debug accessory connected */
+ PD_CC_UFP_ATTACHED = 4, /* Plain UFP attached */
+
+ /* From UFP perspective */
+ PD_CC_DFP_DEBUG_ACC = 6, /* DFP debug accessory connected */
+ PD_CC_DFP_ATTACHED = 5, /* Plain DFP attached */
+};
#define USBC_CABLE_TYPE_UNDEF 0 /* Undefined */
#define USBC_CABLE_TYPE_PASSIVE 3 /* Passive cable attached */
@@ -5119,9 +5125,9 @@ struct ec_response_usb_pd_control_v2 {
uint8_t role;
uint8_t polarity;
char state[32];
- uint8_t cc_state; /* USBC_PD_CC_*Encoded cc state */
- uint8_t dp_mode; /* Current DP pin mode (MODE_DP_PIN_[A-E]) */
- uint8_t cable_type; /* USBC_CABLE_TYPE_*cable_type */
+ uint8_t cc_state; /* enum pd_cc_states representing cc state */
+ uint8_t dp_mode; /* Current DP pin mode (MODE_DP_PIN_[A-E]) */
+ uint8_t cable_type; /* USBC_CABLE_TYPE_*cable_type */
} __ec_align1;
#define EC_CMD_USB_PD_PORTS 0x0102
diff --git a/include/usb_pd.h b/include/usb_pd.h
index 0c58138d1b..70b37f19ef 100644
--- a/include/usb_pd.h
+++ b/include/usb_pd.h
@@ -1109,19 +1109,6 @@ enum pd_states {
/* Initial value for CC debounce variable */
#define PD_CC_UNSET -1
-enum pd_cc_states {
- PD_CC_NONE,
-
- /* From DFP perspective */
- PD_CC_NO_UFP,
- PD_CC_AUDIO_ACC,
- PD_CC_DEBUG_ACC,
- PD_CC_UFP_ATTACHED,
-
- /* From UFP perspective */
- PD_CC_DFP_ATTACHED
-};
-
#ifdef CONFIG_USB_PD_DUAL_ROLE
enum pd_dual_role_states {
/* While disconnected, toggle between src and sink */
diff --git a/util/ectool.c b/util/ectool.c
index fc366918d4..6ca7cfcf8f 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -5464,17 +5464,17 @@ int cmd_usb_pd(int argc, char *argv[])
if (cmdver == 2) {
printf("CC State:");
- if (r_v2->cc_state == USBC_PD_CC_NONE)
+ if (r_v2->cc_state == PD_CC_NONE)
printf("None");
- else if (r_v2->cc_state == USBC_PD_CC_NO_UFP)
- printf("No UFP");
- else if (r_v2->cc_state == USBC_PD_CC_AUDIO_ACC)
- printf("Audio accessory");
- else if (r_v2->cc_state == USBC_PD_CC_DEBUG_ACC)
- printf("Debug accessory");
- else if (r_v2->cc_state == USBC_PD_CC_UFP_ATTACHED)
+ else if (r_v2->cc_state == PD_CC_UFP_AUDIO_ACC)
+ printf("UFP Audio accessory");
+ else if (r_v2->cc_state == PD_CC_UFP_DEBUG_ACC)
+ printf("UFP Debug accessory");
+ else if (r_v2->cc_state == PD_CC_UFP_ATTACHED)
printf("UFP attached");
- else if (r_v2->cc_state == USBC_PD_CC_DFP_ATTACHED)
+ else if (r_v2->cc_state == PD_CC_DFP_DEBUG_ACC)
+ printf("DFP Debug accessory");
+ else if (r_v2->cc_state == PD_CC_DFP_ATTACHED)
printf("DFP attached");
else
printf("UNKNOWN");