From 068b917ef17383c1cf8987d070b27fea30a72d75 Mon Sep 17 00:00:00 2001 From: Jett Rink Date: Wed, 25 Sep 2019 07:50:15 -0600 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825503 Reviewed-by: Denis Brockus Reviewed-by: Sam Hurst --- common/usb_pd_protocol.c | 19 ++++++++++--------- common/usbc/usb_tc_ctvpd_sm.c | 6 +++--- common/usbc/usb_tc_drp_acc_trysrc_sm.c | 16 ++++++++-------- include/ec_commands.h | 26 ++++++++++++++++---------- include/usb_pd.h | 13 ------------- util/ectool.c | 18 +++++++++--------- 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"); -- cgit v1.2.1