Re: [PATCH v3 6/7] usb: typec: tcpci: Move function "tcpci_to_typec_cc" to common

From: Heikki Krogerus
Date: Tue Aug 02 2022 - 04:32:40 EST


On Mon, Aug 01, 2022 at 06:14:46PM +0800, Gene Chen wrote:
> From: Gene Chen <gene_chen@xxxxxxxxxxx>
>
> Move transition function "tcpci_to_typec_cc" to common header
>
> Signed-off-by: Gene Chen <gene_chen@xxxxxxxxxxx>

Acked-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>

> ---
> drivers/usb/typec/tcpm/tcpci.c | 22 ----------------------
> drivers/usb/typec/tcpm/tcpci.h | 23 +++++++++++++++++++++++
> 2 files changed, 23 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
> index f33e08eb7670..0f45d456df32 100644
> --- a/drivers/usb/typec/tcpm/tcpci.c
> +++ b/drivers/usb/typec/tcpm/tcpci.c
> @@ -28,11 +28,6 @@
> #define VPPS_VALID_MIN_MV 100
> #define VSINKDISCONNECT_PD_MIN_PERCENT 90
>
> -#define tcpc_presenting_rd(reg, cc) \
> - (!(TCPC_ROLE_CTRL_DRP & (reg)) && \
> - (((reg) & (TCPC_ROLE_CTRL_## cc ##_MASK << TCPC_ROLE_CTRL_## cc ##_SHIFT)) == \
> - (TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_## cc ##_SHIFT)))
> -
> struct tcpci {
> struct device *dev;
>
> @@ -219,23 +214,6 @@ static int tcpci_start_toggling(struct tcpc_dev *tcpc,
> TCPC_CMD_LOOK4CONNECTION);
> }
>
> -static enum typec_cc_status tcpci_to_typec_cc(unsigned int cc, bool sink)
> -{
> - switch (cc) {
> - case 0x1:
> - return sink ? TYPEC_CC_RP_DEF : TYPEC_CC_RA;
> - case 0x2:
> - return sink ? TYPEC_CC_RP_1_5 : TYPEC_CC_RD;
> - case 0x3:
> - if (sink)
> - return TYPEC_CC_RP_3_0;
> - fallthrough;
> - case 0x0:
> - default:
> - return TYPEC_CC_OPEN;
> - }
> -}
> -
> static int tcpci_get_cc(struct tcpc_dev *tcpc,
> enum typec_cc_status *cc1, enum typec_cc_status *cc2)
> {
> diff --git a/drivers/usb/typec/tcpm/tcpci.h b/drivers/usb/typec/tcpm/tcpci.h
> index b2edd45f13c6..3f45cb0426df 100644
> --- a/drivers/usb/typec/tcpm/tcpci.h
> +++ b/drivers/usb/typec/tcpm/tcpci.h
> @@ -166,6 +166,11 @@
> /* I2C_WRITE_BYTE_COUNT + 1 when TX_BUF_BYTE_x is only accessible I2C_WRITE_BYTE_COUNT */
> #define TCPC_TRANSMIT_BUFFER_MAX_LEN 31
>
> +#define tcpc_presenting_rd(reg, cc) \
> + (!(TCPC_ROLE_CTRL_DRP & (reg)) && \
> + (((reg) & (TCPC_ROLE_CTRL_## cc ##_MASK << TCPC_ROLE_CTRL_## cc ##_SHIFT)) == \
> + (TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_## cc ##_SHIFT)))
> +
> struct tcpci;
>
> /*
> @@ -206,4 +211,22 @@ irqreturn_t tcpci_irq(struct tcpci *tcpci);
>
> struct tcpm_port;
> struct tcpm_port *tcpci_get_tcpm_port(struct tcpci *tcpci);
> +
> +static inline enum typec_cc_status tcpci_to_typec_cc(unsigned int cc, bool sink)
> +{
> + switch (cc) {
> + case 0x1:
> + return sink ? TYPEC_CC_RP_DEF : TYPEC_CC_RA;
> + case 0x2:
> + return sink ? TYPEC_CC_RP_1_5 : TYPEC_CC_RD;
> + case 0x3:
> + if (sink)
> + return TYPEC_CC_RP_3_0;
> + fallthrough;
> + case 0x0:
> + default:
> + return TYPEC_CC_OPEN;
> + }
> +}
> +
> #endif /* __LINUX_USB_TCPCI_H */
> --
> 2.25.1

--
heikki