Hi, On Thu, Oct 25, 2012 at 09:59:01PM +0100, Mark Brown wrote: > On Wed, Oct 24, 2012 at 09:58:19PM +0300, Felipe Balbi wrote: > > > need a way to tell drivers/base "hey, don't touch pinctrl at all because > > I know what I'm doing" and that has to happen before probe() too, > > otherwise it's already too late and, according to what you suggest, > > drivers/base will already have touched pinctrl. The only way I see would > > be to add an extra "dont_touch_my_pins" field to every driver structure > > in the kernel. Clearly what you say is nonsense. > > I suspect that's not actually a big deal and that if we went down this > route we'd have the driver take over control from the core code during > probe() with the core still setting up the default state. > > Personally I do think we want to be factoring bolierplate out of > drivers, if they're not doing anything constructive with pinctrl they > should be able to avoid having code for it. There definitely are issues > to work through but it seems like we ought to be able to do something. IMHO this will come back to bite you in the *ss. Specially when the same driver is shared among multiple revisions of the same SoC or multiple different SoCs. Hypothetical situation: OMAP4 has keypad as the default pin mode and low power is handled by the HW, so keypad could have pinctlr "boilerplate" factored out. Then comes OMAP5 and low power mode has to be handled by SW for whatever reason (maybe there are more than one low power mode). Then we will need to patch omap4-keypad.c to remove "dont_touch_my_pins" flag and add pinctrl support. When you think of the possibilities of every single driver going throught that it sounds a lot nicer to not make that decision IMHO and keep pinctrl explicit. This is not like module_*_driver() macro. -- balbi
Attachment:
signature.asc
Description: Digital signature