
On 09/25/2012 02:11 PM, Mark Brown wrote:
On Mon, Sep 24, 2012 at 04:37:23PM +0200, Linus Walleij wrote:
On Mon, Sep 24, 2012 at 12:17 PM, Mark Brown
Well, the problem here is that people keep wanting to add one shot pinctrl calls in drivers which clearly suggests that it ought to be factored out.
OK so can we find some suitable middle ground here?
Something like drivers could add some boolean flag to "opt-in" for the core to handle this or so?
Well, I don't know if we need to - it sounds like the platforms that are running around adding these pinctrl calls to all the drivers are doing it wrong and should be fixed.
In the scope of audio... I guess it is one thing to use the pinctrl framework to configure the mux for the pins (which was the original idea of the patch). This should be taken care in some centralized place, I agree. But the pinctrl could be used to change the mux runtime. For example in OMAP for most of the audio related pins we need to select MODE0 mux configuration in order to route the signal to the pin. However the same pin can be configured to SAFE_MODE which disconnects the pin from outside. During audio activity we obviously need to configure these pins to MODE0 but when there is not activity we could set them to SAFE_MODE which could result some power savings (preventing leakage, etc).
For this to work it would be ideal to use the pm_runtime as a centralized place to handle clocks, pinctrl, etc... But again, what to do with the cases when this is not needed (the pinctrl part for the devices)?
After all only some MMC drivers call up to mmc_regulator_set_ocr() to set voltages, it's optional but centralized.
This is mostly a historical thing, though - pinctrl is new.