[alsa-devel] ASoC: new ac97 bus and codec clock

Rob Herring robh+dt at kernel.org
Wed Jun 20 22:00:45 CEST 2018


On Wed, Jun 20, 2018 at 1:36 PM, Robert Jarzmik <robert.jarzmik at free.fr> wrote:
> Rob Herring <robh+dt at kernel.org> writes:
>
>> Does AC97 specify a common programming model? That's were a common
>> compatible is used (though experience has proven things like
>> "generic-ehci" are don't work).
> If regmap is enough "common programming model" then yes. If you think of a
> common layout of AC97 registers and a common dynamics to program them across all
> ac97 controllers, then no, as far as I'm aware it does not.

No, not regmap.

>>> If the purpose for this compatible string is to filter the child nodes which are
>>> only ac97 codecs, so that the ac97 framework can act upon them (ie. acquire the
>>> clock for example), then wm9713 is too specific ... That won't work for another
>>> device with an Analog Devices AD1835 for example.
>
>> Are there ID registers? If so, then just construct a compatible string
>> from them and just find the compatible child node. See USB bindings
>> for an example using VID/PID.
> There is an AC97 ID register, yes, a key as VID/PID is a key for USB.
>
> So my example, where the id is 0x574d4c13, would become :
>
> ac97: sound at 40500000 {
>         compatible = "marvell,pxa270-ac97";
>         reg = < 0x40500000 0x1000 >;
>         interrupts = <14>;
>         reset-gpios = <&gpio 95 GPIO_ACTIVE_HIGH>;
>         #sound-dai-cells = <1>;
>         pinctrl-names = "default";
>         pinctrl-0 = < &pinctrl_ac97_default >;
>         clocks = <&clks CLK_AC97>, <&clks CLK_AC97CONF>;
>         clock-names = "AC97CLK", "AC97CONFCLK";
>
>         audio-codec at 0 {
>                 reg = <0>; /* Codex index (between 0 and 3) */
>                 compatible = "ac97id574d4c13";
>                 clocks = <&fixed_wm9713_clock>;
>                 clock-names = "ac97_clk";
>         }
> };
>
> Once we have converged on this example, I will post the patches for the binding,
> and the adaptation of the ac97 bus of course. Gives me a better chance to shoot
> in the right direction first :)

The example looks good.

Rob


More information about the Alsa-devel mailing list