2022-08-01 10:40:31

by Gene Chen

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

From: Gene Chen <[email protected]>

Move transition function "tcpci_to_typec_cc" to common header

Signed-off-by: Gene Chen <[email protected]>
---
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



2022-08-02 08:45:15

by Heikki Krogerus

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

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

Acked-by: Heikki Krogerus <[email protected]>

> ---
> 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