From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Brown Subject: Re: [PATCH] New ASoC Drivers for ADI AD1938 codec Date: Mon, 22 Jun 2009 11:57:28 +0100 Message-ID: <20090622105727.GA29144@opensource.wolfsonmicro.com> References: <1245403695-20537-1-git-send-email-21cnbao@gmail.com> <20090619104738.GF5270@sirena.org.uk> <3c17e3570906212008n6071e987sbcd4b9377364ae78@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from opensource2.wolfsonmicro.com (opensource.wolfsonmicro.com [80.75.67.52]) by alsa0.perex.cz (Postfix) with ESMTP id E9BF524342 for ; Mon, 22 Jun 2009 12:57:31 +0200 (CEST) Content-Disposition: inline In-Reply-To: <3c17e3570906212008n6071e987sbcd4b9377364ae78@mail.gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: =?utf-8?B?5a6L5a6d5Y2O?= <21cnbao@gmail.com> Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Mike Frysinger , lrg@slimlogic.co.uk List-Id: alsa-devel@alsa-project.org T24gTW9uLCBKdW4gMjIsIDIwMDkgYXQgMTE6MDg6MjdBTSArMDgwMCwg5a6L5a6d5Y2OIHdyb3Rl OgoKW1BsZWFzZSByZXBseSBpbi1saW5lLCBpbnRlcnNwZXJzaW5nIHlvdXIgbmV3IHRleHQgaW50 byB0aGUgbWVzc2FnZQp5b3UncmUgcmVwbHlpbmcgdG8gLSBpdCBtYWtlcyB0aGUgZGlzY3Vzc2lv biBtdWNoIGVhc2llciB0byBmb2xsb3cuXQoKPiBIaSBNYXJrLAo+ICoqKkZvciB0aGUgbmV3IERB SSBmb3JtYXQKPiBBY2NvcmRpbmcgdG8gSTJTIHNwZWMsIGl0IGRvZXNuJ3QgZGVmaW5pdGUgYSBJ MlMgd2l0aCBURE0gYXMgYSBzdGFuZGFyZCBJMlMuCj4gaHR0cDovL3d3dy5ueHAuY29tL2Fjcm9i YXRfZG93bmxvYWQvdmFyaW91cy9JMlNCVVMucGRmCgpJdCdzIGEgZGUgZmFjdG8gc3RhbmRhcmQg LSBzZXZlcmFsIG90aGVyIHZlbmRvcnMgaW1wbGVtZW50IFRETSBpbgpleGFjdGx5IHRoZSBzYW1l IGZhc2hpb24uICBJZiB5b3UgdGhpbmsgYWJvdXQgaXQgdGhpcyBpcyBhIG5hdHVyYWwgd2F5CnRv IGhhbmRsZSBURE0gaW4gSTJTLgoKPiBJdCBsb29rcyBsaWtlIHlvdSBhcmUgYWRtaXR0aW5nIHRo aXMga2luZCBvZiB0aW1pbmcgaW50byBJMlMgREFJIHRvbzoKPiBodHRwOi8vaTMuNi5jbi9jdmJu bS84Zi8zZC8wOC8yNjhhNDU2MGUwZGFhMWI0MWQ2OWI4MjQxOWRhMDZlMS5qcGcKPiBJIHRoaW5r IEkgY2FuIGZvbGxvdyBpdCB0b28uCgpUaGUgdGltaW5nIHlvdSdyZSBzaG93aW5nIHRoZXJlIGlz IGVzc2VudGlhbGx5IGEgRFNQIG1vZGUgd2l0aCB0aGUgbGVmdAphbmQgcmlnaHQgY2hhbm5lbHMg YWx0ZXJuYXRpbmcgcmF0aGVyIHRoYW4gYW4gSTJTIHN0eWxlIHdoZXJlIHRoZQpwb2xhcml0eSBv ZiB0aGUgTFJDTEsgc2lnbmFsIGluZGljYXRlcyBpZiB0aGUgZGF0YSB0cmFuc21pdHRlZCBhdCB0 aGUKc2FtZSB0aW1lIGlzIGZvciB0aGUgbGVmdCBvciByaWdodCBjaGFubmVsLiAgSSdkIG5lZWQg dG8gdGhpbmsgYWJvdXQgaXQKaW4gc2xpZ2h0bHkgbW9yZSBkZXRhaWwgYnV0IHByb2JhYmx5IGl0 IGlzIGFjdHVhbGx5IGEgRFNQIG1vZGUgLSB3aXRoCnRoZSBEU1AgbW9kZXMgb25seSBvbmUgZWRn ZSBvZiB0aGUgZnJhbWUgc3luYyBpcyB1c2VkIHNvIHRoZSBvdGhlciBlZGdlCmNhbiBiZSBhbnl3 aGVyZSBlbHNlIHdpdGhpbiB0aGUgZnJhbWUuCgo+IER1ZSB0byBteSB0ZXN0IGJvYXJkcywgYXQg cHJlc2VudCwgdGhlIEFEMTkzOCBpcyB3b3JraW5nIGluIGFuZCBzdXBwb3J0aW5nCj4gVERNIHRp bWluZyBsaWtlIHRoZSBkaWFncmFtOgo+IGh0dHA6Ly9pMy42LmNuL2N2Ym5tLzJmL2UyL2YyLzAz YWUyYjUxYzRlOTA3NDk5NzJlNzBiZjg4N2Y5MjZmLmpwZwo+IEl0IGxvb2tzIGxpa2UgRFNQIG1v ZGUgd2l0aCBURE0sIHNvIGNhbiBJIHBhdGggcmVsYXRlZCBjb2RlcyBpbnRvCj4gU05EX1NPQ19E QUlGTVRfRFNQIHN3aXRjaD8KClllcywgdGhhdCdzIERTUCBtb2RlLgoKPiAqKipGb3Igdm9sdW1l IGNvbnRyb2xzIGJhc2VkIG9uIHN0ZXJlbyBwYWlycwo+IEV2ZW4gdGhvdWdoIERBQzEtREFDOCBh cmUgbmFtZWQgYXMgREFDTDEsREFDUjEsIERBQ0wyLERBQ1IyLi4uLCBidXQgdGhlCj4gREFDTHgg YW5kIERBQ1J4IGFyZSBub3QgYWx3YXlzIGluIGEgcGFpciwgaW4gZmFjdCwgdGhleSBhcmUgaW5k ZXBlbmRlbnQuIEFzCj4gYSBjb2RlYyBzdXBwb3J0aW5nIDggY2hhbm5lbHMsIGl0IGNhbiBiZSBj b25maWdlZCBpbnRvIDIsIDIuMSwgNC4xLCA1LjEsCj4gNi4xLCA3LjEsIGhvdyB0byBoYW5kbGUg dGhlIHBhaXJzPwoKVGhhdCdzIGZhaXJseSBzdGFuZGFyZCBhbmQgbm90IHJlYWxseSBhIHByYWN0 aWNhbCBwcm9ibGVtLiAgU2luY2UKYXBwbGljYXRpb25zIGNhbiBhZGRyZXNzIGVhY2ggY2hhbm5l bCBvZiBhIHN0ZXJlbyBjb250cm9sIGluZGVwZW5kYW50bHkKdGhleSBkb24ndCBsb29zZSBhbnkg Y29udHJvbCBmcm9tIGdyb3VwaW5nIHRoZSBjaGFubmVscyB0b2dldGhlci4KSGF2aW5nIHRoZSBz dGVyZW8gY29udHJvbHMganVzdCBtYWtlcyBpdCBhIGJpdCBlYXNpZXIgd2hlbiB0aGV5IGFyZSB1 c2VkCnRoYXQgd2F5LgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcK aHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2 ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755645AbZFVK5e (ORCPT ); Mon, 22 Jun 2009 06:57:34 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751173AbZFVK50 (ORCPT ); Mon, 22 Jun 2009 06:57:26 -0400 Received: from opensource.wolfsonmicro.com ([80.75.67.52]:40435 "EHLO opensource2.wolfsonmicro.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751138AbZFVK50 (ORCPT ); Mon, 22 Jun 2009 06:57:26 -0400 Date: Mon, 22 Jun 2009 11:57:28 +0100 From: Mark Brown To: =?utf-8?B?5a6L5a6d5Y2O?= <21cnbao@gmail.com> Cc: lrg@slimlogic.co.uk, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Mike Frysinger Subject: Re: [PATCH] New ASoC Drivers for ADI AD1938 codec Message-ID: <20090622105727.GA29144@opensource.wolfsonmicro.com> References: <1245403695-20537-1-git-send-email-21cnbao@gmail.com> <20090619104738.GF5270@sirena.org.uk> <3c17e3570906212008n6071e987sbcd4b9377364ae78@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <3c17e3570906212008n6071e987sbcd4b9377364ae78@mail.gmail.com> X-Cookie: Don't get to bragging. User-Agent: Mutt/1.5.17+20080114 (2008-01-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 22, 2009 at 11:08:27AM +0800, 宋宝华 wrote: [Please reply in-line, interspersing your new text into the message you're replying to - it makes the discussion much easier to follow.] > Hi Mark, > ***For the new DAI format > According to I2S spec, it doesn't definite a I2S with TDM as a standard I2S. > http://www.nxp.com/acrobat_download/various/I2SBUS.pdf It's a de facto standard - several other vendors implement TDM in exactly the same fashion. If you think about it this is a natural way to handle TDM in I2S. > It looks like you are admitting this kind of timing into I2S DAI too: > http://i3.6.cn/cvbnm/8f/3d/08/268a4560e0daa1b41d69b82419da06e1.jpg > I think I can follow it too. The timing you're showing there is essentially a DSP mode with the left and right channels alternating rather than an I2S style where the polarity of the LRCLK signal indicates if the data transmitted at the same time is for the left or right channel. I'd need to think about it in slightly more detail but probably it is actually a DSP mode - with the DSP modes only one edge of the frame sync is used so the other edge can be anywhere else within the frame. > Due to my test boards, at present, the AD1938 is working in and supporting > TDM timing like the diagram: > http://i3.6.cn/cvbnm/2f/e2/f2/03ae2b51c4e90749972e70bf887f926f.jpg > It looks like DSP mode with TDM, so can I path related codes into > SND_SOC_DAIFMT_DSP switch? Yes, that's DSP mode. > ***For volume controls based on stereo pairs > Even though DAC1-DAC8 are named as DACL1,DACR1, DACL2,DACR2..., but the > DACLx and DACRx are not always in a pair, in fact, they are independent. As > a codec supporting 8 channels, it can be configed into 2, 2.1, 4.1, 5.1, > 6.1, 7.1, how to handle the pairs? That's fairly standard and not really a practical problem. Since applications can address each channel of a stereo control independantly they don't loose any control from grouping the channels together. Having the stereo controls just makes it a bit easier when they are used that way.