Thread (8 messages) 8 messages, 6 authors, 2012-08-04

Sharing resources between several drivers.

From: arnd@arndb.de (Arnd Bergmann)
Date: 2012-07-29 14:19:52

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help