diff options
Diffstat (limited to 'driver')
-rw-r--r-- | driver/tcpm/it83xx.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/driver/tcpm/it83xx.c b/driver/tcpm/it83xx.c index 2a46c18cbf..258ab78c87 100644 --- a/driver/tcpm/it83xx.c +++ b/driver/tcpm/it83xx.c @@ -128,16 +128,17 @@ static int it83xx_rx_data(enum usbpd_port port, int *head, uint32_t *buf) static enum tcpc_transmit_complete it83xx_tx_data( enum usbpd_port port, enum tcpm_transmit_type type, - uint8_t msg_type, - uint8_t length, + uint16_t header, const uint32_t *buf) { int r; uint32_t evt; + uint8_t length = PD_HEADER_CNT(header); + + /* set message header */ + IT83XX_USBPD_TMHLR(port) = (uint8_t)header; + IT83XX_USBPD_TMHHR(port) = (header >> 8); - /* set message type */ - IT83XX_USBPD_MTSR0(port) = - (IT83XX_USBPD_MTSR0(port) & ~0x1f) | (msg_type & 0xf); /* * SOP type bit[6~4]: * on bx version and before: @@ -286,8 +287,8 @@ static void it83xx_init(enum usbpd_port port, int role) { /* bit7: Reload CC parameter setting. */ IT83XX_USBPD_CCPSR0(port) |= (1 << 7); - /* reset */ - IT83XX_USBPD_GCR(port) = 0; + /* reset and disable HW auto generate message header */ + IT83XX_USBPD_GCR(port) = (1 << 5); USBPD_SW_RESET(port); /* set SOP: receive SOP message only. * bit[7]: SOP" support enable. @@ -498,8 +499,7 @@ static int it83xx_tcpm_transmit(int port, case TCPC_TX_SOP_DEBUG_PRIME_PRIME: status = it83xx_tx_data(port, type, - PD_HEADER_TYPE(header), - PD_HEADER_CNT(header), + header, data); break; case TCPC_TX_BIST_MODE_2: |