diff options
-rw-r--r-- | board/fruitpie/usb_pd_config.h | 10 | ||||
-rw-r--r-- | board/fruitpie/usb_pd_policy.c | 6 |
2 files changed, 16 insertions, 0 deletions
diff --git a/board/fruitpie/usb_pd_config.h b/board/fruitpie/usb_pd_config.h index efd702a284..f05b71c920 100644 --- a/board/fruitpie/usb_pd_config.h +++ b/board/fruitpie/usb_pd_config.h @@ -82,6 +82,16 @@ static inline void pd_tx_init(void) static inline void pd_set_host_mode(int enable) { + /* We never charging in power source mode */ + if (enable) { + gpio_set_level(GPIO_CHARGE_EN_L, 1); + } else { + /* Kill VBUS power supply */ + gpio_set_level(GPIO_USB_C_5V_EN, 0); + /* Enable the charging path*/ + gpio_set_level(GPIO_CHARGE_EN_L, 0); + } + gpio_set_level(GPIO_CC_HOST, enable); } diff --git a/board/fruitpie/usb_pd_policy.c b/board/fruitpie/usb_pd_policy.c index 8f1cde1c6e..9464b242be 100644 --- a/board/fruitpie/usb_pd_policy.c +++ b/board/fruitpie/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_C_5V_EN, 1); + return EC_SUCCESS; /* we are ready */ } void pd_power_supply_reset(void) { + /* Kill VBUS */ + gpio_set_level(GPIO_USB_C_5V_EN, 0); } int pd_board_checks(void) |