diff options
Diffstat (limited to 'driver/tcpm/it8xxx2.c')
-rw-r--r-- | driver/tcpm/it8xxx2.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/driver/tcpm/it8xxx2.c b/driver/tcpm/it8xxx2.c index 50339393f6..1cfa184a11 100644 --- a/driver/tcpm/it8xxx2.c +++ b/driver/tcpm/it8xxx2.c @@ -750,9 +750,6 @@ static void it83xx_init(enum usbpd_port port, int role) it83xx_set_power_role(port, role); /* Disable vconn: connect cc analog module, disable cc 5v tolerant */ it83xx_enable_vconn(port, 0); - /* Disconnect CC with 5.1K DB resister to GND */ - IT83XX_USBPD_CCPSR(port) |= (USBPD_REG_MASK_DISCONNECT_5_1K_CC2_DB | - USBPD_REG_MASK_DISCONNECT_5_1K_CC1_DB); /* Enable tx done and hard reset detect interrupt */ IT83XX_USBPD_IMR(port) &= ~(USBPD_REG_MASK_MSG_TX_DONE | USBPD_REG_MASK_HARD_RESET_DETECT); @@ -774,6 +771,13 @@ static void it83xx_init(enum usbpd_port port, int role) task_clear_pending_irq(usbpd_ctrl_regs[port].irq); task_enable_irq(usbpd_ctrl_regs[port].irq); USBPD_START(port); + /* + * Disconnect CCs Rd_DB from GND + * NOTE: CCs assert both Rd_5.1k and Rd_DB from USBPD_START() to + * disconnect Rd_DB about 1.5us. + */ + IT83XX_USBPD_CCPSR(port) |= (USBPD_REG_MASK_DISCONNECT_5_1K_CC2_DB | + USBPD_REG_MASK_DISCONNECT_5_1K_CC1_DB); } static int it83xx_tcpm_init(int port) |