diff options
author | Keith Short <keithshort@chromium.org> | 2020-11-16 17:52:40 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-18 00:13:24 +0000 |
commit | ef1ebb6ee64a3e070057c50d87046a095971ccc5 (patch) | |
tree | 23ac0ce48a3a92b60e583fcf9b4cd4828a0d7cfc | |
parent | 4ffec8ecbdf9eef45daf8de1adbdf556d5d2688e (diff) | |
download | chrome-ec-ef1ebb6ee64a3e070057c50d87046a095971ccc5.tar.gz |
tcpc: Cleanup usage of tcpci_set_role_ctrl()
Cleanup arguments for tcpci_set_role_ctrl().
BUG=b:171430855
BRANCH=firmware-volteer-13521.B-master
TEST=make buildall
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: Ib58defb5f9bcd3c3fe3d7de4239aa19e5545b778
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2544802
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r-- | driver/tcpm/fusb307.c | 2 | ||||
-rw-r--r-- | driver/tcpm/ps8xxx.c | 3 | ||||
-rw-r--r-- | driver/tcpm/tcpci.c | 13 | ||||
-rw-r--r-- | driver/tcpm/tcpci.h | 8 | ||||
-rw-r--r-- | include/usb_pd_tcpm.h | 6 |
5 files changed, 22 insertions, 10 deletions
diff --git a/driver/tcpm/fusb307.c b/driver/tcpm/fusb307.c index 9a578637a9..749aaaa139 100644 --- a/driver/tcpm/fusb307.c +++ b/driver/tcpm/fusb307.c @@ -28,7 +28,7 @@ static int fusb307_tcpm_init(int port) rv = tcpci_tcpm_init(port); - rv = tcpci_set_role_ctrl(port, 1, TYPEC_RP_USB, TYPEC_CC_RD); + rv = tcpci_set_role_ctrl(port, TYPEC_DRP, TYPEC_RP_USB, TYPEC_CC_RD); pd_set_dual_role(port, PD_DRP_TOGGLE_ON); return rv; diff --git a/driver/tcpm/ps8xxx.c b/driver/tcpm/ps8xxx.c index 4d1a8e9d22..ebfe43d916 100644 --- a/driver/tcpm/ps8xxx.c +++ b/driver/tcpm/ps8xxx.c @@ -376,7 +376,8 @@ static int ps8xxx_tcpc_drp_toggle(int port) } /* Set auto drp toggle, starting with the opposite pull */ - rv |= tcpci_set_role_ctrl(port, 1, TYPEC_RP_USB, opposite_pull); + rv |= tcpci_set_role_ctrl(port, TYPEC_DRP, TYPEC_RP_USB, + opposite_pull); /* Set Look4Connection command */ rv |= tcpc_write(port, TCPC_REG_COMMAND, diff --git a/driver/tcpm/tcpci.c b/driver/tcpm/tcpci.c index a311abd0df..f3c887b365 100644 --- a/driver/tcpm/tcpci.c +++ b/driver/tcpm/tcpci.c @@ -492,7 +492,7 @@ int tcpci_tcpm_get_cc(int port, enum tcpc_cc_voltage_status *cc1, int tcpci_tcpm_set_cc(int port, int pull) { - int role = TCPC_REG_ROLE_CTRL_SET(0, + int role = TCPC_REG_ROLE_CTRL_SET(TYPEC_NO_DRP, tcpci_get_cached_rp(port), pull, pull); @@ -503,13 +503,14 @@ int tcpci_tcpm_set_cc(int port, int pull) } #ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE -int tcpci_set_role_ctrl(int port, int toggle, int rp, int pull) +int tcpci_set_role_ctrl(int port, enum tcpc_drp drp, enum tcpc_rp_value rp, + enum tcpc_cc_pull pull) { - int role = TCPC_REG_ROLE_CTRL_SET(toggle, rp, pull, pull); + int role = TCPC_REG_ROLE_CTRL_SET(drp, rp, pull, pull); if (IS_ENABLED(DEBUG_ROLE_CTRL_UPDATES)) - CPRINTS("C%d: SET_ROLE_CTRL toggle=%d rp=%d pull=%d role=0x%X", - port, toggle, rp, pull, role); + CPRINTS("C%d: SET_ROLE_CTRL drp=%d rp=%d pull=%d role=0x%X", + port, drp, rp, pull, role); return tcpc_write(port, TCPC_REG_ROLE_CTRL, role); } @@ -535,7 +536,7 @@ int tcpci_tcpc_drp_toggle(int port) pull = (tcpc_config[port].flags & TCPC_FLAGS_TCPCI_REV2_0) ? TYPEC_CC_RP : TYPEC_CC_RD; - rv = tcpci_set_role_ctrl(port, 1, TYPEC_RP_USB, pull); + rv = tcpci_set_role_ctrl(port, TYPEC_DRP, TYPEC_RP_USB, pull); if (rv) return rv; diff --git a/driver/tcpm/tcpci.h b/driver/tcpm/tcpci.h index db05c978e8..a8aa7774c4 100644 --- a/driver/tcpm/tcpci.h +++ b/driver/tcpm/tcpci.h @@ -73,7 +73,10 @@ #define TCPC_REG_ROLE_CTRL_CC2_MASK (BIT(3)|BIT(2)) #define TCPC_REG_ROLE_CTRL_CC1_MASK (BIT(1)|BIT(0)) #define TCPC_REG_ROLE_CTRL_SET(drp, rp, cc1, cc2) \ - ((drp) << 6 | (rp) << 4 | (cc2) << 2 | (cc1)) + ((((drp) << 6) & TCPC_REG_ROLE_CTRL_DRP_MASK) | \ + (((rp) << 4) & TCPC_REG_ROLE_CTRL_RP_MASK) | \ + (((cc2) << 2) & TCPC_REG_ROLE_CTRL_CC2_MASK) | \ + ((cc1) & TCPC_REG_ROLE_CTRL_CC1_MASK)) #define TCPC_REG_ROLE_CTRL_DRP(reg) \ (((reg) & TCPC_REG_ROLE_CTRL_DRP_MASK) >> 6) #define TCPC_REG_ROLE_CTRL_RP(reg) \ @@ -230,7 +233,8 @@ int tcpci_tcpm_transmit(int port, enum tcpm_transmit_type type, uint16_t header, const uint32_t *data); int tcpci_tcpm_release(int port); #ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE -int tcpci_set_role_ctrl(int port, int toggle, int rp, int pull); +int tcpci_set_role_ctrl(int port, enum tcpc_drp drp, enum tcpc_rp_value rp, + enum tcpc_cc_pull pull); int tcpci_tcpc_drp_toggle(int port); #endif #ifdef CONFIG_USB_PD_TCPC_LOW_POWER diff --git a/include/usb_pd_tcpm.h b/include/usb_pd_tcpm.h index 54122fdc5e..bd4b29ddba 100644 --- a/include/usb_pd_tcpm.h +++ b/include/usb_pd_tcpm.h @@ -47,6 +47,12 @@ enum tcpc_rp_value { TYPEC_RP_RESERVED = 3, }; +/* DRP (dual-role-power) setting */ +enum tcpc_drp { + TYPEC_NO_DRP = 0, + TYPEC_DRP = 1, +}; + /** * Returns whether the polarity without the DTS extension */ |