diff options
author | Alec Berg <alecaberg@chromium.org> | 2014-10-26 12:49:24 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-11-06 21:14:43 +0000 |
commit | 290f0cfc831940393c5904105e523cc71c0fb458 (patch) | |
tree | b74e1c25f66fae751366b1496697b0f5a3aa5965 /test | |
parent | 8bd7ab6203b2e6a33a75be83ae178bde52720145 (diff) | |
download | chrome-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')
-rw-r--r-- | test/usb_pd.c | 12 |
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)); |