pinctrl: microchip-sgpio: allow sgpio driver to be used as a module
authorColin Foster <colin.foster@in-advantage.com>
Mon, 5 Sep 2022 16:21:28 +0000 (09:21 -0700)
committerLee Jones <lee@kernel.org>
Fri, 9 Sep 2022 06:54:37 +0000 (07:54 +0100)
As the commit message suggests, this simply adds the ability to select
SGPIO pinctrl as a module. This becomes more practical when the SGPIO
hardware exists on an external chip, controlled indirectly by I2C or SPI.
This commit enables that level of control.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20220905162132.2943088-5-colin.foster@in-advantage.com
drivers/pinctrl/Kconfig
drivers/pinctrl/pinctrl-microchip-sgpio.c

index 1cf74b0..d768dcf 100644 (file)
@@ -292,7 +292,7 @@ config PINCTRL_MCP23S08
          corresponding interrupt-controller.
 
 config PINCTRL_MICROCHIP_SGPIO
-       bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
+       tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
        depends on OF
        depends on HAS_IOMEM
        select GPIOLIB
@@ -310,6 +310,9 @@ config PINCTRL_MICROCHIP_SGPIO
          connect control signals from SFP modules and to act as an
          LED controller.
 
+         If compiled as a module, the module name will be
+         pinctrl-microchip-sgpio.
+
 config PINCTRL_OCELOT
        tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
        depends on OF
index 6f55bf7..e56074b 100644 (file)
@@ -999,6 +999,7 @@ static const struct of_device_id microchip_sgpio_gpio_of_match[] = {
                /* sentinel */
        }
 };
+MODULE_DEVICE_TABLE(of, microchip_sgpio_gpio_of_match);
 
 static struct platform_driver microchip_sgpio_pinctrl_driver = {
        .driver = {
@@ -1008,4 +1009,7 @@ static struct platform_driver microchip_sgpio_pinctrl_driver = {
        },
        .probe = microchip_sgpio_probe,
 };
-builtin_platform_driver(microchip_sgpio_pinctrl_driver);
+module_platform_driver(microchip_sgpio_pinctrl_driver);
+
+MODULE_DESCRIPTION("Microchip SGPIO Pinctrl Driver");
+MODULE_LICENSE("GPL");