summaryrefslogtreecommitdiff
path: root/test/usb_pd.c
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2014-10-26 12:49:24 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-11-06 21:14:43 +0000
commit290f0cfc831940393c5904105e523cc71c0fb458 (patch)
treeb74e1c25f66fae751366b1496697b0f5a3aa5965 /test/usb_pd.c
parent8bd7ab6203b2e6a33a75be83ae178bde52720145 (diff)
downloadchrome-ec-290f0cfc831940393c5904105e523cc71c0fb458.tar.gz
pd: samus: add support for power swap command
Add support for PR_SWAP command as per PD specification. BUG=chrome-os-partner:28343 BRANCH=samus TEST=test by connecting two samus' and running 'pd 1 swap power' from console. verified that both sides switch power roles by observing console output. also tested against third party devices. Change-Id: I0e8738b544de9f9a4348250630e67d0fefb4486d Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/225559 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'test/usb_pd.c')
-rw-r--r--test/usb_pd.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/test/usb_pd.c b/test/usb_pd.c
index cc36b968cf..f7b6500686 100644
--- a/test/usb_pd.c
+++ b/test/usb_pd.c
@@ -102,13 +102,14 @@ static void simulate_rx_msg(int port, uint16_t header, int cnt,
static void simulate_source_cap(int port)
{
uint16_t header = PD_HEADER(PD_DATA_SOURCE_CAP, PD_ROLE_SOURCE,
- pd_port[port].msg_rx_id, pd_src_pdo_cnt);
+ PD_ROLE_DFP, pd_port[port].msg_rx_id,
+ pd_src_pdo_cnt);
simulate_rx_msg(port, header, pd_src_pdo_cnt, pd_src_pdo);
}
static void simulate_goodcrc(int port, int role, int id)
{
- simulate_rx_msg(port, PD_HEADER(PD_CTRL_GOOD_CRC, role, id, 0),
+ simulate_rx_msg(port, PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0),
0, NULL);
}
@@ -116,7 +117,7 @@ static int verify_goodcrc(int port, int role, int id)
{
return pd_test_tx_msg_verify_sop(0) &&
pd_test_tx_msg_verify_short(0, PD_HEADER(PD_CTRL_GOOD_CRC,
- role, id, 0)) &&
+ role, role, id, 0)) &&
pd_test_tx_msg_verify_crc(0) &&
pd_test_tx_msg_verify_eop(0);
}
@@ -162,7 +163,7 @@ static int test_request(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(0));
TEST_ASSERT(pd_test_tx_msg_verify_short(0,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
pd_port[0].msg_tx_id, 1)));
TEST_ASSERT(pd_test_tx_msg_verify_word(0, RDO_FIXED(2, 450, 900, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_crc(0));
@@ -187,7 +188,8 @@ static int test_sink(void)
TEST_ASSERT(pd_test_tx_msg_verify_sop(1));
TEST_ASSERT(pd_test_tx_msg_verify_short(1,
PD_HEADER(PD_DATA_SOURCE_CAP, PD_ROLE_SOURCE,
- pd_port[1].msg_tx_id, pd_src_pdo_cnt)));
+ PD_ROLE_DFP, pd_port[1].msg_tx_id,
+ pd_src_pdo_cnt)));
for (i = 0; i < pd_src_pdo_cnt; ++i)
TEST_ASSERT(pd_test_tx_msg_verify_word(1, pd_src_pdo[i]));
TEST_ASSERT(pd_test_tx_msg_verify_crc(1));