diff options
author | Sergio Paracuellos <sergio.paracuellos@gmail.com> | 2021-06-04 13:51:54 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2021-06-07 09:17:47 +0200 |
commit | 276e552e081c2db115319130511b55397d9695bd (patch) | |
tree | 950cda54268525d28722a86ce3e3aec2022ee227 | |
parent | 8c987eb15aa6e397e2dba63246c4d8785f5c9f41 (diff) |
pinctrl: ralink: move ralink architecture pinmux header into the driver
Ralink architecture is making use of the header located in
'arch/mips/include/asm/mach-ralink/pinmux.h' to stablish the
mechanisms to make derived SoCs to set its pin functions and
groups. In order to move all architecture pinmux into a more
accurate place which is 'drivers/pinctrl/ralink' we have to
first of all move this file also there with a small modification
which creates 'rt2880_pinmux_init' function to allow SoCs pinctrl
drivers to pass its configuration to the common code located in
'pinctrl-rt2880.c' file.
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210604115159.8834-2-sergio.paracuellos@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | arch/mips/ralink/prom.c | 1 | ||||
-rw-r--r-- | drivers/pinctrl/ralink/pinctrl-rt2880.c | 30 | ||||
-rw-r--r-- | drivers/pinctrl/ralink/pinmux.h (renamed from arch/mips/include/asm/mach-ralink/pinmux.h) | 3 |
3 files changed, 7 insertions, 27 deletions
diff --git a/arch/mips/ralink/prom.c b/arch/mips/ralink/prom.c index 25728def3503..aaac1e6ec7d9 100644 --- a/arch/mips/ralink/prom.c +++ b/arch/mips/ralink/prom.c @@ -18,7 +18,6 @@ #include "common.h" struct ralink_soc_info soc_info; -struct rt2880_pmx_group *rt2880_pinmux_data = NULL; enum ralink_soc_type ralink_soc; EXPORT_SYMBOL_GPL(ralink_soc); diff --git a/drivers/pinctrl/ralink/pinctrl-rt2880.c b/drivers/pinctrl/ralink/pinctrl-rt2880.c index 1f4bca854add..abe31d4d448e 100644 --- a/drivers/pinctrl/ralink/pinctrl-rt2880.c +++ b/drivers/pinctrl/ralink/pinctrl-rt2880.c @@ -17,9 +17,9 @@ #include <linux/pinctrl/machine.h> #include <asm/mach-ralink/ralink_regs.h> -#include <asm/mach-ralink/pinmux.h> #include <asm/mach-ralink/mt7620.h> +#include "pinmux.h" #include "../core.h" #include "../pinctrl-utils.h" @@ -311,13 +311,14 @@ static int rt2880_pinmux_pins(struct rt2880_priv *p) return 0; } -static int rt2880_pinmux_probe(struct platform_device *pdev) +int rt2880_pinmux_init(struct platform_device *pdev, + struct rt2880_pmx_group *data) { struct rt2880_priv *p; struct pinctrl_dev *dev; int err; - if (!rt2880_pinmux_data) + if (!data) return -ENOTSUPP; /* setup the private data */ @@ -327,7 +328,7 @@ static int rt2880_pinmux_probe(struct platform_device *pdev) p->dev = &pdev->dev; p->desc = &rt2880_pctrl_desc; - p->groups = rt2880_pinmux_data; + p->groups = data; platform_set_drvdata(pdev, p); /* init the device */ @@ -346,24 +347,3 @@ static int rt2880_pinmux_probe(struct platform_device *pdev) return PTR_ERR_OR_ZERO(dev); } - -static const struct of_device_id rt2880_pinmux_match[] = { - { .compatible = "ralink,rt2880-pinmux" }, - {}, -}; -MODULE_DEVICE_TABLE(of, rt2880_pinmux_match); - -static struct platform_driver rt2880_pinmux_driver = { - .probe = rt2880_pinmux_probe, - .driver = { - .name = "rt2880-pinmux", - .of_match_table = rt2880_pinmux_match, - }, -}; - -static int __init rt2880_pinmux_init(void) -{ - return platform_driver_register(&rt2880_pinmux_driver); -} - -core_initcall_sync(rt2880_pinmux_init); diff --git a/arch/mips/include/asm/mach-ralink/pinmux.h b/drivers/pinctrl/ralink/pinmux.h index 048309348be0..0046abe3bcc7 100644 --- a/arch/mips/include/asm/mach-ralink/pinmux.h +++ b/drivers/pinctrl/ralink/pinmux.h @@ -47,6 +47,7 @@ struct rt2880_pmx_group { int func_count; }; -extern struct rt2880_pmx_group *rt2880_pinmux_data; +int rt2880_pinmux_init(struct platform_device *pdev, + struct rt2880_pmx_group *data); #endif |