From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: Re: [PATCH] ASoC: generic: add generic compound card with DT support Date: Wed, 1 Jan 2014 21:08:14 +0100 Message-ID: <20140101210814.31e3f3a9@armhf> References: <20131231113138.102044cf@armhf> <52C466E1.3030302@metafoo.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp6-g21.free.fr (smtp6-g21.free.fr [212.27.42.6]) by alsa0.perex.cz (Postfix) with ESMTP id 3452726109F for ; Wed, 1 Jan 2014 21:09:07 +0100 (CET) In-Reply-To: <52C466E1.3030302@metafoo.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Lars-Peter Clausen Cc: alsa-devel@alsa-project.org, Mark Brown , Liam Girdwood , linux-kernel@vger.kernel.org List-Id: alsa-devel@alsa-project.org T24gV2VkLCAwMSBKYW4gMjAxNCAyMDowNTowNSArMDEwMApMYXJzLVBldGVyIENsYXVzZW4gPGxh cnNAbWV0YWZvby5kZT4gd3JvdGU6Cgo+IEFzIE1hcmsgYWxzbyBzYWlkLCB0aGlzIGJpbmRpbmcg ZGVmaW5pdGVseSBsZWFrcyB3YXkgdG9vIG11Y2ggaW50ZXJuYWxzIG9mCj4gdGhlIGN1cnJlbnQg QVNvQyBpbXBsZW1lbnRhdGlvbi4gSW4gbXkgb3BpbmlvbiB0aGUgd2F5IGZvcndhcmQgZm9yIEFT b0MgaXMKPiB0byBzdG9wIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZGlmZmVyZW50IHR5cGVzIG9m IGNvbXBvbmVudHMuIFRoaXMgaXMgb24gb25lCj4gaGFuZCBDT0RFQ1MgYW5kIENQVS1EQUlzIGFu ZCBvbiB0aGUgb3RoZXIgaGFuZCBhbHNvIGZyb250LWVuZCBhbmQgYmVjay1lbmQKPiBEQUlzLiBU aGUgZmlyc3Qgc3RlcHMgaW4gdGhpcyBkaXJlY3Rpb24gaGF2ZSBhbHJlYWR5IGJlZW4gdGFrZSBi eSB0aGUgc3RhcnQKPiBvZiB0aGUgY29tcG9uZW50LWZpY2F0aW9uLCBidXQgaXRzIHN0aWxsIGEg bG9uZyB3YXkgdG8gZ28uIEV4cG9zaW5nIHRob3NlCj4gY29uY2VwdHMgdmlhIHRoZSBkZXZpY2V0 cmVlIHdpbGwgb25seSBtYWtlIGl0IGhhcmRlciB0byBnZXQgcmlkIG9mIHRoZW0KPiBsYXRlci4g VGhlIGJpbmRpbmdzIGZvciBhIGNvbXBvdW5kIGNhcmQgc2hvdWxkIGVzc2VudGlhbGx5IGRlc2Ny aWJlIHdoaWNoCj4gY29tcG9uZW50cyBhcmUgaW52b2x2ZWQgYW5kIGhvdyB0aGUgZmFicmljIGJl dHdlZW4gYW5kIGFyb3VuZCB0aGVtIGxvb2tzCj4gbGlrZS4gSWYgdGhlIHR5cGUgb2YgdGhlIGNv bXBvbmVudCBpcyBuZWVkZWQgaW4gdGhlIEFTb0MgaW1wbGVtZW50YXRpb24gaXQKPiBzaG91bGQg YmUgcG9zc2libGUgdG8gYXV0by1kaXNjb3ZlciBpdC4gQWxzbyBJIHRoaW5rIHdlIHdhbnQgdG8g YWxpZ24gdGhlCj4gZGV2aWNldHJlZSBiaW5kaW5ncyB3aXRoIHdoYXQgdGhlIG1lZGlhIHBlb3Bs ZSBoYXZlIGJlZW4gZG9pbmdbMV0uCgooeW91IGZvcmdvdCB0aGUgWzFdIHJlZmVyZW5jZSkKCj4g QXVkaW8gYW5kCj4gdmlkZW8gYXJlIG5vdCB0aGF0IGRpZmZlcmVudCBpbiB0aGlzIHJlZ2FyZCBh bmQgdGhlcmUgd2lsbCBhbHNvIGJlIGJvYXJkcwo+IHdoZXJlIHRoZSBhdWRpbyBhbmQgdmlkZW8g ZmFicmljIHdpbGwgYmUgaW50ZXJtaW5nbGVkICAoZS5nLiBsaWtlIG9uIHlvdXIKPiBib2FyZCB3 aXRoIEhETUkpLgoKSSBmb3VuZCBhIHdheSB0byBkaXNjb3ZlciB0aGUgREFJIGxpbmsgdHlwZXMg Zm9yIG15IHN5c3RlbTogd2hlbiBzaW1wbGUKREFQTSwgdGhlIGtpcmt3b29kIENQVSBEQUlzIGhh dmUgYW4gSUQgIT0gMC4gRm9yIHRoZSBDdWJveCwgdGhlIENQVSBEQUkKb2YgdGhlIGZpcnN0IGxp bmsgKHN5c3RlbSBwbGF5YmFjaykgaGFzIHRoZSBJRCAwLCBzbyBJIGNhbiBtb3ZlIHRvIERQQ00K c2V0dGluZyB0aGUgJ2R5bmFtaWMnIGFuZCAnbm9fcGNtJyBmbGFncyBpbiB0aGUgREFJIGxpbmtz IGF0IHNuZApwbGF0Zm9ybSBwcm9iZSB0aW1lLgoKVGhlbiwgYWZ0ZXIgc29tZSBleHRlbnNpb25z IG9mIHRoZSBzaW1wbGUtY2FyZCwgdGhlIERUIHdvdWxkIGxvb2sgbGlrZQoobm90IHRlc3RlZCB5 ZXQpOgoKCXNvdW5kIHsKCQljb21wYXRpYmxlID0gInNpbXBsZS1hdWRpby1jYXJkIjsKCQlzaW1w bGUtYXVkaW8tcm91dGluZyA9CgkJCSJIRE1JIEkyUyBQbGF5YmFjayIsCSJTeXN0ZW0gUGxheWJh Y2siLAoJCQkiSERNSSBTUERJRiBQbGF5YmFjayIsCSJTeXN0ZW0gUGxheWJhY2siLAoJCQkiU1BE SUYgUGxheWJhY2siLAkiU3lzdGVtIFBsYXliYWNrIiwKCgkJCSJoZG1pLW91dC1pMnMiLAkJIkhE TUkgSTJTIFBsYXliYWNrIiwKCQkJImhkbWktb3V0LXNwZGlmIiwJIkhETUkgU1BESUYgUGxheWJh Y2siLAoJCQkic3BkaWYtb3V0IiwJCSJTUERJRiBQbGF5YmFjayI7CgoJCXNpbXBsZS1hdWRpby1j YXJkLGNwdUAwIHsKCQkJbGluay1uYW1lID0gIlN5c3RlbSBhdWRpbyI7CS8qIGV4dGVuc2lvbiAq LwoJCQlzb3VuZC1kYWkgPSA8JmF1ZGlvMSAwPjsKCQkJcGxheWJhY2s7CQkJLyogZXh0ZW5zaW9u ICovCgkJCWZvcm1hdCA9ICJpMnMiOwoJCX07CgkJc2ltcGxlLWF1ZGlvLWNhcmQsY29kZWNAMCB7 CgkJCXNvdW5kLWRhaS1uYW1lID0gInNuZC1zb2MtZHVtbXktZGFpIjsKCQl9OwoKCQkJCQkJCS8q IG11bHRpLWxpbmtzIGV4dGVuc2lvbiAqLwoJCXNpbXBsZS1hdWRpby1jYXJkLGNwdUAxIHsKCQkJ bGluay1uYW1lID0gImhkbWktaTJzIjsKCQkJcGxhdGZvcm0tbmFtZSA9ICJzbmQtc29jLWR1bW15 IjsgLyogZXh0ZW5zaW9uICovCgkJCXNvdW5kLWRhaSA9IDwmYXVkaW8xIDE+OwoJCQlwbGF5YmFj azsKCQl9OwoJCXNpbXBsZS1hdWRpby1jYXJkLGNvZGVjQDEgewoJCQlzb3VuZC1kYWkgPSA8Jmhk bWlfY29kZWMgMD47CgkJfTsKCgkJc2ltcGxlLWF1ZGlvLWNhcmQsY3B1QDIgewoJCQlsaW5rLW5h bWUgPSAiaGRtaS1zcGRpZiI7CgkJCXBsYXRmb3JtLW5hbWUgPSAic25kLXNvYy1kdW1teSI7CgkJ CXNvdW5kLWRhaSA9IDwmYXVkaW8xIDI+OwoJCQlwbGF5YmFjazsKCQl9OwoJCXNpbXBsZS1hdWRp by1jYXJkLGNvZGVjQDIgewoJCQlzb3VuZC1kYWkgPSA8JmhkbWlfY29kZWMgMT47CgkJfTsKCgkJ c2ltcGxlLWF1ZGlvLWNhcmQsY3B1QDMgewoJCQlsaW5rLW5hbWUgPSAic3BkaWYiOwoJCQlwbGF0 Zm9ybS1uYW1lID0gInNuZC1zb2MtZHVtbXkiOwoJCQlzb3VuZC1kYWkgPSA8JmF1ZGlvMSAxPjsK CQkJcGxheWJhY2s7CgkJfTsKCQlzaW1wbGUtYXVkaW8tY2FyZCxjb2RlY0AzIHsKCQkJc291bmQt ZGFpID0gPCZzcGRpZl9jb2RlYz47CgkJfTsKCX07CgpNYXkgSSBnbyB0byB0aGlzIGRpcmVjdGlv bj8KCi0tIApLZW4gYXIgYydoZW50YcOxCXwJICAgICAgKiogQnJlaXpoIGhhIExpbnV4IGF0YXYh ICoqCkplZgkJfAkJaHR0cDovL21vaW5lamYuZnJlZS5mci8KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1k ZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHA6Ly9tYWlsbWFuLmFsc2EtcHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby9hbHNhLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754743AbaAAUJ7 (ORCPT ); Wed, 1 Jan 2014 15:09:59 -0500 Received: from smtp6-g21.free.fr ([212.27.42.6]:57016 "EHLO smtp6-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754132AbaAAUJ6 convert rfc822-to-8bit (ORCPT ); Wed, 1 Jan 2014 15:09:58 -0500 Date: Wed, 1 Jan 2014 21:08:14 +0100 From: Jean-Francois Moine To: Lars-Peter Clausen Cc: Liam Girdwood , alsa-devel@alsa-project.org, Mark Brown , linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH] ASoC: generic: add generic compound card with DT support Message-ID: <20140101210814.31e3f3a9@armhf> In-Reply-To: <52C466E1.3030302@metafoo.de> References: <20131231113138.102044cf@armhf> <52C466E1.3030302@metafoo.de> X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.22; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 01 Jan 2014 20:05:05 +0100 Lars-Peter Clausen wrote: > As Mark also said, this binding definitely leaks way too much internals of > the current ASoC implementation. In my opinion the way forward for ASoC is > to stop to distinguish between different types of components. This is on one > hand CODECS and CPU-DAIs and on the other hand also front-end and beck-end > DAIs. The first steps in this direction have already been take by the start > of the component-fication, but its still a long way to go. Exposing those > concepts via the devicetree will only make it harder to get rid of them > later. The bindings for a compound card should essentially describe which > components are involved and how the fabric between and around them looks > like. If the type of the component is needed in the ASoC implementation it > should be possible to auto-discover it. Also I think we want to align the > devicetree bindings with what the media people have been doing[1]. (you forgot the [1] reference) > Audio and > video are not that different in this regard and there will also be boards > where the audio and video fabric will be intermingled (e.g. like on your > board with HDMI). I found a way to discover the DAI link types for my system: when simple DAPM, the kirkwood CPU DAIs have an ID != 0. For the Cubox, the CPU DAI of the first link (system playback) has the ID 0, so I can move to DPCM setting the 'dynamic' and 'no_pcm' flags in the DAI links at snd platform probe time. Then, after some extensions of the simple-card, the DT would look like (not tested yet): sound { compatible = "simple-audio-card"; simple-audio-routing = "HDMI I2S Playback", "System Playback", "HDMI SPDIF Playback", "System Playback", "SPDIF Playback", "System Playback", "hdmi-out-i2s", "HDMI I2S Playback", "hdmi-out-spdif", "HDMI SPDIF Playback", "spdif-out", "SPDIF Playback"; simple-audio-card,cpu@0 { link-name = "System audio"; /* extension */ sound-dai = <&audio1 0>; playback; /* extension */ format = "i2s"; }; simple-audio-card,codec@0 { sound-dai-name = "snd-soc-dummy-dai"; }; /* multi-links extension */ simple-audio-card,cpu@1 { link-name = "hdmi-i2s"; platform-name = "snd-soc-dummy"; /* extension */ sound-dai = <&audio1 1>; playback; }; simple-audio-card,codec@1 { sound-dai = <&hdmi_codec 0>; }; simple-audio-card,cpu@2 { link-name = "hdmi-spdif"; platform-name = "snd-soc-dummy"; sound-dai = <&audio1 2>; playback; }; simple-audio-card,codec@2 { sound-dai = <&hdmi_codec 1>; }; simple-audio-card,cpu@3 { link-name = "spdif"; platform-name = "snd-soc-dummy"; sound-dai = <&audio1 1>; playback; }; simple-audio-card,codec@3 { sound-dai = <&spdif_codec>; }; }; May I go to this direction? -- Ken ar c'hentaƱ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/