summaryrefslogtreecommitdiff
path: root/common/usbc
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@chromium.org>2019-10-14 14:06:05 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-16 08:42:19 +0000
commit7a4e700b6488a138d0c5c55aaa47e626d90a5299 (patch)
tree7df9a085eed09ffbcff37b4c8a09c71b5e9af0ca /common/usbc
parent2dd2eecaa743a65d8369c7799bbc1450b0d91d0e (diff)
downloadchrome-ec-7a4e700b6488a138d0c5c55aaa47e626d90a5299.tar.gz
pd: Add PE FRS unit test for new stack
BUG=none BRANCH=none TEST=make buildall -j Change-Id: I55453ddf1d1da0fdee902a33e14357716fb12c4a Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1859826 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'common/usbc')
-rw-r--r--common/usbc/build.mk1
-rw-r--r--common/usbc/usb_pe_drp_sm.c29
2 files changed, 28 insertions, 2 deletions
diff --git a/common/usbc/build.mk b/common/usbc/build.mk
index fea97cde43..69e540ed67 100644
--- a/common/usbc/build.mk
+++ b/common/usbc/build.mk
@@ -15,6 +15,7 @@ ifneq ($(CONFIG_USB_PE_SM),)
all-obj-$(CONFIG_USB_TYPEC_VPD)+=$(_usbc_dir)usb_pe_ctvpd_sm.o
all-obj-$(CONFIG_USB_TYPEC_CTVPD)+=$(_usbc_dir)usb_pe_ctvpd_sm.o
all-obj-$(CONFIG_USB_TYPEC_DRP_ACC_TRYSRC)+=$(_usbc_dir)usb_pe_drp_sm.o
+all-obj-$(CONFIG_TEST_USB_PE_SM)+=$(_usbc_dir)usb_pe_drp_sm.o
endif
all-obj-$(CONFIG_USB_TYPEC_VPD)+=$(_usbc_dir)usb_tc_vpd_sm.o
all-obj-$(CONFIG_USB_TYPEC_CTVPD)+=$(_usbc_dir)usb_tc_ctvpd_sm.o
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index abd5e5bb6b..fc1fb2353e 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -437,7 +437,8 @@ static struct svdm_amode_data *get_modep(int port, uint16_t svid);
#endif
test_export_static enum usb_pe_state get_state_pe(const int port);
-static void set_state_pe(const int port, const enum usb_pe_state new_state);
+test_export_static void set_state_pe(const int port,
+ const enum usb_pe_state new_state);
static void pe_init(int port)
{
@@ -730,7 +731,8 @@ void pe_exit_dp_mode(int port)
*/
/* Set the TypeC state machine to a new state. */
-static void set_state_pe(const int port, const enum usb_pe_state new_state)
+test_export_static void set_state_pe(const int port,
+ const enum usb_pe_state new_state)
{
set_state(port, &pe[port].ctx, &pe_states[new_state]);
}
@@ -3384,6 +3386,7 @@ static void pe_do_port_discovery_entry(int port)
static void pe_do_port_discovery_run(int port)
{
+#ifdef CONFIG_USB_PD_ALT_MODE_DFP
uint32_t *payload = (uint32_t *)emsg[port].buf;
struct svdm_amode_data *modep = get_modep(port, PD_VDO_VID(payload[0]));
int ret = 0;
@@ -3473,6 +3476,7 @@ static void pe_do_port_discovery_run(int port)
pe[port].vdm_cnt = ret;
set_state_pe(port, PE_VDM_REQUEST);
}
+#endif
}
/**
@@ -5138,4 +5142,25 @@ const struct test_sm_data test_pe_sm_data[] = {
},
};
const int test_pe_sm_data_size = ARRAY_SIZE(test_pe_sm_data);
+
+void pe_set_flag(int port, int flag)
+{
+ PE_SET_FLAG(port, flag);
+}
+void pe_clr_flag(int port, int flag)
+{
+ PE_CLR_FLAG(port, flag);
+}
+int pe_chk_flag(int port, int flag)
+{
+ return PE_CHK_FLAG(port, flag);
+}
+int pe_get_all_flags(int port)
+{
+ return pe[port].flags;
+}
+void pe_set_all_flags(int port, int flags)
+{
+ pe[port].flags = flags;
+}
#endif