usbc: fix cc interpretation error
Ensure that two Rp values are interpreted as a debug accessory. Added unit test for meaningful combinations. BRANCH=none BUG=none TEST=passes unit test. Change-Id: Ia454382f20f9377edc944dc01be133e062c218b0 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1845811 Reviewed-by: Edward Hill <ecgh@chromium.org>
This commit is contained in:
parent
84ffa0bd38
commit
dd1dbd8fee
|
@ -97,7 +97,7 @@ enum pd_cc_states pd_get_cc_state(
|
|||
|
||||
/* Port partner is a SRC */
|
||||
if (cc_is_rp(cc1) && cc_is_rp(cc2))
|
||||
return PD_CC_DFP_ATTACHED;
|
||||
return PD_CC_DFP_DEBUG_ACC;
|
||||
if (cc_is_rp(cc1) || cc_is_rp(cc2))
|
||||
return PD_CC_DFP_ATTACHED;
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
/* Functions that are shared between old and new PD stacks */
|
||||
#include "usb_pd.h"
|
||||
#include "usb_pd_tcpm.h"
|
||||
#include "task_id.h"
|
||||
|
||||
/* Returns the battery percentage [0-100] of the system. */
|
||||
int usb_get_battery_soc(void);
|
||||
|
|
|
@ -67,6 +67,7 @@ test-list-host += system
|
|||
test-list-host += thermal
|
||||
test-list-host += timer_dos
|
||||
test-list-host += uptime
|
||||
test-list-host += usb_common
|
||||
test-list-host += usb_pd
|
||||
test-list-host += usb_pd_giveback
|
||||
test-list-host += usb_pd_rev30
|
||||
|
@ -143,6 +144,7 @@ thermal-y=thermal.o
|
|||
timer_calib-y=timer_calib.o
|
||||
timer_dos-y=timer_dos.o
|
||||
uptime-y=uptime.o
|
||||
usb_common-y=usb_common_test.o
|
||||
usb_pd-y=usb_pd.o
|
||||
usb_pd_giveback-y=usb_pd.o
|
||||
usb_pd_rev30-y=usb_pd.o
|
||||
|
|
|
@ -230,6 +230,15 @@ int ncp15wb_calculate_temp(uint16_t adc);
|
|||
#define CONFIG_ALS_LIGHTBAR_DIMMING 0
|
||||
#endif
|
||||
|
||||
#ifdef TEST_USB_COMMON
|
||||
#define CONFIG_USB_POWER_DELIVERY
|
||||
#define CONFIG_USB_PD_PORT_COUNT 1
|
||||
#define CONFIG_USB_PD_TCPC
|
||||
#define CONFIG_USB_PD_TCPM_STUB
|
||||
#define CONFIG_SHA256
|
||||
#define CONFIG_SW_CRC
|
||||
#endif
|
||||
|
||||
#if defined(TEST_USB_SM_FRAMEWORK_H3)
|
||||
#define CONFIG_USB_PD_PORT_COUNT 1
|
||||
#undef CONFIG_USB_PRL_SM
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright 2019 The Chromium OS Authors. All rights reserved.
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
/**
|
||||
* See CONFIG_TASK_LIST in config.h for details.
|
||||
*/
|
||||
#define CONFIG_TEST_TASK_LIST
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
/* Copyright 2019 The Chromium OS Authors. All rights reserved.
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*
|
||||
* Test USB common module.
|
||||
*/
|
||||
#include "test_util.h"
|
||||
#include "usb_common.h"
|
||||
|
||||
int test_pd_get_cc_state(void)
|
||||
{
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_3_0),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_1_5),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_DEF),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_3_0),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_1_5),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_DEF),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_3_0),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_1_5),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_DEF),
|
||||
PD_CC_DFP_DEBUG_ACC, "%d");
|
||||
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_3_0),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_1_5),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_DEF),
|
||||
PD_CC_DFP_ATTACHED, "%d");
|
||||
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_RD),
|
||||
PD_CC_UFP_DEBUG_ACC, "%d");
|
||||
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_RA),
|
||||
PD_CC_UFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_UFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_RD),
|
||||
PD_CC_UFP_ATTACHED, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RD),
|
||||
PD_CC_UFP_ATTACHED, "%d");
|
||||
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_RA),
|
||||
PD_CC_UFP_AUDIO_ACC, "%d");
|
||||
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_NONE, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RA),
|
||||
PD_CC_NONE, "%d");
|
||||
TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_OPEN),
|
||||
PD_CC_NONE, "%d");
|
||||
|
||||
return EC_SUCCESS;
|
||||
}
|
||||
|
||||
void run_test(void)
|
||||
{
|
||||
RUN_TEST(test_pd_get_cc_state);
|
||||
|
||||
test_print_result();
|
||||
}
|
Loading…
Reference in New Issue