![]() | |||||||||||
Messages in this thread |
On Monday 13 November 2006 12:26 pm, Bill Gatliff wrote: > >Nah; look at arch/arm/plat-omap/gpio.c and ignore the mess, but observe > >that what you see there is essentially a bunch of "gpio controller" > >classes using the ugly "switch(type)" dispatch scheme instead of the > >prettier "type->op()" dispatch scheme. All that stuff needs to be > >cleaner, but for now it'd suffice to add a new FPGA typecode. > > Agreed. But if we add to the machine descriptor, then not only do you > not need to touch arch-omap/gpio.c, but you can take that switch > statement out, too. Just one less chunk of code to tweak when a new > platform is supported. Do non-ARM platforms have board/machine descriptors on Linux, though? I thought most didn't ... One could come up with an implementation that uses GPIO numbers as indices into a descriptor array, and using board-specific initialization of that array ... just like with IRQs and irq_chip. That could lead to heavier weight implementations than I'd prefer to see (since GPIOs are a very light weight notion!), but it'd certainly provide a more reusable way to add GPIO controllers. All behind the API I proposed, note -- no changes needed. - Dave - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2006-11-13 21:55 [from the cache] ©2003-2008 | |||||||||||