summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorDino Li <Dino.Li@ite.com.tw>2017-06-29 15:37:33 +0800
committerchrome-bot <chrome-bot@chromium.org>2017-06-29 22:01:13 -0700
commitdc53959997a0ae25ea96d3ce89822305882efbf0 (patch)
tree4a8accf0a990d6784d25c0b5f500d3a6f60eb3cb /driver
parenta48908f07aaa6b9c913c31319e26573ca3e4690e (diff)
downloadchrome-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.c12
-rw-r--r--driver/tcpm/it83xx_pd.h11
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;