usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info
authorBiju Das <biju.das.jz@bp.renesas.com>
Wed, 6 Sep 2023 08:06:17 +0000 (09:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Oct 2023 11:56:08 +0000 (13:56 +0200)
The RT1715 needs 0.35V/0.75V rx threshold for rd/rp whereas it is 0.4V/0.7V
for RT1711H. Add rxdz_sel variable to struct rt1711h_chip_info for
handling this difference.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20230906080619.36930-4-biju.das.jz@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpci_rt1711h.c

index 2b7258d..40822ba 100644 (file)
@@ -52,6 +52,7 @@
 #define BMCIO_RXDZEN   BIT(0)
 
 struct rt1711h_chip_info {
+       u32 rxdz_sel;
        u16 did;
 };
 
@@ -204,10 +205,7 @@ static inline int rt1711h_init_cc_params(struct rt1711h_chip *chip, u8 status)
        if ((cc1 >= TYPEC_CC_RP_1_5 && cc2 < TYPEC_CC_RP_DEF) ||
            (cc2 >= TYPEC_CC_RP_1_5 && cc1 < TYPEC_CC_RP_DEF)) {
                rxdz_en = BMCIO_RXDZEN;
-               if (chip->info->did == RT1715_DID)
-                       rxdz_sel = RT1711H_BMCIO_RXDZSEL;
-               else
-                       rxdz_sel = 0;
+               rxdz_sel = chip->info->rxdz_sel;
        } else {
                rxdz_en = 0;
                rxdz_sel = RT1711H_BMCIO_RXDZSEL;
@@ -400,6 +398,7 @@ static const struct rt1711h_chip_info rt1711h = {
 };
 
 static const struct rt1711h_chip_info rt1715 = {
+       .rxdz_sel = RT1711H_BMCIO_RXDZSEL,
        .did = RT1715_DID,
 };