static void anx74xx_set_power_mode(int port, int mode) { switch (mode) { case ANX74XX_NORMAL_MODE: /* Set PWR_EN and RST_N GPIO pins high */ board_set_tcpc_power_mode(port, 1); break; case ANX74XX_STANDBY_MODE: /* Disable PWR_EN, keep Digital and analog block * ON for cable detection */ board_set_tcpc_power_mode(port, 0); break; default: break; } }
/** * Reset PD MCU -- currently only called from handle_pending_reboot() in * common/power.c just before hard resetting the system. This logic is likely * not needed as the PP3300_A rail should be dropped on EC reset. */ void board_reset_pd_mcu(void) { /* Assert reset to TCPC1 */ gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 0); /* Assert reset to TCPC0 */ board_set_tcpc_power_mode(0, 0); /* Deassert reset to TCPC1 */ gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 1); /* TCPC0 requires 10ms reset/power down assertion */ msleep(10); /* Deassert reset to TCPC0 */ board_set_tcpc_power_mode(0, 1); }