diff options
Diffstat (limited to 'board/fruitpie/usb_pd_config.h')
-rw-r--r-- | board/fruitpie/usb_pd_config.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/board/fruitpie/usb_pd_config.h b/board/fruitpie/usb_pd_config.h index acf0f6f6ca..e2f184f9d9 100644 --- a/board/fruitpie/usb_pd_config.h +++ b/board/fruitpie/usb_pd_config.h @@ -136,12 +136,27 @@ static inline void pd_set_host_mode(int port, int enable) * Initialize various GPIOs and interfaces to safe state at start of pd_task. * * These include: + * VBUS, charge path based on power role. + * Physical layer CC transmit. * VCONNs disabled. * - * @param port USB-C port number + * @param port USB-C port number + * @param power_role Power role of device */ -static inline void pd_config_init(int port) +static inline void pd_config_init(int port, uint8_t power_role) { + /* + * Set CC pull resistors, and charge_en and vbus_en GPIOs to match + * the initial role. + */ + pd_set_host_mode(port, power_role); + + /* Initialize TX pins and put them in Hi-Z */ + pd_tx_init(); + + /* Reset mux ... for NONE polarity doesn't matter */ + board_set_usb_mux(port, TYPEC_MUX_NONE, 0); + gpio_set_level(GPIO_VCONN1_EN, 0); gpio_set_level(GPIO_VCONN2_EN, 0); } |