The fusb302 is also used on x86 systems where the platform code sets
the irq in client->irq and there is no gpio named fcs,int_n.

Signed-off-by: Hans de Goede <hdego...@redhat.com>
---
 drivers/staging/typec/fusb302/fusb302.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/typec/fusb302/fusb302.c 
b/drivers/staging/typec/fusb302/fusb302.c
index 8ceaef8ecf17..be454b5ff6c7 100644
--- a/drivers/staging/typec/fusb302/fusb302.c
+++ b/drivers/staging/typec/fusb302/fusb302.c
@@ -1735,9 +1735,13 @@ static int fusb302_probe(struct i2c_client *client,
                goto destroy_workqueue;
        }
 
-       ret = init_gpio(chip);
-       if (ret < 0)
-               goto destroy_workqueue;
+       if (client->irq) {
+               chip->gpio_int_n_irq = client->irq;
+       } else {
+               ret = init_gpio(chip);
+               if (ret < 0)
+                       goto destroy_workqueue;
+       }
 
        chip->tcpm_port = tcpm_register_port(&client->dev, &chip->tcpc_dev);
        if (IS_ERR(chip->tcpm_port)) {
-- 
2.13.3

Reply via email to