Skip to content

Commit

Permalink
pinctrl: ralink: move ralink architecture pinmux header into the driver
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sergio Paracuellos authored and Linus Walleij committed Jun 7, 2021
1 parent 8c987eb commit 276e552
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 27 deletions.
1 change: 0 additions & 1 deletion arch/mips/ralink/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
30 changes: 5 additions & 25 deletions drivers/pinctrl/ralink/pinctrl-rt2880.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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 */
Expand All @@ -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 */
Expand All @@ -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);
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 276e552

Please sign in to comment.