summaryrefslogtreecommitdiff
path: root/board/poppy
diff options
context:
space:
mode:
Diffstat (limited to 'board/poppy')
-rw-r--r--board/poppy/board.h1
-rw-r--r--board/poppy/gpio.inc2
-rw-r--r--board/poppy/usb_pd_policy.c9
3 files changed, 9 insertions, 3 deletions
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)