From: "Eric Bénard" <eric@eukrea.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>, alsa-devel@alsa-project.org
Subject: Re: imx-ssi.c & SND_SOC_DAIFMT_I2S
Date: Thu, 27 May 2010 03:15:51 +0200 [thread overview]
Message-ID: <4BFDC7C7.7000507@eukrea.com> (raw)
In-Reply-To: <20100527005647.GC22091@sirena.org.uk>
Hi Mark,
Le 27/05/2010 02:56, Mark Brown a écrit :
> On Wed, May 26, 2010 at 11:34:08AM +0200, Eric B?nard wrote:
>
>> while trying to get a TI TLV320AIC23B codec configured as I2S master to
>> work with an i.MX27 using the latest git kernel, I noticed there may be
>> a problem in the slave I2S setting in imx-ssi.c
>
>> Please find two captures of the I2S bus signals :
>> - http://eukrea.com/tmp/initial_i2s.png : this is not an I2S signal,
>> both left& right are sent while Frame Sync is high (so I only get mono
>> output)
>> - http://eukrea.com/tmp/i2s_slave.png : when I set I2S_MODE to 0x2 in
>> SCR register (scr |= SSI_SCR_NET | 0x40; at line 101 of imx-ssi.c), thus
>> setting the SSI in "I2S slave mode", I get a real I2S signal as shown on
>> this capture.
>
> What are these captures actually of? The current mainline driver does
> not support master mode so whatever you're capturing won't have been
> generated by the i.MX. If you've implemented master mode it'd be nice
> to post the patch for this...
the TLV320 is master thus generates clock and framesync
the i.MX's SSI is slave thus send data (when playing sound) synchronized
on framesync and clock provided by the TLV320.
The problem on the first capture is that the SSI send the data for both
channels on one half of the framesync's period => codec outputs sound on
only one channel.
By setting the mode to I2S_SLAVE, the SSI send the data the way the
codec expect it : one channel when framesync is high and one channel
when framesync is low.
>
>> Am I wrong here ?
>> Shouldn't we use the I2S slave mode of the SSI instead of what is done
>> actually ?
>
> If I remember correctly the I2S slave mode isn't exactly I2S compliant
> either and is actually just setting up similar settings to override
> other registers. I could be wrong, or this could have changed in later
> i.MXs.
>
this is what is written in the comment, but in the iMX manual (at least
25 & 27), there is an I2S_SLAVE mode which seems to set more things than
what is actually done in the driver as when I enable this, I get a
perfect sound of both channels (and recording also works fine).
Eric
next prev parent reply other threads:[~2010-05-27 1:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 9:34 imx-ssi.c & SND_SOC_DAIFMT_I2S Eric Bénard
2010-05-26 10:37 ` Sascha Hauer
2010-05-26 12:41 ` Eric Bénard
2010-05-27 0:56 ` Mark Brown
2010-05-27 1:15 ` Eric Bénard [this message]
2010-05-27 1:54 ` Mark Brown
2010-06-23 10:15 ` imx-ssi.c & SND_SOC_DAIFMT_I2S anilkumar
2010-06-23 10:28 ` Eric Bénard
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=4BFDC7C7.7000507@eukrea.com \
--to=eric@eukrea.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--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).