summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/fruitpie/usb_pd_config.h10
-rw-r--r--board/fruitpie/usb_pd_policy.c6
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)