From: Sven Zeisberg <sven.zeisberg@googlemail.com>
To: alsa-devel@alsa-project.org
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Subject: Re: How to transfer more than 2 channels between i.MX25 & AD1938 using SSI?
Date: Mon, 30 Aug 2010 08:30:50 +0200 [thread overview]
Message-ID: <4C7B501A.2070404@googlemail.com> (raw)
In-Reply-To: <20100827114512.GC1473@pengutronix.de>
Hi Sascha,
thanks for your help. We've been trying to use
snd_soc_dai_set_tdm_slot() but had no success. The reason why this
doesn't work is a limitation in the SSI peripheral of the i.MX25:
Acc. to the "i.MX25 Multimedia Applications Processor Reference Manual,
Rev. 1" Chapter 43.1.2.4 I²S Mode, Page 43-16, the i.MX25 reverts in I²S
Slave Mode to "Normal Mode" (as opposed to "Network Mode") by hardware.
In Chapter 43.1.2.1 Normal Mode, Page 43-5, it's explained that this
mode only transfers one timeslot per frame:
"If Normal mode is configured with more than one time slot per frame,
data is transferred only in the first time slot. No data is transferred
in subsequent time slots. In Normal mode, DC[4:0] values corresponding
to more than a single time slot in a frame, only results in lengthening
of the frame."
Therefore, the SSI on the i.MX25 in Slave Mode (I don't know the other
i.MX chips) can not do more than 2 channels.
This kind of explaines also, why all multi channel examples from
freescale use the ESAI Port. The only codec used in their PDKs on the
SSI is a plain stereo chip.
To overcome this limitation, we've split up our working group and will
work on SSI master mode supoprt in the imx-ssc.c driver.
BR Sven
Am 27.08.2010 13:45, schrieb Sascha Hauer:
> Hi Sven,
>
> On Wed, Aug 25, 2010 at 04:39:51PM +0200, Sven Zeisberg wrote:
>> Hi,
>>
>> has anybody succeeded to transfer more than 2 audio channels between
>> i.MX25 and a CODEC throught the i.MX25 SSI Port?
>>
>> We have succeeded to set the CODEC (AD1938) as Master to the required
>> mode (TDM with 8 Timeslots and 32 Bit per Timeslot). However, as soon as
>> we start to play a wav file with aplay, we can see on the logic analyzer
>> that the data format on the SSI lines is reset to a stereo mode (2
>> channels with frame sync changing level between channels).
>>
>> In the imx-ssi driver, I can see that .channel_max = 2 - therefore my
>> question: does this driver support more than two channels at all?
> You have to call snd_soc_dai_set_tdm_slot() with the correct parameters.
> This function is currently relatively untested, so expect bugs here. I
> would try something like:
>
> snd_soc_dai_set_tdm_slot(cpu_dai, 0xfffff00, 0xfffff00, 8, 32);
>
> slot_width is currently not handled in this function, this may be
> wrong. I don't know whether a slot length of 32bit is supported at all
> in the hardware.
>
> I only tested this driver with 2 channels since I have no access to a
> codec supporting something else.
>
> Hope that helps
>
> Sascha
>
next prev parent reply other threads:[~2010-08-30 6:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-25 14:39 How to transfer more than 2 channels between i.MX25 & AD1938 using SSI? Sven Zeisberg
2010-08-27 11:45 ` Sascha Hauer
2010-08-30 6:30 ` Sven Zeisberg [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-08-26 15:30 Sven Zeisberg
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=4C7B501A.2070404@googlemail.com \
--to=sven.zeisberg@googlemail.com \
--cc=alsa-devel@alsa-project.org \
--cc=s.hauer@pengutronix.de \
/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 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).