diff options
author | Dino Li <Dino.Li@ite.com.tw> | 2017-06-29 15:37:33 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-06-29 22:01:13 -0700 |
commit | dc53959997a0ae25ea96d3ce89822305882efbf0 (patch) | |
tree | 4a8accf0a990d6784d25c0b5f500d3a6f60eb3cb /driver | |
parent | a48908f07aaa6b9c913c31319e26573ca3e4690e (diff) | |
download | chrome-ec-dc53959997a0ae25ea96d3ce89822305882efbf0.tar.gz |
tcpm: it83xx: Use pd common code macro to analyze message header
Use existed macro instead of creating new one.
BRANCH=none
BUG=none
TEST=plug USB-C power adapter and USB-C to hdmi adapter, both work.
Change-Id: I133142232ac6abfa7f285c289eb03c4d65e84d5f
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Reviewed-on: https://chromium-review.googlesource.com/554655
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/tcpm/it83xx.c | 12 | ||||
-rw-r--r-- | driver/tcpm/it83xx_pd.h | 11 |
2 files changed, 5 insertions, 18 deletions
diff --git a/driver/tcpm/it83xx.c b/driver/tcpm/it83xx.c index f5e78bbbb9..e1593b0d89 100644 --- a/driver/tcpm/it83xx.c +++ b/driver/tcpm/it83xx.c @@ -95,18 +95,16 @@ static enum tcpc_cc_voltage_status it83xx_get_cc( static int it83xx_rx_data(enum usbpd_port port, int *head, uint32_t *buf) { - struct usbpd_header *p_head = (struct usbpd_header *)head; + int cnt = PD_HEADER_CNT(IT83XX_USBPD_RMH(port)); if (!USBPD_IS_RX_DONE(port)) return EC_ERROR_UNKNOWN; /* store header */ - *p_head = *((struct usbpd_header *)IT83XX_USBPD_RMH_BASE(port)); + *head = IT83XX_USBPD_RMH(port); /* check data message */ - if (p_head->data_obj_num) - memcpy(buf, - (uint8_t *)IT83XX_USBPD_RDO_BASE(port), - p_head->data_obj_num * 4); + if (cnt) + memcpy(buf, (uint32_t *)&IT83XX_USBPD_RDO0(port), cnt * 4); /* * Note: clear RX done interrupt after get the data. * If clear this bit, USBPD receives next packet @@ -148,7 +146,7 @@ static enum tcpc_transmit_complete it83xx_tx_data( /* set data length setting */ IT83XX_USBPD_MTSR1(port) |= length; /* set data */ - memcpy((uint8_t *)IT83XX_USBPD_TDO_BASE(port), buf, length * 4); + memcpy((uint32_t *)&IT83XX_USBPD_TDO(port), buf, length * 4); } for (r = 0; r <= PD_RETRY_COUNT; r++) { diff --git a/driver/tcpm/it83xx_pd.h b/driver/tcpm/it83xx_pd.h index 0702b24b84..976a4f4f39 100644 --- a/driver/tcpm/it83xx_pd.h +++ b/driver/tcpm/it83xx_pd.h @@ -89,17 +89,6 @@ enum usbpd_power_role { USBPD_POWER_ROLE_PROVIDER_CONSUMER, }; -struct usbpd_header { - uint8_t msg_type : 4; - uint8_t reserved : 1; - uint8_t port_role : 1; - uint8_t spec_ver : 2; - uint8_t power_role : 1; - uint8_t msg_id : 3; - uint8_t data_obj_num : 3; - uint8_t reserved2 : 1; -}; - struct usbpd_ctrl_t { volatile uint8_t *cc1; volatile uint8_t *cc2; |