summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
Diffstat (limited to 'driver')
-rw-r--r--driver/tcpm/it83xx.c18
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: