Re: [PATCH v2] mfd: syscon: allow to register syscon with a device

From: Arnd Bergmann
Date: Wed Feb 24 2016 - 10:00:44 EST


On Wednesday 24 February 2016 13:44:24 Philipp Zabel wrote:
> Am Mittwoch, den 24.02.2016, 13:18 +0100 schrieb Arnd Bergmann:
> > On Wednesday 24 February 2016 12:19:01 Philipp Zabel wrote:
> > > Commit bdb0066df96e ("mfd: syscon: Decouple syscon interface from platform
> > > devices") added the possibility to register syscon devices without
> > > associated platform device. This also removed regmap debugfs facilities,
> > > which don't work without a device. Since there is no replacement, this
> > > patch allows again to register syscon regions with an associated device
> > > where that this device exists anyway.
> > >
> > > Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> >
> > Can you elaborate how you want to use the new interface?
>
> I use this patch to attach the regmap to the IOMUXC device, which the
> GPR (syscon) region on i.MX6 is a part of:
>
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx6q.c b/drivers/pinctrl/freescale/pinctrl-imx6q.c
> index 4d1fcb8..74a68ec 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx6q.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx6q.c
> @@ -15,6 +15,7 @@
> #include <linux/err.h>
> #include <linux/init.h>
> #include <linux/io.h>
> +#include <linux/mfd/syscon.h>
> #include <linux/module.h>
> #include <linux/of.h>
> #include <linux/of_device.h>
> @@ -473,6 +474,12 @@ static const struct of_device_id imx6q_pinctrl_of_match[] = {
>
> static int imx6q_pinctrl_probe(struct platform_device *pdev)
> {
> + struct device_node *syscon_np;
> +
> + syscon_np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-iomuxc-gpr");
> + if (syscon_np)
> + syscon_register(&pdev->dev, syscon_np);
> +
> return imx_pinctrl_probe(pdev, &imx6q_pinctrl_info);
> }
>
> The pinctrl driver is probed at arch_initcall time.

I still don't see it where you are getting with this. Is this just for
the debugfs interface or is there something else this does on top of
that?

Arnd