* [PATCH v3 1/5] usb: typec: tcpci_rt1711h: Remove trailing comma in the terminator entry for OF table
2023-09-06 8:06 [PATCH v3 0/5] Match data improvements for rt1711h driver Biju Das
@ 2023-09-06 8:06 ` Biju Das
2023-09-08 8:20 ` Heikki Krogerus
2023-09-06 8:06 ` [PATCH v3 2/5] usb: typec: tcpci_rt1711h: Convert enum->pointer for data in the match tables Biju Das
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Biju Das @ 2023-09-06 8:06 UTC (permalink / raw)
To: Guenter Roeck, Heikki Krogerus
Cc: Biju Das, Greg Kroah-Hartman, linux-usb, linux-kernel, Biju Das,
Andy Shevchenko
Remove trailing comma in the terminator entry for OF table.
While at it, drop a space in the terminator for ID table.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2->v3:
* Dropped updating I2C driver data in ID table as there is no user yet.
* Updated commit header and description.
* Added Rb tag from Andy.
* Retained the Rb tag as it is trivial change.
v1->v2:
* Drop space from ID table
* Remove trailing comma in the terminator entry for OF table.
---
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index 17ebc5fb684f..6146bca8e55f 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -394,7 +394,7 @@ static void rt1711h_remove(struct i2c_client *client)
static const struct i2c_device_id rt1711h_id[] = {
{ "rt1711h", 0 },
{ "rt1715", 0 },
- { }
+ {}
};
MODULE_DEVICE_TABLE(i2c, rt1711h_id);
@@ -402,7 +402,7 @@ MODULE_DEVICE_TABLE(i2c, rt1711h_id);
static const struct of_device_id rt1711h_of_match[] = {
{ .compatible = "richtek,rt1711h", .data = (void *)RT1711H_DID },
{ .compatible = "richtek,rt1715", .data = (void *)RT1715_DID },
- {},
+ {}
};
MODULE_DEVICE_TABLE(of, rt1711h_of_match);
#endif
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v3 1/5] usb: typec: tcpci_rt1711h: Remove trailing comma in the terminator entry for OF table
2023-09-06 8:06 ` [PATCH v3 1/5] usb: typec: tcpci_rt1711h: Remove trailing comma in the terminator entry for OF table Biju Das
@ 2023-09-08 8:20 ` Heikki Krogerus
0 siblings, 0 replies; 11+ messages in thread
From: Heikki Krogerus @ 2023-09-08 8:20 UTC (permalink / raw)
To: Biju Das
Cc: Guenter Roeck, Greg Kroah-Hartman, linux-usb, linux-kernel,
Biju Das, Andy Shevchenko
On Wed, Sep 06, 2023 at 09:06:15AM +0100, Biju Das wrote:
> Remove trailing comma in the terminator entry for OF table.
> While at it, drop a space in the terminator for ID table.
>
> 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>
> ---
> v2->v3:
> * Dropped updating I2C driver data in ID table as there is no user yet.
> * Updated commit header and description.
> * Added Rb tag from Andy.
> * Retained the Rb tag as it is trivial change.
> v1->v2:
> * Drop space from ID table
> * Remove trailing comma in the terminator entry for OF table.
> ---
> drivers/usb/typec/tcpm/tcpci_rt1711h.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> index 17ebc5fb684f..6146bca8e55f 100644
> --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> @@ -394,7 +394,7 @@ static void rt1711h_remove(struct i2c_client *client)
> static const struct i2c_device_id rt1711h_id[] = {
> { "rt1711h", 0 },
> { "rt1715", 0 },
> - { }
> + {}
> };
> MODULE_DEVICE_TABLE(i2c, rt1711h_id);
>
> @@ -402,7 +402,7 @@ MODULE_DEVICE_TABLE(i2c, rt1711h_id);
> static const struct of_device_id rt1711h_of_match[] = {
> { .compatible = "richtek,rt1711h", .data = (void *)RT1711H_DID },
> { .compatible = "richtek,rt1715", .data = (void *)RT1715_DID },
> - {},
> + {}
> };
> MODULE_DEVICE_TABLE(of, rt1711h_of_match);
> #endif
> --
> 2.25.1
--
heikki
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 2/5] usb: typec: tcpci_rt1711h: Convert enum->pointer for data in the match tables
2023-09-06 8:06 [PATCH v3 0/5] Match data improvements for rt1711h driver Biju Das
2023-09-06 8:06 ` [PATCH v3 1/5] usb: typec: tcpci_rt1711h: Remove trailing comma in the terminator entry for OF table Biju Das
@ 2023-09-06 8:06 ` Biju Das
2023-09-08 8:48 ` Heikki Krogerus
2023-09-06 8:06 ` [PATCH v3 3/5] usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info Biju Das
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Biju Das @ 2023-09-06 8:06 UTC (permalink / raw)
To: Guenter Roeck, Heikki Krogerus
Cc: Biju Das, Greg Kroah-Hartman, linux-usb, linux-kernel, Biju Das,
Andy Shevchenko
Currently did varaible is used for HW differences between the devices which
complicates the code by adding checks.
Therefore it is better to convert enum->pointer for data match and extend
match support for both ID and OF tables by using i2c_get_match_data().
Add struct rt1711h_chip_info with did variable and replace did->info in
struct rt1711h_chip. Later patch will add more hw differences to
struct rt1711h_chip_info and avoid checking did for HW differences.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2->v3:
* Added Rb tag from Andy.
v1->v2:
* Updated commit description.
---
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 30 ++++++++++++++++++--------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index 6146bca8e55f..2b7258d3cb4e 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -51,13 +51,17 @@
/* 1b0 as fixed rx threshold of rd/rp 0.55V, 1b1 depends on RTCRTL4[0] */
#define BMCIO_RXDZEN BIT(0)
+struct rt1711h_chip_info {
+ u16 did;
+};
+
struct rt1711h_chip {
struct tcpci_data data;
struct tcpci *tcpci;
struct device *dev;
struct regulator *vbus;
+ const struct rt1711h_chip_info *info;
bool src_en;
- u16 did;
};
static int rt1711h_read16(struct rt1711h_chip *chip, unsigned int reg, u16 *val)
@@ -105,7 +109,7 @@ static int rt1711h_init(struct tcpci *tcpci, struct tcpci_data *tdata)
return ret;
/* Enable PD30 extended message for RT1715 */
- if (chip->did == RT1715_DID) {
+ if (chip->info->did == RT1715_DID) {
ret = regmap_update_bits(regmap, RT1711H_RTCTRL8,
RT1711H_ENEXTMSG, RT1711H_ENEXTMSG);
if (ret < 0)
@@ -200,7 +204,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->did == RT1715_DID)
+ if (chip->info->did == RT1715_DID)
rxdz_sel = RT1711H_BMCIO_RXDZSEL;
else
rxdz_sel = 0;
@@ -319,7 +323,7 @@ static int rt1711h_check_revision(struct i2c_client *i2c, struct rt1711h_chip *c
ret = i2c_smbus_read_word_data(i2c, TCPC_BCD_DEV);
if (ret < 0)
return ret;
- if (ret != chip->did) {
+ if (ret != chip->info->did) {
dev_err(&i2c->dev, "did is not correct, 0x%04x\n", ret);
return -ENODEV;
}
@@ -336,7 +340,7 @@ static int rt1711h_probe(struct i2c_client *client)
if (!chip)
return -ENOMEM;
- chip->did = (size_t)device_get_match_data(&client->dev);
+ chip->info = i2c_get_match_data(client);
ret = rt1711h_check_revision(client, chip);
if (ret < 0) {
@@ -391,17 +395,25 @@ static void rt1711h_remove(struct i2c_client *client)
tcpci_unregister_port(chip->tcpci);
}
+static const struct rt1711h_chip_info rt1711h = {
+ .did = RT1711H_DID,
+};
+
+static const struct rt1711h_chip_info rt1715 = {
+ .did = RT1715_DID,
+};
+
static const struct i2c_device_id rt1711h_id[] = {
- { "rt1711h", 0 },
- { "rt1715", 0 },
+ { "rt1711h", (kernel_ulong_t)&rt1711h },
+ { "rt1715", (kernel_ulong_t)&rt1715 },
{}
};
MODULE_DEVICE_TABLE(i2c, rt1711h_id);
#ifdef CONFIG_OF
static const struct of_device_id rt1711h_of_match[] = {
- { .compatible = "richtek,rt1711h", .data = (void *)RT1711H_DID },
- { .compatible = "richtek,rt1715", .data = (void *)RT1715_DID },
+ { .compatible = "richtek,rt1711h", .data = &rt1711h },
+ { .compatible = "richtek,rt1715", .data = &rt1715 },
{}
};
MODULE_DEVICE_TABLE(of, rt1711h_of_match);
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v3 2/5] usb: typec: tcpci_rt1711h: Convert enum->pointer for data in the match tables
2023-09-06 8:06 ` [PATCH v3 2/5] usb: typec: tcpci_rt1711h: Convert enum->pointer for data in the match tables Biju Das
@ 2023-09-08 8:48 ` Heikki Krogerus
0 siblings, 0 replies; 11+ messages in thread
From: Heikki Krogerus @ 2023-09-08 8:48 UTC (permalink / raw)
To: Biju Das
Cc: Guenter Roeck, Greg Kroah-Hartman, linux-usb, linux-kernel,
Biju Das, Andy Shevchenko
On Wed, Sep 06, 2023 at 09:06:16AM +0100, Biju Das wrote:
> Currently did varaible is used for HW differences between the devices which
> complicates the code by adding checks.
>
> Therefore it is better to convert enum->pointer for data match and extend
> match support for both ID and OF tables by using i2c_get_match_data().
>
> Add struct rt1711h_chip_info with did variable and replace did->info in
> struct rt1711h_chip. Later patch will add more hw differences to
> struct rt1711h_chip_info and avoid checking did for HW differences.
>
> 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>
> ---
> v2->v3:
> * Added Rb tag from Andy.
> v1->v2:
> * Updated commit description.
> ---
> drivers/usb/typec/tcpm/tcpci_rt1711h.c | 30 ++++++++++++++++++--------
> 1 file changed, 21 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> index 6146bca8e55f..2b7258d3cb4e 100644
> --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> @@ -51,13 +51,17 @@
> /* 1b0 as fixed rx threshold of rd/rp 0.55V, 1b1 depends on RTCRTL4[0] */
> #define BMCIO_RXDZEN BIT(0)
>
> +struct rt1711h_chip_info {
> + u16 did;
> +};
> +
> struct rt1711h_chip {
> struct tcpci_data data;
> struct tcpci *tcpci;
> struct device *dev;
> struct regulator *vbus;
> + const struct rt1711h_chip_info *info;
> bool src_en;
> - u16 did;
> };
>
> static int rt1711h_read16(struct rt1711h_chip *chip, unsigned int reg, u16 *val)
> @@ -105,7 +109,7 @@ static int rt1711h_init(struct tcpci *tcpci, struct tcpci_data *tdata)
> return ret;
>
> /* Enable PD30 extended message for RT1715 */
> - if (chip->did == RT1715_DID) {
> + if (chip->info->did == RT1715_DID) {
> ret = regmap_update_bits(regmap, RT1711H_RTCTRL8,
> RT1711H_ENEXTMSG, RT1711H_ENEXTMSG);
> if (ret < 0)
> @@ -200,7 +204,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->did == RT1715_DID)
> + if (chip->info->did == RT1715_DID)
> rxdz_sel = RT1711H_BMCIO_RXDZSEL;
> else
> rxdz_sel = 0;
> @@ -319,7 +323,7 @@ static int rt1711h_check_revision(struct i2c_client *i2c, struct rt1711h_chip *c
> ret = i2c_smbus_read_word_data(i2c, TCPC_BCD_DEV);
> if (ret < 0)
> return ret;
> - if (ret != chip->did) {
> + if (ret != chip->info->did) {
> dev_err(&i2c->dev, "did is not correct, 0x%04x\n", ret);
> return -ENODEV;
> }
> @@ -336,7 +340,7 @@ static int rt1711h_probe(struct i2c_client *client)
> if (!chip)
> return -ENOMEM;
>
> - chip->did = (size_t)device_get_match_data(&client->dev);
> + chip->info = i2c_get_match_data(client);
>
> ret = rt1711h_check_revision(client, chip);
> if (ret < 0) {
> @@ -391,17 +395,25 @@ static void rt1711h_remove(struct i2c_client *client)
> tcpci_unregister_port(chip->tcpci);
> }
>
> +static const struct rt1711h_chip_info rt1711h = {
> + .did = RT1711H_DID,
> +};
> +
> +static const struct rt1711h_chip_info rt1715 = {
> + .did = RT1715_DID,
> +};
> +
> static const struct i2c_device_id rt1711h_id[] = {
> - { "rt1711h", 0 },
> - { "rt1715", 0 },
> + { "rt1711h", (kernel_ulong_t)&rt1711h },
> + { "rt1715", (kernel_ulong_t)&rt1715 },
> {}
> };
> MODULE_DEVICE_TABLE(i2c, rt1711h_id);
>
> #ifdef CONFIG_OF
> static const struct of_device_id rt1711h_of_match[] = {
> - { .compatible = "richtek,rt1711h", .data = (void *)RT1711H_DID },
> - { .compatible = "richtek,rt1715", .data = (void *)RT1715_DID },
> + { .compatible = "richtek,rt1711h", .data = &rt1711h },
> + { .compatible = "richtek,rt1715", .data = &rt1715 },
> {}
> };
> MODULE_DEVICE_TABLE(of, rt1711h_of_match);
> --
> 2.25.1
--
heikki
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 3/5] usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info
2023-09-06 8:06 [PATCH v3 0/5] Match data improvements for rt1711h driver Biju Das
2023-09-06 8:06 ` [PATCH v3 1/5] usb: typec: tcpci_rt1711h: Remove trailing comma in the terminator entry for OF table Biju Das
2023-09-06 8:06 ` [PATCH v3 2/5] usb: typec: tcpci_rt1711h: Convert enum->pointer for data in the match tables Biju Das
@ 2023-09-06 8:06 ` Biju Das
2023-09-08 8:49 ` Heikki Krogerus
2023-09-06 8:06 ` [PATCH v3 4/5] usb: typec: tcpci_rt1711h: Add enable_pd30_extended_message " Biju Das
2023-09-06 8:06 ` [PATCH v3 5/5] usb: typec: tcpci_rt1711h: Drop CONFIG_OF ifdeffery Biju Das
4 siblings, 1 reply; 11+ messages in thread
From: Biju Das @ 2023-09-06 8:06 UTC (permalink / raw)
To: Guenter Roeck, Heikki Krogerus
Cc: Biju Das, Greg Kroah-Hartman, linux-usb, linux-kernel, Biju Das,
Andy Shevchenko
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>
---
v2->v3:
* Added Rb tag from Andy.
v1->v2:
* Swapped the rxdz_sel variable in struct rt1711h_chip_info to avoid
holes.
---
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index 2b7258d3cb4e..40822bae9ae8 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -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,
};
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v3 3/5] usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info
2023-09-06 8:06 ` [PATCH v3 3/5] usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info Biju Das
@ 2023-09-08 8:49 ` Heikki Krogerus
0 siblings, 0 replies; 11+ messages in thread
From: Heikki Krogerus @ 2023-09-08 8:49 UTC (permalink / raw)
To: Biju Das
Cc: Guenter Roeck, Greg Kroah-Hartman, linux-usb, linux-kernel,
Biju Das, Andy Shevchenko
On Wed, Sep 06, 2023 at 09:06:17AM +0100, Biju Das wrote:
> 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>
> ---
> v2->v3:
> * Added Rb tag from Andy.
> v1->v2:
> * Swapped the rxdz_sel variable in struct rt1711h_chip_info to avoid
> holes.
> ---
> drivers/usb/typec/tcpm/tcpci_rt1711h.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> index 2b7258d3cb4e..40822bae9ae8 100644
> --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> @@ -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,
> };
>
> --
> 2.25.1
--
heikki
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 4/5] usb: typec: tcpci_rt1711h: Add enable_pd30_extended_message variable to struct rt1711h_chip_info
2023-09-06 8:06 [PATCH v3 0/5] Match data improvements for rt1711h driver Biju Das
` (2 preceding siblings ...)
2023-09-06 8:06 ` [PATCH v3 3/5] usb: typec: tcpci_rt1711h: Add rxdz_sel variable to struct rt1711h_chip_info Biju Das
@ 2023-09-06 8:06 ` Biju Das
2023-09-08 10:34 ` Heikki Krogerus
2023-09-06 8:06 ` [PATCH v3 5/5] usb: typec: tcpci_rt1711h: Drop CONFIG_OF ifdeffery Biju Das
4 siblings, 1 reply; 11+ messages in thread
From: Biju Das @ 2023-09-06 8:06 UTC (permalink / raw)
To: Guenter Roeck, Heikki Krogerus
Cc: Biju Das, Greg Kroah-Hartman, linux-usb, linux-kernel, Biju Das,
Andy Shevchenko
The RT1715 has PD30 extended message compared to RT1711H. Add a variable
enable_pd30_extended_message to struct rt1711h_chip_info to enable this
feature for RT1715.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2->v3:
* Added Rb tag from Andy.
v1->v2:
* Changed enable_pd30_extended_message variable type to bool.
---
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index 40822bae9ae8..5d2dc7ead9d0 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -54,6 +54,7 @@
struct rt1711h_chip_info {
u32 rxdz_sel;
u16 did;
+ bool enable_pd30_extended_message;
};
struct rt1711h_chip {
@@ -110,7 +111,7 @@ static int rt1711h_init(struct tcpci *tcpci, struct tcpci_data *tdata)
return ret;
/* Enable PD30 extended message for RT1715 */
- if (chip->info->did == RT1715_DID) {
+ if (chip->info->enable_pd30_extended_message) {
ret = regmap_update_bits(regmap, RT1711H_RTCTRL8,
RT1711H_ENEXTMSG, RT1711H_ENEXTMSG);
if (ret < 0)
@@ -400,6 +401,7 @@ static const struct rt1711h_chip_info rt1711h = {
static const struct rt1711h_chip_info rt1715 = {
.rxdz_sel = RT1711H_BMCIO_RXDZSEL,
.did = RT1715_DID,
+ .enable_pd30_extended_message = true,
};
static const struct i2c_device_id rt1711h_id[] = {
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v3 4/5] usb: typec: tcpci_rt1711h: Add enable_pd30_extended_message variable to struct rt1711h_chip_info
2023-09-06 8:06 ` [PATCH v3 4/5] usb: typec: tcpci_rt1711h: Add enable_pd30_extended_message " Biju Das
@ 2023-09-08 10:34 ` Heikki Krogerus
0 siblings, 0 replies; 11+ messages in thread
From: Heikki Krogerus @ 2023-09-08 10:34 UTC (permalink / raw)
To: Biju Das
Cc: Guenter Roeck, Greg Kroah-Hartman, linux-usb, linux-kernel,
Biju Das, Andy Shevchenko
On Wed, Sep 06, 2023 at 09:06:18AM +0100, Biju Das wrote:
> The RT1715 has PD30 extended message compared to RT1711H. Add a variable
> enable_pd30_extended_message to struct rt1711h_chip_info to enable this
> feature for RT1715.
>
> 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>
> ---
> v2->v3:
> * Added Rb tag from Andy.
> v1->v2:
> * Changed enable_pd30_extended_message variable type to bool.
> ---
> drivers/usb/typec/tcpm/tcpci_rt1711h.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> index 40822bae9ae8..5d2dc7ead9d0 100644
> --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> @@ -54,6 +54,7 @@
> struct rt1711h_chip_info {
> u32 rxdz_sel;
> u16 did;
> + bool enable_pd30_extended_message;
> };
>
> struct rt1711h_chip {
> @@ -110,7 +111,7 @@ static int rt1711h_init(struct tcpci *tcpci, struct tcpci_data *tdata)
> return ret;
>
> /* Enable PD30 extended message for RT1715 */
> - if (chip->info->did == RT1715_DID) {
> + if (chip->info->enable_pd30_extended_message) {
> ret = regmap_update_bits(regmap, RT1711H_RTCTRL8,
> RT1711H_ENEXTMSG, RT1711H_ENEXTMSG);
> if (ret < 0)
> @@ -400,6 +401,7 @@ static const struct rt1711h_chip_info rt1711h = {
> static const struct rt1711h_chip_info rt1715 = {
> .rxdz_sel = RT1711H_BMCIO_RXDZSEL,
> .did = RT1715_DID,
> + .enable_pd30_extended_message = true,
> };
>
> static const struct i2c_device_id rt1711h_id[] = {
> --
> 2.25.1
--
heikki
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 5/5] usb: typec: tcpci_rt1711h: Drop CONFIG_OF ifdeffery
2023-09-06 8:06 [PATCH v3 0/5] Match data improvements for rt1711h driver Biju Das
` (3 preceding siblings ...)
2023-09-06 8:06 ` [PATCH v3 4/5] usb: typec: tcpci_rt1711h: Add enable_pd30_extended_message " Biju Das
@ 2023-09-06 8:06 ` Biju Das
2023-09-08 10:40 ` Heikki Krogerus
4 siblings, 1 reply; 11+ messages in thread
From: Biju Das @ 2023-09-06 8:06 UTC (permalink / raw)
To: Guenter Roeck, Heikki Krogerus
Cc: Biju Das, Greg Kroah-Hartman, linux-usb, linux-kernel, Biju Das,
Andy Shevchenko
Drop of_match_ptr() from rt1711h_of_match and get rid of ugly CONFIG_OF
ifdeffery. This slightly increases the size of rt1711h_of_match on non-OF
system and shouldn't be an issue.
It also allows, in case if needed, to enumerate this device via ACPI with
PRP0001 magic.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2->v3:
* Added Rb tag from Andy.
* Updated commit description for ACPI with PRP0001 magic.
v2:
* New patch
---
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index 5d2dc7ead9d0..67422d45eb54 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -7,6 +7,7 @@
#include <linux/bits.h>
#include <linux/kernel.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
@@ -411,19 +412,17 @@ static const struct i2c_device_id rt1711h_id[] = {
};
MODULE_DEVICE_TABLE(i2c, rt1711h_id);
-#ifdef CONFIG_OF
static const struct of_device_id rt1711h_of_match[] = {
{ .compatible = "richtek,rt1711h", .data = &rt1711h },
{ .compatible = "richtek,rt1715", .data = &rt1715 },
{}
};
MODULE_DEVICE_TABLE(of, rt1711h_of_match);
-#endif
static struct i2c_driver rt1711h_i2c_driver = {
.driver = {
.name = "rt1711h",
- .of_match_table = of_match_ptr(rt1711h_of_match),
+ .of_match_table = rt1711h_of_match,
},
.probe = rt1711h_probe,
.remove = rt1711h_remove,
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH v3 5/5] usb: typec: tcpci_rt1711h: Drop CONFIG_OF ifdeffery
2023-09-06 8:06 ` [PATCH v3 5/5] usb: typec: tcpci_rt1711h: Drop CONFIG_OF ifdeffery Biju Das
@ 2023-09-08 10:40 ` Heikki Krogerus
0 siblings, 0 replies; 11+ messages in thread
From: Heikki Krogerus @ 2023-09-08 10:40 UTC (permalink / raw)
To: Biju Das
Cc: Guenter Roeck, Greg Kroah-Hartman, linux-usb, linux-kernel,
Biju Das, Andy Shevchenko
On Wed, Sep 06, 2023 at 09:06:19AM +0100, Biju Das wrote:
> Drop of_match_ptr() from rt1711h_of_match and get rid of ugly CONFIG_OF
> ifdeffery. This slightly increases the size of rt1711h_of_match on non-OF
> system and shouldn't be an issue.
>
> It also allows, in case if needed, to enumerate this device via ACPI with
> PRP0001 magic.
>
> 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>
> ---
> v2->v3:
> * Added Rb tag from Andy.
> * Updated commit description for ACPI with PRP0001 magic.
> v2:
> * New patch
> ---
> drivers/usb/typec/tcpm/tcpci_rt1711h.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> index 5d2dc7ead9d0..67422d45eb54 100644
> --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
> @@ -7,6 +7,7 @@
>
> #include <linux/bits.h>
> #include <linux/kernel.h>
> +#include <linux/mod_devicetable.h>
> #include <linux/module.h>
> #include <linux/i2c.h>
> #include <linux/interrupt.h>
> @@ -411,19 +412,17 @@ static const struct i2c_device_id rt1711h_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, rt1711h_id);
>
> -#ifdef CONFIG_OF
> static const struct of_device_id rt1711h_of_match[] = {
> { .compatible = "richtek,rt1711h", .data = &rt1711h },
> { .compatible = "richtek,rt1715", .data = &rt1715 },
> {}
> };
> MODULE_DEVICE_TABLE(of, rt1711h_of_match);
> -#endif
>
> static struct i2c_driver rt1711h_i2c_driver = {
> .driver = {
> .name = "rt1711h",
> - .of_match_table = of_match_ptr(rt1711h_of_match),
> + .of_match_table = rt1711h_of_match,
> },
> .probe = rt1711h_probe,
> .remove = rt1711h_remove,
> --
> 2.25.1
--
heikki
^ permalink raw reply [flat|nested] 11+ messages in thread