[PATCH v6 4/8] ARM: dts: imx27 pinctrl

Linus Walleij linus.walleij at linaro.org
Fri Nov 8 04:45:01 EST 2013

On Wed, Nov 6, 2013 at 11:43 PM, Matt Sealey <neko at bakuhatsu.net> wrote:
> On Mon, Oct 28, 2013 at 4:00 AM, Markus Pargmann <mpa at pengutronix.de> wrote:
>> +                       iomuxc: iomuxc at 10015000 {
>> +                               compatible = "fsl,imx27-iomuxc";
>> +                               reg = <0x10015000 0x600>;
>> +
>> +                       };
>> +
>>                         gpio1: gpio at 10015000 {
>>                                 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
>>                                 reg = <0x10015000 0x100>;
> Linus,
> Case in point, you can't have two nodes which overlap registers.
> Probably the most reasonable way to effect this is to keep the GPIO
> bindings, put pinctrl definitions in there (there's no reason pinctrl
> and gpio drivers can't probe the same compatible property) and use
> regmap internally on that single node.

If the I/O region is tightly coupled across two subsystems like
that we usually merge the driver into one combined
pinctrl+gpio driver and put it into drivers/pinctrl/*.

This often solves more problems and make the code
simpler too.

An alternative if address 0x10015000- 0x100150ff is
really only used for GPIO is to map the pinctrl like

reg = <0x10015100 0x500>

and rewrite all the base offset handling in the driver.

Linus Walleij

More information about the linux-arm-kernel mailing list