[alsa-devel] [PATCH] ASoC: core: Configure pin muxing via pinctrl when registering a DAI

Peter Ujfalusi peter.ujfalusi at ti.com
Tue Sep 25 13:24:23 CEST 2012

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.


More information about the Alsa-devel mailing list