All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: alsa-devel@alsa-project.org, Liam Girdwood <lgirdwood@gmail.com>,
	zhuzhenhua@allwinnertech.com, Mark Brown <broonie@kernel.org>,
	kevin.z.m.zh@gmail.com, sunny@allwinnertech.com,
	shuge@allwinnertech.com
Subject: Re: integration into ASoC
Date: Mon, 10 Mar 2014 17:43:07 +0100	[thread overview]
Message-ID: <20140310164307.GH2815@lukather> (raw)
In-Reply-To: <531D90C1.8000800@metafoo.de>


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

On Mon, Mar 10, 2014 at 11:15:29AM +0100, Lars-Peter Clausen wrote:
> >>>This IP is made of a few registers to control the sampling rate, if
> >>>we're using mono/stereo, plus two fifos, one for playback, one for
> >>>capture, that can be seed with data. The data are then taken, go
> >>>through a DAC, and the outer interface of the IP are directly analog
> >>>signals (so the DAC/ADC are directly in the SoC, and the only
> >>>interface we have is plain registers).
> >>>
> >>> From what I understood from ASoC, you have mostly three components,
> >>>the DAI, the codec and the platform that plumbers the two first
> >>>together. Here, my understanding is that it's pretty much the whole
> >>>three in a single IP.
> >>
> >>The platform component usually takes care of transferring data from
> >>memory to your IP. It sounds as if this is still separate on your
> >>platform. Quite possibly you can use the generic dmaengine PCM
> >>driver.
> >
> >You really have two intertwined sets of registers, one for the FIFO
> >themselves (and you will obviously use DMA for that, I'll keep in mind
> >the dmaengine PCM driver), and the control registers, so you can't
> >really split it into two separate drivers (at least, not easily).
> 
> You'd configure the FIFOs from the CPU component driver, but the
> part that takes care of moving the audio data around is a separate
> component.

Ok.

> >
> >>Right now ASoC expects you to specify a DAI link for a PCM
> >>device. The DAI link connects the DAIs of two components typically
> >>the SoC side and a external CODEC. In your case you do not have the
> >>external CODEC. You can solve this by using a dummy CODEC or
> >>splitting things up and register both the CODEC and the CPU DAI from
> >>the same driver.
> >
> >That would probably be the best solution, yes.
> >
> >>But I'm currently working on a patchset that will eventually allow
> >>these kind of devices to be supported more naturally. It will allow
> >>to register them as one component that won't need the CODEC
> >>component to work.
> >
> >Great! Do you have a branch with that work somewhere?
> 
> Not yet. But I hope to get there in the next weeks.

Could you put me in Cc whenever you post them for feedback/testing?


> >>>Should such a hardware block be handled into ASoC, and if yes, how?
> >>>If not, which other framework should be used?
> >>
> >>It makes sense to use ASoC if there are components where the driver
> >>can be shared e.g. the DMA in your case. Otherwise you can also use
> >>plain old ALSA.
> >
> >The DMA controller this IP will use is a system-wide DMA master, so
> >I don't think this driver will provide something to other drivers.
> 
> That's what I meant. The DMA controller is not integrated into the
> sound core, so you'll have a dmaengine driver for the DMA controller
> and the part that can be shared with other drivers is the code that
> handles setting up the DMA transfers etc.

Ok. Thanks!

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

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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



  reply	other threads:[~2014-03-10 16:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-07 16:53 integration into ASoC Maxime Ripard
2014-03-07 17:12 ` Lars-Peter Clausen
2014-03-09  7:48   ` Mark Brown
2014-03-10 10:11     ` Maxime Ripard
2014-03-10  9:50   ` Maxime Ripard
2014-03-10 10:15     ` Lars-Peter Clausen
2014-03-10 16:43       ` Maxime Ripard [this message]
2014-03-10 17:23         ` Lars-Peter Clausen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140310164307.GH2815@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=kevin.z.m.zh@gmail.com \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=shuge@allwinnertech.com \
    --cc=sunny@allwinnertech.com \
    --cc=zhuzhenhua@allwinnertech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.