[alsa-devel] [PATCH v8] ASoC: bcm2835: Add 8 channel (multitrack) capability
Matt Flax
flatmax at flatmax.org
Fri Feb 24 13:30:03 PST 2017
On 25/02/17 07:25, Matthias Reichl wrote:
> I'd put it in another way: it seems to me that the bcm2835 I2S
> won't reliably sync in DSP mode A.
>
>
What you are explaining here is the nature of the BCM2835 responding to
a codec master. The hardware setup you are describing is elegantly
simple, but TOO simple.
Measurements on a system which uses a codec master don't represent a
robust implementation of multichannel with the BCM2835. My experiments
(and now yours) have shown that the system has a bit shift and an
uncontrollable channel drift.
Multichannel simply can't be done (on the BCM2835) without control at
the hardware level - this requires an intermediate master control chip.
The Audio Injector Octo machine driver, sets both the codec and the
BCM2835 as slaves - the FPGA is master because it has to control both
the BCM2835 and the codec's systems to get reliability. You can see the
machine driver on github :
https://github.com/flatmax/linux/blob/rpi-4.4.y/sound/soc/bcm/audioinjector-octo-soundcard.c
It has taken month to implement a robust solution to this problem using
an FPGA and the result is a fantastic (Audio Injector Octo) sound card.
I am almost certain this hardware technique can be used on all stereo
I2S SoC chips.
Matt
More information about the linux-arm-kernel
mailing list