alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* DAPM over two regmaps (and a mailbox)
@ 2016-09-19 10:54 Maxime Ripard
  2016-09-19 11:12 ` Mark Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Maxime Ripard @ 2016-09-19 10:54 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Boris Brezillon, alsa-devel, Mylene Josserand, Chen-Yu Tsai


[-- Attachment #1.1: Type: text/plain, Size: 1718 bytes --]

Hi,

We've been working recently on a later SoC (Allwinner A33) with a
codec directly embedded into it, just like
sound/soc/sunxi/sun4i-codec.c, but this time using the usual i2s
controller we had, instead of a custom DAI.

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).

Those are apparently used to control the analog part of the codec,
including powering up the DAC, so it really feels like they should be
part of DAPM.

However, since we will obviously have a regmap for the main register
space of the codec, that leaves us with two regmaps that we need to
use, depending on the register we want to set, and DAPM doesn't really
seem to be able to handle that.

To make things worse, the register in the syscon behaves as a mailbox,
where you actually have to set in that register the address you want
to modify and the new value, in a single write. This also seem to
deviate from the usual DAPM access pattern.

I'm not really sure how to handle that properly. For now, we just did
those writes outside of DAPM, in the startup, shutdown and prepare
shutdowns. We could also have a meta-regmap, that would have custom
write and read functions, and depending on the register would turn to
our syscon, or do a writel.

Or we could try to make DAPM able to use different regmaps depending
on the register, but that seem do be very intrusive.

Do you have any suggestions or preferences on how to implement this
properly?

Thanks,
Maxime

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

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-09-20 15:54 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-19 10:54 DAPM over two regmaps (and a mailbox) Maxime Ripard
2016-09-19 11:12 ` Mark Brown
2016-09-19 11:34   ` Maxime Ripard
2016-09-19 12:00     ` Mark Brown
2016-09-19 14:56     ` Chen-Yu Tsai
2016-09-19 19:15       ` Maxime Ripard
2016-09-20  0:32         ` Chen-Yu Tsai
2016-09-20  0:41           ` Chen-Yu Tsai
2016-09-20  6:41             ` Maxime Ripard
2016-09-20 15:54               ` Chen-Yu Tsai
2016-09-20  6:41           ` Maxime Ripard
2016-09-20 10:46           ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).