Re: [RFC PATCH v2 4/4] mmc: sdhci-esdhc-imx: using pinmux subsystem

From: Shawn Guo
Date: Thu Dec 15 2011 - 01:56:33 EST


On Wed, Dec 14, 2011 at 11:15:53PM +0100, Linus Walleij wrote:
> On Wed, Dec 14, 2011 at 10:11 PM, Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote:
> > On Thu, Dec 15, 2011 at 12:03:42AM +0800, Dong Aisheng wrote:
>
> >> +     pmx = pinmux_get(&pdev->dev, NULL);
> >> +     if (IS_ERR(pmx)) {
> >> +             err = PTR_ERR(pmx);
> >> +             goto err_pmx_get;
> >> +     }
> >> +     err = pinmux_enable(pmx);
> >> +     if (err)
> >> +             goto err_pmx_enable;
> >> +     imx_data->pmx = pmx;
> >> +
> >
> > Won't this break every i.MX except i.MX6?
>
It will not if we do not compile other imx together with imx6, because
there are a set of empty functions defined in
include/linux/pinctrl/pinmux.h for those builds without pinctrl enabled.
But yes, it's actually broken since we are on the way to compile imx3,
imx5 and imx6 as single image.

> Not this patch on its own, first the machines have to
> select PINCTRL
> select PINMUX_FOO
>
> *Then* it will break :-D
>
> So if you want to do this for i.MX you need something like
> selectable dummy pinmuxes, i.e. pinmux_get() to return something
> that just say "OK" to everything like the dummy regulators.
>
> Shall I try to create something like that?
>
Isn't the empty functions defined in include/linux/pinctrl/pinmux.h
for this purpose? It does not solve the problem with single image.
You might probably mean that we create a dummy_pinctrl_desc and register
it to pinctrl core with pinctrl_register() if we detect that the kernel
is running on a soc that has no pinctrl support?

This is not a problem to pinctrl migration only. We have the same
problem with common clk migration. Unless we migrate imx3, imx5 and
imx6 to common clk at the same time, single image build just does not
cope with clk_* api.

--
Regards,
Shawn

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/