summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com>2018-03-13 12:01:04 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-03-21 23:23:38 -0700
commitb073dba72adb9642fd3ec874ddb49fcb071afbfa (patch)
tree0210ee5694e6af1d4b1ab1e852487dcb82416058
parenta615f3c7d3787b8f7be9a82c292228ed26eda963 (diff)
downloadchrome-ec-factory-poppy-10509.B.tar.gz
Eve: Enable usb device modefactory-poppy-10509.B
For the dual data role, when the state is UFP assert the otg pins to activate the usb device controller. This will enable usb gadget mode and the board will act as usb device instead of host. For DFP state, de-assert the otg pins to activate the host mode. BUG=b:74339386 BRANCH=NONE TEST=Connect two Eve boards with the usb type c cable. On ec console, type the command usb pd 0 swap data. pd 0 state should return UFP mode. Verify that the otg pins are high (USB2_OTG_ID and USB2_OTG_VBUSSENSE). Change-Id: I0efb08ae3946ff09ce9dfeb89cff049e551fe000 Signed-off-by: Jagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com> Reviewed-on: https://chromium-review.googlesource.com/961381 Reviewed-by: Divya S Sasidharan <divya.s.sasidharan@intel.com> Reviewed-by: Duncan Laurie <dlaurie@google.com>
-rw-r--r--board/eve/board.h1
-rw-r--r--board/eve/gpio.inc2
-rw-r--r--board/eve/usb_pd_policy.c5
3 files changed, 5 insertions, 3 deletions
diff --git a/board/eve/board.h b/board/eve/board.h
index e277aa92a2..faa3ee3c1b 100644
--- a/board/eve/board.h
+++ b/board/eve/board.h
@@ -171,7 +171,6 @@
#define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2
#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/eve/gpio.inc b/board/eve/gpio.inc
index fe10d3cdee..f9b0c3cfc4 100644
--- a/board/eve/gpio.inc
+++ b/board/eve/gpio.inc
@@ -84,7 +84,7 @@ 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(USB_C1_TCPC_PWR, PIN(0, 0), GPIO_OUT_LOW) /* Enable C1 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 */
/* Board ID */
diff --git a/board/eve/usb_pd_policy.c b/board/eve/usb_pd_policy.c
index 1d5540aac1..8dc3de611d 100644
--- a/board/eve/usb_pd_policy.c
+++ b/board/eve/usb_pd_policy.c
@@ -191,7 +191,10 @@ int pd_check_vconn_swap(int port)
void pd_execute_data_swap(int port, int data_role)
{
- /* Do nothing */
+ 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)