diff options
Diffstat (limited to 'board/poppy')
-rw-r--r-- | board/poppy/board.h | 1 | ||||
-rw-r--r-- | board/poppy/gpio.inc | 2 | ||||
-rw-r--r-- | board/poppy/usb_pd_policy.c | 9 |
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) |