sc16is7xx: Separate GPIOs from modem control lines
authorLech Perczak <l.perczak@camlintechnologies.com>
Mon, 21 Feb 2022 10:56:15 +0000 (11:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 09:24:27 +0000 (10:24 +0100)
Export only the GPIOs that are not shared with hardware modem control
lines. Introduce new device parameter indicating whether modem control
lines are available.

Signed-off-by: Lech Perczak <l.perczak@camlintechnologies.com>
Signed-off-by: Tomasz Moń <tomasz.mon@camlingroup.com>
Link: https://lore.kernel.org/r/20220221105618.3503470-4-tomasz.mon@camlingroup.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sc16is7xx.c

index a2873ac..b7a2db9 100644 (file)
@@ -306,6 +306,7 @@ struct sc16is7xx_devtype {
        char    name[10];
        int     nr_gpio;
        int     nr_uart;
+       int     has_mctrl;
 };
 
 #define SC16IS7XX_RECONF_MD            (1 << 0)
@@ -440,30 +441,35 @@ static const struct sc16is7xx_devtype sc16is74x_devtype = {
        .name           = "SC16IS74X",
        .nr_gpio        = 0,
        .nr_uart        = 1,
+       .has_mctrl      = 0,
 };
 
 static const struct sc16is7xx_devtype sc16is750_devtype = {
        .name           = "SC16IS750",
-       .nr_gpio        = 8,
+       .nr_gpio        = 4,
        .nr_uart        = 1,
+       .has_mctrl      = 1,
 };
 
 static const struct sc16is7xx_devtype sc16is752_devtype = {
        .name           = "SC16IS752",
-       .nr_gpio        = 8,
+       .nr_gpio        = 0,
        .nr_uart        = 2,
+       .has_mctrl      = 1,
 };
 
 static const struct sc16is7xx_devtype sc16is760_devtype = {
        .name           = "SC16IS760",
-       .nr_gpio        = 8,
+       .nr_gpio        = 4,
        .nr_uart        = 1,
+       .has_mctrl      = 1,
 };
 
 static const struct sc16is7xx_devtype sc16is762_devtype = {
        .name           = "SC16IS762",
-       .nr_gpio        = 8,
+       .nr_gpio        = 0,
        .nr_uart        = 2,
+       .has_mctrl      = 1,
 };
 
 static bool sc16is7xx_regmap_volatile(struct device *dev, unsigned int reg)