Messages in this thread | | | Date | Wed, 14 Aug 2013 17:39:21 +0200 | Subject | Re: [PATCH 3/3] blackfin: pinctrl-adi2: Add pin control device groups and function data. | From | Linus Walleij <> |
| |
On Tue, Jul 16, 2013 at 12:55 PM, Sonic Zhang <sonic.adi@gmail.com> wrote:
> From: Sonic Zhang <sonic.zhang@analog.com> > > Select PINCTRL_ADI2 for bf54x and bf60x by default. > > Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
(...) > +++ b/arch/blackfin/mach-bf548/include/mach/portmux.h (...) > +static const struct pinctrl_pin_desc adi_pads[] = { > + PINCTRL_PIN(0, "PA0"), > + PINCTRL_PIN(1, "PA1"), > + PINCTRL_PIN(2, "PA2"), > + PINCTRL_PIN(3, "PG3"),
The pattern we follow is not to pass the information about pins in a certain SoC or package as platform data.
Instead we rely on plug-in subdrivers down in the pinctrl subsystem under drivers/pinctrl/*.
Nominally you should write a central blackfind pinctrl driver such as drivers/pinctrl/pinctrl-blackfin.c then have a local header such as drivers/pinctrl/pinctrl-blackfin.h that enable SoC sub-drivers such as drivers/pinctrl/pinctrl-blackfin-bf54x.c, pinctrl-blackfin-bf60f.c to register to that.
Please read the current drivers such as pinctrl-nomadik.c and pinctrl-nomadik-db8500.c for an idea of how this plugin concept works.
In short: move all this data down into pinctrl.
Yours, Linus Walleij
| |