From 8e024350d3c81c7b1b76eac7ce0b419d6039dbb5 Mon Sep 17 00:00:00 2001 From: Alec Berg Date: Tue, 11 Nov 2014 15:39:40 -0800 Subject: pd: add data role swap Add support for DR_swap, data role swap command. BUG=chrome-os-partner:33686, chrome-os-partner:28343 BRANCH=samus TEST=test with samus and zinger. use "pd 1 swap data" command and verify data role swaps by using twinkie and "pd 1 state". Change-Id: I410309199cdeecb26847a6bf217523fdfe688cba Signed-off-by: Alec Berg Reviewed-on: https://chromium-review.googlesource.com/229192 --- board/host/usb_pd_policy.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'board/host/usb_pd_policy.c') diff --git a/board/host/usb_pd_policy.c b/board/host/usb_pd_policy.c index b61b0a4349..8d927d0cb4 100644 --- a/board/host/usb_pd_policy.c +++ b/board/host/usb_pd_policy.c @@ -16,13 +16,15 @@ #define MAX_POWER_MW 60000 #define MAX_CURRENT_MA 3000 +#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP) + const uint32_t pd_src_pdo[] = { - PDO_FIXED(5000, 900, PDO_FIXED_EXTERNAL), + PDO_FIXED(5000, 900, PDO_FIXED_FLAGS), }; const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo); const uint32_t pd_snk_pdo[] = { - PDO_FIXED(5000, 500, PDO_FIXED_DUAL_ROLE), + PDO_FIXED(5000, 500, PDO_FIXED_FLAGS), PDO_BATT(5000, 20000, 15000), PDO_VAR(5000, 20000, 3000), }; @@ -149,6 +151,17 @@ int pd_power_swap(int port) return 1; } +int pd_data_swap(int port, int data_role) +{ + /* Always allow data swap */ + return 1; +} + +void pd_execute_data_swap(int port, int data_role) +{ + /* Do nothing */ +} + int pd_custom_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) { return 0; -- cgit v1.2.1