[alsa-devel] [PATCH v5] ASoC: cs53l30: Add support for Cirrus Logic CS53L30

Caleb Crome caleb at crome.org
Thu Jun 2 19:40:58 CEST 2016


On Thu, Jun 2, 2016 at 10:17 AM, Mark Brown <broonie at kernel.org> wrote:
> On Tue, May 31, 2016 at 03:32:05PM -0700, Caleb Crome wrote:
>> On Tue, May 31, 2016 at 10:35 AM, Mark Brown <broonie at kernel.org> wrote:
>
>> > I'm not sure why mic arrays would drive that, it's not like they're
>> > particularly new or innovative technology here and multi channel output
>> > has been even more widely available for a long time?
>
>> Good point.  I guess I'm coming from the SoC/mobile world where most SoCs
>> support stereo only, and a couple microphones at most.  Now phones have 3-4
>> or more microphones.   Amazon echo has 7 mics.  We're working on arrays of
>
> That's fairly rare, I'd say more of the vendors are doing programmable
> serial ports and those that aren't have a different model...  see below.
>
>> We must be looking at different sorts of chips :-)  Even on new parts like
>> the Snapdragon 410, they have a super inflexible I2S only port. (up to 3
>> parallel I2S for up to 6 channels, but no TDM).
>
> Qualcomm have never really wanted anyone to use I2S in their mobile
> products for quite some time now - they've always wanted to do a system
> sale based on either their integrated CODECs or (in the current
> production designs) their own external CODECs which normally use Slimbus
> to connect to the CPU (they are working off and on on upstreaming
> Slimbus, nobody else ever adopted it so there's relatively little
> pressure).
>
>> and a few other chips that I'm not familiar with.  So  there does not seem
>> to be overwhelming support for TDM in Alsa ASoC.  To what extent this is a
>> software vs. hardware issue could use a little investigation.
>
> It's software and legacy hardware.
>
>> So... if anybody knows of a Cortex A53 or A57 with good TDM support in
>> linux (at least 16 channels in and out), I'd love to know about it :-)
>
> Well, if you specifically mean TDM as opposed to multi-channel our
> general support for that isn't good (mainly due to lack of demand).  It
> sounds like you're more interested in multi channel here though.

I must be missing something.  To me, TDM is synonymous with
multi-channel on a single wire. The datasheets of codecs and SoCs
invariably refer to TDM as putting multiple slots onto a single wire,
and not necessarily the actual bit-format and clocking of that wire.
The actual clocking and bits are generally configurable, but the
concept of TDM in the datasheets seems to be universal and have the
same meaning -- multi-channel on a wire.

(I recall there is also a specific TDM format with something like 384
slots per frame, which is a well defined thing, but that's not what
I'm talking about.  That's used just for telephony I beleive).


What's the linuxy name for what the datasheets call TDM format with
slots > 2?  Do we just call that 'multi-channel', or specifically say,
'channels_max > 2'?  I was always under the assumption that's what TDM
meant.

Thanks,
   -Caleb


More information about the Alsa-devel mailing list