Sharing resources between several drivers.

Arnd Bergmann arnd at arndb.de
Sun Jul 29 10:19:52 EDT 2012


On Friday 27 July 2012, javier Martin wrote:
> we are trying to support pinctrl for i.MX21, i.MX1 and i.MX27.
> 
> In these chips, gpio and pinctrl use the same HW memory area
> registers. This means that we have to request the same memory area
> from two different drivers (gpio and pinctrl) but we don't know how to
> do that.
> 
> A similar example available is mxs, but it only works with device
> tree, so this problem is avoided.  However, some of these chips
> (i.MX21, i.MX1...) don't support device tree yet, so we need to
> provide backwards compatibility.
> 
> What is the right way to request the same memory region from two
> different drivers? Moreover, how can we guarantee that there won't be
> any conflicts when accessing these shared resources?

I think the method that Linus Walleij usually recomments for dealing with
this is to create a combined gpio+pinctrl driver that lives in
drivers/pinctrl but registers to gpiolib as well.

Have a look at drivers/pinctrl/pinctrl-nomadik.c for an example of this.

	Arnd



More information about the linux-arm-kernel mailing list