Re: DAPM over two regmaps (and a mailbox)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, Sep 20, 2016 at 08:32:50AM +0800, Chen-Yu Tsai wrote:
> On Tue, Sep 20, 2016 at 3:15 AM, Maxime Ripard
> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> > Hi,
> >
> > On Mon, Sep 19, 2016 at 10:56:10PM +0800, Chen-Yu Tsai wrote:
> >> On Mon, Sep 19, 2016 at 7:34 PM, Maxime Ripard
> >> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> >> > On Mon, Sep 19, 2016 at 12:12:47PM +0100, Mark Brown wrote:
> >> >> On Mon, Sep 19, 2016 at 12:54:19PM +0200, Maxime Ripard wrote:
> >> >>
> >> >> > That codec is mapped in memory, however, we have a bunch of DAPM
> >> >> > widgets that are mapped in a separate register space, that should
> >> >> > probably be exposed through a syscon (but isn't yet).
> >> >>
> >> >> Why not just represent those as a separate device?
> >> >
> >> > I don't know, this seems to be supplies to muxers, mixers, DACs, the
> >> > amplifier (and the amplifier volume too, even though that's not a
> >> > widget), and it looks really intertwinned, how would you separate
> >> > them?
> >>
> >> I asked Mark the same question a while ago. I was looking at the A31s
> >> codec, which is kind of a cross between A31 and A23.
> >
> > We're working on the A33, that has yet another setup from the A23..
> 
> Looks like the "analog control" bits are similar, if not completely
> the same. As described on page 221, the bits are accessed through a
> mapping mechanism in register 0x01f015c0.

Yes, we've seen that too.

> So the solution would likely be the same for A31s/A23/A33: a platform
> device/driver for that particular piece of hardware that registers a
> custom regmap and an ASoC component. This would be under the PRCM
> mfd. The main codec would list this (I think it's by name?) under
> it's aux_components.
>
> >> Mark recommended using aux devices. AFAIU the codec would just
> >> register the DAC and ADC widgets, the digital volume control, and
> >> whatever digital bits there are. The analog side would be done in a
> >> asoc component driver, which would register all the analog widgets
> >> and controls. You then tie them together at the card level.
> >
> > Ok. How would that work? Can you setup routes between widgets defined
> > in different components?
> 
> Indeed you can. I think that is what the ASoC card is for, to stitch
> up various components. Not sure if you can directly use widgets from
> aux components in the codec component driver though. I guess it depends
> on the probe/binding sequence.

I didn't know about the aux_devs, but yeah, it definitely looks like
the proper solution.

We'll work on that.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux