diff mbox series

[v15,mfd,3/9] pinctrl: ocelot: allow pinctrl-ocelot to be loaded as a module

Message ID 20220803054728.1541104-4-colin.foster@in-advantage.com (mailing list archive)
State Superseded
Headers show
Series add support for VSC7512 control over SPI | expand

Checks

Context Check Description
netdev/tree_selection success Guessing tree name failed - patch did not apply

Commit Message

Colin Foster Aug. 3, 2022, 5:47 a.m. UTC
Work is being done to allow external control of Ocelot chips. When pinctrl
drivers are used internally, it wouldn't make much sense to allow them to
be loaded as modules. In the case where the Ocelot chip is controlled
externally, this scenario becomes practical.

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>
---

(No changes since before v14)

v14
    * No changes

---
 drivers/pinctrl/Kconfig          | 7 ++++++-
 drivers/pinctrl/pinctrl-ocelot.c | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

Comments

Andy Shevchenko Aug. 3, 2022, 11:32 a.m. UTC | #1
On Wed, Aug 3, 2022 at 7:47 AM Colin Foster
<colin.foster@in-advantage.com> wrote:
>
> Work is being done to allow external control of Ocelot chips. When pinctrl
> drivers are used internally, it wouldn't make much sense to allow them to
> be loaded as modules. In the case where the Ocelot chip is controlled
> externally, this scenario becomes practical.

FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> 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>
> ---
>
> (No changes since before v14)
>
> v14
>     * No changes
>
> ---
>  drivers/pinctrl/Kconfig          | 7 ++++++-
>  drivers/pinctrl/pinctrl-ocelot.c | 6 +++++-
>  2 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index f52960d2dfbe..ba48ff8be6e2 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -311,7 +311,7 @@ config PINCTRL_MICROCHIP_SGPIO
>           LED controller.
>
>  config PINCTRL_OCELOT
> -       bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
> +       tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
>         depends on OF
>         depends on HAS_IOMEM
>         select GPIOLIB
> @@ -321,6 +321,11 @@ config PINCTRL_OCELOT
>         select GENERIC_PINMUX_FUNCTIONS
>         select OF_GPIO
>         select REGMAP_MMIO
> +       help
> +         Support for the internal GPIO interfaces on Microsemi Ocelot and
> +         Jaguar2 SoCs.
> +
> +         If conpiled as a module, the module name will be pinctrl-ocelot.
>
>  config PINCTRL_OXNAS
>         bool
> diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
> index 5f4a8c5c6650..d18047d2306d 100644
> --- a/drivers/pinctrl/pinctrl-ocelot.c
> +++ b/drivers/pinctrl/pinctrl-ocelot.c
> @@ -1889,6 +1889,7 @@ static const struct of_device_id ocelot_pinctrl_of_match[] = {
>         { .compatible = "microchip,lan966x-pinctrl", .data = &lan966x_desc },
>         {},
>  };
> +MODULE_DEVICE_TABLE(of, ocelot_pinctrl_of_match);
>
>  static struct regmap *ocelot_pinctrl_create_pincfg(struct platform_device *pdev)
>  {
> @@ -1984,4 +1985,7 @@ static struct platform_driver ocelot_pinctrl_driver = {
>         },
>         .probe = ocelot_pinctrl_probe,
>  };
> -builtin_platform_driver(ocelot_pinctrl_driver);
> +module_platform_driver(ocelot_pinctrl_driver);
> +
> +MODULE_DESCRIPTION("Ocelot Chip Pinctrl Driver");
> +MODULE_LICENSE("Dual MIT/GPL");
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index f52960d2dfbe..ba48ff8be6e2 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -311,7 +311,7 @@  config PINCTRL_MICROCHIP_SGPIO
 	  LED controller.
 
 config PINCTRL_OCELOT
-	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
+	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
 	depends on OF
 	depends on HAS_IOMEM
 	select GPIOLIB
@@ -321,6 +321,11 @@  config PINCTRL_OCELOT
 	select GENERIC_PINMUX_FUNCTIONS
 	select OF_GPIO
 	select REGMAP_MMIO
+	help
+	  Support for the internal GPIO interfaces on Microsemi Ocelot and
+	  Jaguar2 SoCs.
+
+	  If conpiled as a module, the module name will be pinctrl-ocelot.
 
 config PINCTRL_OXNAS
 	bool
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index 5f4a8c5c6650..d18047d2306d 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -1889,6 +1889,7 @@  static const struct of_device_id ocelot_pinctrl_of_match[] = {
 	{ .compatible = "microchip,lan966x-pinctrl", .data = &lan966x_desc },
 	{},
 };
+MODULE_DEVICE_TABLE(of, ocelot_pinctrl_of_match);
 
 static struct regmap *ocelot_pinctrl_create_pincfg(struct platform_device *pdev)
 {
@@ -1984,4 +1985,7 @@  static struct platform_driver ocelot_pinctrl_driver = {
 	},
 	.probe = ocelot_pinctrl_probe,
 };
-builtin_platform_driver(ocelot_pinctrl_driver);
+module_platform_driver(ocelot_pinctrl_driver);
+
+MODULE_DESCRIPTION("Ocelot Chip Pinctrl Driver");
+MODULE_LICENSE("Dual MIT/GPL");