diff options
-rw-r--r-- | board/samus_pd/usb_pd_config.h | 6 | ||||
-rw-r--r-- | board/samus_pd/usb_pd_policy.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/board/samus_pd/usb_pd_config.h b/board/samus_pd/usb_pd_config.h index 767c104e71..d425984357 100644 --- a/board/samus_pd/usb_pd_config.h +++ b/board/samus_pd/usb_pd_config.h @@ -92,13 +92,19 @@ static inline void pd_tx_init(void) static inline void pd_set_host_mode(int enable) { if (enable) { + /* We never charging in power source mode */ + gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 1); /* High-Z is used for host mode. */ gpio_set_level(GPIO_USB_C0_CC1_ODL, 1); gpio_set_level(GPIO_USB_C0_CC2_ODL, 1); } else { + /* Kill VBUS power supply */ + gpio_set_level(GPIO_USB_C0_5V_EN, 0); /* Pull low for device mode. */ gpio_set_level(GPIO_USB_C0_CC1_ODL, 0); gpio_set_level(GPIO_USB_C0_CC2_ODL, 0); + /* Enable the charging path*/ + gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 0); } } diff --git a/board/samus_pd/usb_pd_policy.c b/board/samus_pd/usb_pd_policy.c index 3d6b30250c..ea5f2d1703 100644 --- a/board/samus_pd/usb_pd_policy.c +++ b/board/samus_pd/usb_pd_policy.c @@ -6,6 +6,7 @@ #include "board.h" #include "common.h" #include "console.h" +#include "gpio.h" #include "hooks.h" #include "registers.h" #include "task.h" @@ -106,11 +107,16 @@ int pd_request_voltage(uint32_t rdo) int pd_set_power_supply_ready(void) { + /* provide VBUS */ + gpio_set_level(GPIO_USB_C0_5V_EN, 1); + return EC_SUCCESS; /* we are ready */ } void pd_power_supply_reset(void) { + /* Kill VBUS */ + gpio_set_level(GPIO_USB_C0_5V_EN, 0); } int pd_board_checks(void) |