From 664339e6f20ddedb4e3dc88715b586cc31616e85 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Wed, 25 Apr 2018 19:25:01 -0700 Subject: poppy: Enable usb device mode BUG=b:78577893 BRANCH=poppy TEST=Verified following: 1. ectool usbpd 0 dr_swap 2. ectool usbpd 0 --> Role: SNK UFP Change-Id: Ie1130eba3da4352e2a3e09eaad20886a1bea81a3 Signed-off-by: Furquan Shaikh Reviewed-on: https://chromium-review.googlesource.com/1029539 Commit-Ready: Furquan Shaikh Tested-by: Furquan Shaikh Reviewed-by: Duncan Laurie Reviewed-by: Vincent Palatin --- board/poppy/board.h | 1 - board/poppy/gpio.inc | 2 +- board/poppy/usb_pd_policy.c | 9 ++++++++- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'board/poppy') diff --git a/board/poppy/board.h b/board/poppy/board.h index 033e6388e4..1c53018bd4 100644 --- a/board/poppy/board.h +++ b/board/poppy/board.h @@ -161,7 +161,6 @@ #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY #define CONFIG_USBC_SS_MUX -#define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP diff --git a/board/poppy/gpio.inc b/board/poppy/gpio.inc index dab91d4741..f771ef9161 100644 --- a/board/poppy/gpio.inc +++ b/board/poppy/gpio.inc @@ -147,7 +147,7 @@ GPIO(USB_C1_PD_RST_L, PIN(7, 4), GPIO_ODR_HIGH) /* C1 PD Reset */ GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */ GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */ GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */ -GPIO(USB2_OTG_ID, PIN(A, 1), GPIO_ODR_LOW) /* OTG ID */ +GPIO(USB2_OTG_ID, PIN(A, 1), GPIO_OUT_LOW) /* OTG ID */ GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUT_LOW) /* OTG VBUS Sense */ /* LEDs (2 colors on each port) */ diff --git a/board/poppy/usb_pd_policy.c b/board/poppy/usb_pd_policy.c index bb1920c6db..c351febb85 100644 --- a/board/poppy/usb_pd_policy.c +++ b/board/poppy/usb_pd_policy.c @@ -190,7 +190,14 @@ int pd_check_vconn_swap(int port) void pd_execute_data_swap(int port, int data_role) { - /* Do nothing */ + /* Only port 0 supports device mode. */ + if (port != 0) + return; + + gpio_set_level(GPIO_USB2_OTG_ID, + (data_role == PD_ROLE_UFP) ? 1 : 0); + gpio_set_level(GPIO_USB2_OTG_VBUSSENSE, + (data_role == PD_ROLE_UFP) ? 1 : 0); } void pd_check_pr_role(int port, int pr_role, int flags) -- cgit v1.2.1