[alsa-devel] The best practice to tie platform DAPM widget and codec pin

Anatol Pomozov anatol.pomozov at gmail.com
Sat Sep 13 10:12:14 CEST 2014


Hi

On Fri, Sep 12, 2014 at 7:57 AM, Mike Looijmans <mike.looijmans at topic.nl> wrote:
> On 09/12/2014 06:04 AM, Anatol Pomozov wrote:
>>
>> Hi
>>
>> I bringing up a board that has Realtek 5677 codec. The codec has 6
>> gpios and two of them are used by the board. pin3 is used to enable
>> headphones amplifier. pin2 is used to gate DMIC clock for 3 of 4 DMICs
>> - it allows to leave only one DMIC working in low-power mode.
>>
>> Now I need to configure the codec that when "Headphones" audio path is
>> enabled then pin3 should go high. The same true for DMIC/pin2. I was
>> looking for existing similar solutions but cannot find one.
>>
>> I need something similar to SND_SOC_DAPM_REGULATOR_SUPPLY that allows
>> to turn on/off part of the system. But instead of manipulating a
>> voltage regulator I just need to set/unset codec's gpio. What would be
>> the best way to achieve it?
>
>
> You can "convert" gpios to supply regulators using a "fixed" regulator
> driver (instantiated in the devicetree, or platform code on older kernels).

In my case it is not a system gpio, it is an audio codec pin. To
configure these pins I need to program codec (rt5677) registers. Pins
drive devices like headphones amp.

To convert the pins to gpio devicetree object I need to implement a
driver similar to gpio-tegra.c. The driver will expose rt5677 pins as
gpio. And then use fixed-regulator. Do I understand your proposal
correctly?

Is there an easier way?


More information about the Alsa-devel mailing list