GPIO vs. other drivers order

Jamie Iles jamie at jamieiles.com
Wed Jun 15 08:06:30 EDT 2011


Hi Dmitry,

On Wed, Jun 15, 2011 at 11:57:58AM +0000, Dmitry Eremin-Solenikov wrote:
> Hello, colleagues,
> 
> I'm currently looking at cleaning up LoCoMo and Scoop2 drivers (custom
> Sharp ASICs used by Sharp Zaurus PDAs). One of the problems I'm stuck at
> is about GPIO parts of that chips: there are plenty of other devices
> depending on GPIO pins working correctly (ranging from board code
> itself up to several other sub-drivers).
> 
> What would be the better approach: to create a basic-mmio-gpio node (and
> hope for the order of initialization to be correct) or embed bgpio into
> main driver and call all necessary hooks directly from it?

Currently the basic-mmio-gpio platform driver is registed with a 
module_initcall so this may be too late for any machines that need GPIO 
in their .init_machine callback.  Moving the registration to a 
postcore_initcall (as OMAP does) and I don't recall seeing any 
objections to this.

If the basic-mmio-gpio driver does everything you need then registering 
it as a platform_device would be fine imho.  If you need to add/override 
some of the generic functionallity then embedding the bgpio_chip into 
your own structure is the probably best way to go.

Jamie



More information about the linux-arm-kernel mailing list