diff options
Diffstat (limited to 'driver/tcpm')
-rw-r--r-- | driver/tcpm/nct38xx.c | 5 | ||||
-rw-r--r-- | driver/tcpm/rt1718s.c | 6 | ||||
-rw-r--r-- | driver/tcpm/rt1718s.h | 9 |
3 files changed, 13 insertions, 7 deletions
diff --git a/driver/tcpm/nct38xx.c b/driver/tcpm/nct38xx.c index 120749fb62..3c4565cfd5 100644 --- a/driver/tcpm/nct38xx.c +++ b/driver/tcpm/nct38xx.c @@ -115,11 +115,6 @@ static int nct38xx_init(int port) /* Set FRS direction for SNK detect, if FRS is enabled */ if (tcpm_tcpc_has_frs_control(port)) { - reg = TCPC_REG_DEV_CAP_2_SNK_FR_SWAP; - rv = tcpc_write(port, TCPC_REG_DEV_CAP_2, reg); - if (rv) - return rv; - reg = TCPC_REG_CONFIG_EXT_1_FR_SWAP_SNK_DIR; rv = tcpc_write(port, TCPC_REG_CONFIG_EXT_1, reg); if (rv) diff --git a/driver/tcpm/rt1718s.c b/driver/tcpm/rt1718s.c index 3d4303a8b7..e8ee85368a 100644 --- a/driver/tcpm/rt1718s.c +++ b/driver/tcpm/rt1718s.c @@ -7,6 +7,7 @@ * RT1718S TCPC Driver */ +#include "battery.h" #include "console.h" #include "driver/tcpm/rt1718s.h" #include "driver/tcpm/tcpci.h" @@ -261,6 +262,11 @@ static int rt1718s_init(int port) { static bool need_sw_reset = true; + /* Do not reset the TCPC when device is no battery connected, otherwise + * the SINK GPIO to the PPC may be reset, and cause a brown-out. + */ + need_sw_reset &= battery_is_present() == BP_YES; + if (!system_jumped_late() && need_sw_reset) { RETURN_ERROR(rt1718s_sw_reset(port)); need_sw_reset = false; diff --git a/driver/tcpm/rt1718s.h b/driver/tcpm/rt1718s.h index 76bbfd48a8..d14e2bd498 100644 --- a/driver/tcpm/rt1718s.h +++ b/driver/tcpm/rt1718s.h @@ -92,9 +92,14 @@ #define RT1718S_ENA_SRC_VBUS_CTRL 0xE1 #define RT1718S_FAULT_OC1_VBUS_CTRL 0xE3 #define RT1718S_GPIO1_VBUS_CTRL 0xEA -#define RT1718S_GPIO1_VBUS_CTRL_FRS_RX_VBUS BIT(6) +#define RT1718S_GPIO_VBUS_CTRL_FRS_RX_VBUS BIT(6) +#define RT1718S_GPIO_VBUS_CTRL_FRS_TX_VBUS BIT(5) +#define RT1718S_GPIO_VBUS_CTRL_ENA_SRC_HV_VBUS_GPIO BIT(4) +#define RT1718S_GPIO_VBUS_CTRL_ENA_SRC_VBUS_GPIO BIT(3) +#define RT1718S_GPIO_VBUS_CTRL_DIS_SRC_VBUS_GPIO BIT(2) +#define RT1718S_GPIO_VBUS_CTRL_ENA_SNK_VBUS_GPIO BIT(1) +#define RT1718S_GPIO_VBUS_CTRL_DIS_SNK_VBUS_GPIO BIT(0) #define RT1718S_GPIO2_VBUS_CTRL 0xEB -#define RT1718S_GPIO2_VBUS_CTRL_FRS_RX_VBUS BIT(6) #define RT1718S_VBUS_CTRL_EN 0xEC #define RT1718S_VBUS_CTRL_EN_GPIO2_VBUS_PATH_EN BIT(7) #define RT1718S_VBUS_CTRL_EN_GPIO1_VBUS_PATH_EN BIT(6) |