All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Flax <flatmax@flatmax.org>
To: Mark Brown <broonie@kernel.org>
Cc: "Emmanuel Fusté" <emmanuel.fuste@laposte.net>,
	alsa-devel@alsa-project.org,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Stephen Warren" <swarren@wwwdotorg.org>,
	"Eric Anholt" <eric@anholt.net>, "Lee Jones" <lee@kernel.org>,
	phil@raspberrypi.org, "Liam Girdwood" <lgirdwood@gmail.com>,
	"Matthias Reichl" <hias@horus.com>,
	florian.kauer@koalo.de, "Florian Meier" <florian.meier@koalo.de>,
	linux-rpi-kernel@lists.infradead.org,
	"Charles Keepax" <ckeepax@opensource.wolfsonmicro.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/3] ASoC: Enable a new IC master mode: bcm2835<=>IC<=>cs42xx8
Date: Sat, 25 Mar 2017 16:45:46 +1100	[thread overview]
Message-ID: <3c818d92-498e-868c-696b-a9b709af5415@flatmax.org> (raw)
In-Reply-To: <20170324190955.nxw5az4mza2ia6wl@sirena.org.uk>



On 25/03/17 06:09, Mark Brown wrote:
> On Wed, Mar 22, 2017 at 11:04:34PM +1100, Matt Flax wrote:
>> On 22/03/17 20:43, Charles Keepax wrote:
>>> Are we saying that what gets transmitted on the bus is neither valid
>>> I2S or DSP mode data? But as you have your custom hardware block in
>>> the middle it interprets this data correctly and converts it to a
>>> regular bus format on the other side that goes to the CODEC?
>> Yes, essentially there is translation between the two data word edge
>> triggered ABP (the bcm2835's PCM block) and a Cirrus Logic TDM codec.
> Could you please be concrete about what the two formats you're talking
> about here are and how these differences are observable on the wire?  I
> don't know what "two data word edge triggered ABP" means.
On the codec side it is a regular TDM stream.
On the SoC side, two channels  are arbitrarily offset from a PCM frame 
sync clock (PCM_FS) leading edge. I have chosen to have 64 bits per 
frame with 1 bit offset for the first word (from the leading edge) and 
33 bits offset (from the leading edge) for the second word. This 
resembles I2S, but it doesn't have to for the bcm2835.

In more detail ...
The bcm2835's flexible PCM hardware (serialiser+APB) is set up to handle 
two words at a time in/out from a 64 word FIFO buffers. The serialiser 
loads and unloads two registers according to offsets from the PCM_FS 
clock's leading edge. The APB interface is responsible for (un)loading 
the 64 word FIFO buffer to/from memory - with DMA I guess.

thanks
Matt

WARNING: multiple messages have this Message-ID (diff)
From: flatmax@flatmax.org (Matt Flax)
To: linux-arm-kernel@lists.infradead.org
Subject: [alsa-devel] [PATCH 0/3] ASoC: Enable a new IC master mode: bcm2835<=>IC<=>cs42xx8
Date: Sat, 25 Mar 2017 16:45:46 +1100	[thread overview]
Message-ID: <3c818d92-498e-868c-696b-a9b709af5415@flatmax.org> (raw)
In-Reply-To: <20170324190955.nxw5az4mza2ia6wl@sirena.org.uk>



On 25/03/17 06:09, Mark Brown wrote:
> On Wed, Mar 22, 2017 at 11:04:34PM +1100, Matt Flax wrote:
>> On 22/03/17 20:43, Charles Keepax wrote:
>>> Are we saying that what gets transmitted on the bus is neither valid
>>> I2S or DSP mode data? But as you have your custom hardware block in
>>> the middle it interprets this data correctly and converts it to a
>>> regular bus format on the other side that goes to the CODEC?
>> Yes, essentially there is translation between the two data word edge
>> triggered ABP (the bcm2835's PCM block) and a Cirrus Logic TDM codec.
> Could you please be concrete about what the two formats you're talking
> about here are and how these differences are observable on the wire?  I
> don't know what "two data word edge triggered ABP" means.
On the codec side it is a regular TDM stream.
On the SoC side, two channels  are arbitrarily offset from a PCM frame 
sync clock (PCM_FS) leading edge. I have chosen to have 64 bits per 
frame with 1 bit offset for the first word (from the leading edge) and 
33 bits offset (from the leading edge) for the second word. This 
resembles I2S, but it doesn't have to for the bcm2835.

In more detail ...
The bcm2835's flexible PCM hardware (serialiser+APB) is set up to handle 
two words at a time in/out from a 64 word FIFO buffers. The serialiser 
loads and unloads two registers according to offsets from the PCM_FS 
clock's leading edge. The APB interface is responsible for (un)loading 
the 64 word FIFO buffer to/from memory - with DMA I guess.

thanks
Matt

  reply	other threads:[~2017-03-25  5:45 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-25  5:03 [PATCH 0/3] ASoC: Enable a new IC master mode: bcm2835<=>IC<=>cs42xx8 Matt Flax
2017-02-25  5:03 ` Matt Flax
2017-02-25  5:03 ` [PATCH 1/3] ASoC : Add an IC bit and frame master mode (SoC and Codec slave) Matt Flax
2017-02-25  5:03   ` Matt Flax
2017-03-15 19:02   ` Mark Brown
2017-03-15 19:02     ` Mark Brown
2017-02-25  5:03 ` [PATCH 2/3] ASoC: cs42xx8: allow IC master mode Matt Flax
2017-02-25  5:03   ` Matt Flax
2017-02-25  5:03 ` [PATCH 3/3] ASoC: bcm2835: Add mutichannel mode in DSP and IC master modes Matt Flax
2017-02-25  5:03   ` Matt Flax
2017-02-25 13:39 ` [PATCH 0/3] ASoC: Enable a new IC master mode: bcm2835<=>IC<=>cs42xx8 Matthias Reichl
2017-02-25 13:39   ` Matthias Reichl
2017-02-25 22:13   ` Matt Flax
2017-02-25 22:13     ` [alsa-devel] " Matt Flax
2017-02-26 14:49     ` Matthias Reichl
2017-02-26 14:49       ` [alsa-devel] " Matthias Reichl
2017-02-26 20:21       ` Matt Flax
2017-02-26 20:21         ` [alsa-devel] " Matt Flax
2017-02-26 22:16         ` Matthias Reichl
2017-02-26 22:16           ` [alsa-devel] " Matthias Reichl
2017-02-26 22:35           ` Matt Flax
2017-02-26 22:35             ` [alsa-devel] " Matt Flax
2017-02-27  8:04             ` Matthias Reichl
2017-02-27  8:04               ` [alsa-devel] " Matthias Reichl
2017-02-27 10:08               ` Matt Flax
2017-02-27 10:08                 ` [alsa-devel] " Matt Flax
2017-02-27 10:30                 ` Matthias Reichl
2017-02-27 10:30                   ` [alsa-devel] " Matthias Reichl
2017-02-27 11:21                   ` Matt Flax
2017-02-27 11:21                     ` [alsa-devel] " Matt Flax
2017-02-27 11:51                     ` Matthias Reichl
2017-02-27 11:51                       ` [alsa-devel] " Matthias Reichl
2017-02-28  9:59                       ` Charles Keepax
2017-02-28  9:59                         ` [alsa-devel] " Charles Keepax
2017-03-15 19:01                         ` Mark Brown
2017-03-15 19:01                           ` [alsa-devel] " Mark Brown
2017-03-16 20:51                           ` Matt Flax
2017-03-16 20:51                             ` [alsa-devel] " Matt Flax
2017-03-16 21:27                             ` Lars-Peter Clausen
2017-03-16 21:27                               ` [alsa-devel] " Lars-Peter Clausen
2017-03-16 22:14                               ` Matt Flax
2017-03-16 22:14                                 ` [alsa-devel] " Matt Flax
2017-03-21 21:21                                 ` Emmanuel Fusté
2017-03-21 21:21                                   ` [alsa-devel] " Emmanuel Fusté
2017-03-21 22:11                                   ` Matthias Reichl
2017-03-21 22:11                                     ` [alsa-devel] " Matthias Reichl
2017-03-21 23:29                                     ` Matt Flax
2017-03-21 23:29                                       ` [alsa-devel] " Matt Flax
2017-03-22  9:43                                       ` Charles Keepax
2017-03-22  9:43                                         ` [alsa-devel] " Charles Keepax
2017-03-22 12:04                                         ` Matt Flax
2017-03-22 12:04                                           ` [alsa-devel] " Matt Flax
2017-03-22 12:34                                           ` Charles Keepax
2017-03-22 12:34                                             ` Charles Keepax
2017-03-22 15:38                                           ` Stephen Warren
2017-03-22 15:38                                             ` [alsa-devel] " Stephen Warren
2017-03-24 19:11                                             ` Mark Brown
2017-03-24 19:11                                               ` [alsa-devel] " Mark Brown
2017-03-24 19:09                                           ` Mark Brown
2017-03-24 19:09                                             ` [alsa-devel] " Mark Brown
2017-03-25  5:45                                             ` Matt Flax [this message]
2017-03-25  5:45                                               ` Matt Flax
2017-03-27 10:01                                               ` Mark Brown
2017-03-27 10:01                                                 ` [alsa-devel] " Mark Brown
2017-03-27 10:35                                                 ` Matt Flax
2017-03-27 10:35                                                   ` [alsa-devel] " Matt Flax
2017-03-27 11:30                                                   ` Mark Brown
2017-03-27 11:30                                                     ` [alsa-devel] " Mark Brown
2017-03-26 19:02                                     ` Emmanuel Fusté
2017-03-26 19:02                                       ` [alsa-devel] " Emmanuel Fusté
2017-02-28 10:10         ` Charles Keepax
2017-02-28 10:10           ` [alsa-devel] " Charles Keepax
2017-02-26 20:41       ` Emmanuel Fusté
2017-02-26 20:41         ` [alsa-devel] " Emmanuel Fusté
2017-02-26 21:44         ` Matt Flax
2017-02-26 22:49           ` Emmanuel Fusté
2017-02-27  9:14         ` Matthias Reichl
2017-02-27  9:14           ` [alsa-devel] " Matthias Reichl
2017-02-27 18:19           ` Emmanuel Fusté
2017-02-27 19:12           ` Emmanuel Fusté
2017-02-27 19:12             ` [alsa-devel] " Emmanuel Fusté

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=3c818d92-498e-868c-696b-a9b709af5415@flatmax.org \
    --to=flatmax@flatmax.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=ckeepax@opensource.wolfsonmicro.com \
    --cc=emmanuel.fuste@laposte.net \
    --cc=eric@anholt.net \
    --cc=florian.kauer@koalo.de \
    --cc=florian.meier@koalo.de \
    --cc=hias@horus.com \
    --cc=lars@metafoo.de \
    --cc=lee@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=phil@raspberrypi.org \
    --cc=swarren@wwwdotorg.org \
    /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.