From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: Re: [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio Date: Wed, 14 Jan 2015 08:55:01 +0100 Message-ID: <20150114085501.677dc4d2@armhf> References: <20150112140456.GI12302@n2100.arm.linux.org.uk> <20150112181341.4a53ea24@armhf> <20150112175705.GN12302@n2100.arm.linux.org.uk> <1421151718.4519.24.camel@pengutronix.de> <20150113122715.GP12302@n2100.arm.linux.org.uk> <20150113165411.5469930d@armhf> <20150113160313.GR12302@n2100.arm.linux.org.uk> <20150113200252.3dbfab14@armhf> <20150113192648.GU12302@n2100.arm.linux.org.uk> <54B574CD.9020905@ti.com> <20150113195415.GV12302@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150113195415.GV12302@n2100.arm.linux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King - ARM Linux Cc: "devicetree@vger.kernel.org" , "alsa-devel@alsa-project.org" , Andrew Jackson , "linux-kernel@vger.kernel.org" , Jyri Sarha , Mark Brown , "dri-devel@lists.freedesktop.org" List-Id: alsa-devel@alsa-project.org T24gVHVlLCAxMyBKYW4gMjAxNSAxOTo1NDoxNSArMDAwMApSdXNzZWxsIEtpbmcgLSBBUk0gTGlu dXggPGxpbnV4QGFybS5saW51eC5vcmcudWs+IHdyb3RlOgoKPiBPbiBUdWUsIEphbiAxMywgMjAx NSBhdCAwOTo0MTowMVBNICswMjAwLCBKeXJpIFNhcmhhIHdyb3RlOgo+ID4gT24gMDEvMTMvMjAx NSAwOToyNiBQTSwgUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IHdyb3RlOgo+ID4gPlNDTEs6IF9+ X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35ffl9+X35f fl9+X35ffl8KPiA+ID4gICBXUzogX19+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19ffgo+ID4gPkkyUzE6IGxsbW0uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4ubGxtbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5sbG0KPiA+ ID5JMlMyOiBsbG1tLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLmxsbW0uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4ubGxtCj4gPiA+STJTMzogbGxtbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi5sbG1tLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLmxsbQo+ID4gPkkyUzQ6IGxsbW0u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ubGxtbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li5sbG0KPiA+ID4KPiA+ID5Tbywgd2hhdCBJJ20gc2F5aW5nIGlzIHRoYXQgaXQgaXNfaW1wb3Nz aWJsZV8gIHRvIGRyaXZlIHRoZSBUREE5OTh4IHVzaW5nCj4gPiA+bXVsdGlwbGUgSTJTIHN0cmVh bXMgd2hpY2ggYXJlIG5vdCBwcm9kdWNlZCBieSB0aGUgc2FtZSBJMlMgYmxvY2suCj4gPiAKPiA+ IFRoaXMgaXMgYmVzaWRlcyB0aGUgcG9pbnQsIGJ1dCBpdCBpcyBwb3NzaWJsZSB0aGF0IG9uZSBv ZiB0aGUgbXVsdGlwbGUgSTJTCj4gPiBibG9ja3MgaXMgdGhlIGJpdC1jbG9jayBhbmQgZnJhbWUt Y2xvY2sgbWFzdGVyIHRvIHRoZSBpMnMgYnVzIGFuZCB0aGUgb3RoZXJzCj4gPiBhcmUgc2xhdmVz IHRvIGl0IChiYW5naW5nIHRoZWlyIGJpdHMgYWNjb3JkaW5nIHRvIFNDTEsgYW5kIFdTIG9mIHRo ZSBJMlMKPiA+IG1hc3RlcikuIEhvd2V2ZXIsIGluIHRoaXMgc2l0dWF0aW9uIHRoZXJlIHJlYWxs eSBpcyBvbmx5IG9uZSBpMnMgYnVzIHdpdGgKPiA+IG11bHRpcGxlIGRhdGEgcGlucy4KPiA+IAo+ ID4gSnVzdCBteSAwLjAy4oKsIHRvIHRoaXMgZGlzY3Vzc2lvbi4KPiAKPiBSaWdodCwgdGhhdCdz IGFib3V0IHRoZSBvbmx5IHdheSBpdCBjb3VsZCB3b3JrLgo+IAo+IFRvIHJlcHJlc2VudCB0aGF0 IGluIERULCBJIHdvdWxkIGltYWdpbmUgd2UnZCBuZWVkIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4g Cj4gCSNhZGRyZXNzLWNlbGxzID0gPDE+Owo+IAkjc2l6ZS1jZWxscyA9IDwwPjsKPiAJLi4uCj4g ICAgICAgICBwb3J0QDEgeyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFQMSwyID0gSTJTICov Cj4gCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKPiAJCSNzaXplLWNlbGxzID0gPDA+Owo+ICAgICAg ICAgICAgICAgICBwb3J0LXR5cGUgPSAiaTJzIjsKPiAgICAgICAgICAgICAgICAgcmVnID0gPDB4 MDE+OwkJLyogV1MgKi8KPiAgICAgICAgICAgICAgICAgdGRhOTk4eF9pMnMxOiBlbmRwb2ludEAy IHsKPiAJCQlyZWcgPSA8MHgwMj47CS8qIEFQMSAqLwo+ICAgICAgICAgICAgICAgICAgICAgICAg IHJlbW90ZS1lbmRwb2ludCA9IDwmYXVkaW8xX2kycz47Cj4gICAgICAgICAgICAgICAgIH07Cj4g ICAgICAgICAgICAgICAgIHRkYTk5OHhfaTJzMjogZW5kcG9pbnRANCB7Cj4gCQkJcmVnID0gPDB4 MDQ+OwkvKiBBUDIgKi8KPiAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQg PSA8JmF1ZGlvMl9pMnM+Owo+ICAgICAgICAgICAgICAgICB9Owo+ICAgICAgICAgfTsKPiAKPiB3 aGVyZSBhdWRpbzFfaTJzIGlzIG9wZXJhdGluZyBpbiBtYXN0ZXIgbW9kZSwgYW5kIGF1ZGlvMl9p MnMgaXMKPiBvcGVyYXRpbmcgaW4gc2xhdmUgbW9kZSBmb3IgYm90aCBXUyBhbmQgU0NMSy4KPiAK PiBJZiB3ZSBjYW4gYWdyZWUgb24gdGhhdCwgdGhlbiBJJ20gaGFwcHkgd2l0aCB0aGUgcHJvcG9z ZWQgYmluZGluZy4KPiAoUmVtZW1iZXIgdGhhdCAjYWRkcmVzcy1jZWxscyBhbmQgI3NpemUtY2Vs bHMgYXJlIHJlcXVpcmVkIGluIHRoZQo+IHBhcmVudCB3aGVyZSB3ZSBoYXZlIHJlZz0gaW4gdGhl IGNoaWxkLikKCiNhZGRyZXNzLWNlbGxzIGFuZCAjc2l6ZS1jZWxscyBtYXkgYmUgZGVmaW5lZCBp biBhbnkgb2YgdGhlIHVwcGVyCnBhcmVudCwgc28sIGFzIGl0IGlzIGRlZmluZWQgaW4gdGhlIGRl dmljZSwgaXQgaXMgbm90IG5lZWRlZCBpbiB0aGUKcG9ydCAoc2VlIG9mX25fYWRkcl9jZWxscyBp biBkcml2ZXJzL29mL2Jhc2UuYykuCgpXZWxsLCBJIGFtIGEgYml0IGxvc3QgYmV0d2VlbiAob25s eSBvbmUgc291cmNlIC8gbWFueSBjaGFubmVscyAtIEkyUwpidXNzZXMpIGFuZCAobWFueSBzb3Vy Y2VzIC8gb25lIEkycyBidXMhKS4KCkFueXdheSwgSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgZXhh bXBsZS4KSSdkIGV4cGVjdCB0aGF0IGEgcG9ydCB3b3VsZCBiZSBhIERBSS4KCklmIHllcywgd2hl biBwbGF5aW5nIGlzIGFjdGl2ZSwgYm90aCBlbmRwb2ludHMgcmVjZWl2ZSBhbiBhdWRpbyBzdHJl YW0KZnJvbSB0aGUgcmVtb3RlIGF1ZGlvIGRldmljZXMsIGFuZCB0aGUgQVAgcmVnaXN0ZXIgaXMg YWx3YXlzIHNldCB0bwoweDA3ICg9IDB4MDEgfCAweDAyIHwgMHgwNCkuClRoZW4sIGl0IHdvdWxk IGhhdmUgYmVlbiBzaW1wbGVyIHRvIGhhdmU6CgogCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCSNz aXplLWNlbGxzID0gPDA+OwogCS4uLgogICAgICAgICBwb3J0QDcgeyAgICAgICAgICAgICAgICAg ICAgICAgIC8qIEFQMSwyID0gSTJTICovCiAgICAgICAgICAgICAgICAgcG9ydC10eXBlID0gImky cyI7CiAgICAgICAgICAgICAgICAgcmVnID0gPDB4MDc+OwkJLyogV1MgKyBBUDEgKyBBUDIgKi8K ICAgICAgICAgICAgICAgICB0ZGE5OTh4X2kyczE6IGVuZHBvaW50QDEgewogICAgICAgICAgICAg ICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZhdWRpbzFfaTJzPjsKICAgICAgICAgICAg ICAgICB9OwogICAgICAgICAgICAgICAgIHRkYTk5OHhfaTJzMjogZW5kcG9pbnRAMiB7CiAgICAg ICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmF1ZGlvMl9pMnM+OwogICAg ICAgICAgICAgICAgIH07CiAgICAgICAgIH07CgpJZiBubywgdGhlIHR3byBEQUlzIG11c3QgYmUg Y3JlYXRlZCBmcm9tIHRoZSBlbmRwb2ludHMsIHBlcm1pdHRpbmcKc3RyZWFtaW5nIG9uIGkyczEg YWxvbmUsIGkyczIgYWxvbmUgb3IgYm90aCBpMnMxK2kyczIgYXQgdGhlIHNhbWUgdGltZS4KVGhl biwgaXQgd291bGQgaGF2ZSBiZWVuIHNpbXBsZXIgdG8gZGVmaW5lIHRoZSBEQUlzIGZyb20gdGhl IHBvcnRzOgoKCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCSNzaXplLWNlbGxzID0gPDA+OwogCS4u LgogICAgICAgICBwb3J0QDMgeyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFQMSA9IEkyUyAq LwogICAgICAgICAgICAgICAgIHBvcnQtdHlwZSA9ICJpMnMiOwogICAgICAgICAgICAgICAgIHJl ZyA9IDwweDAzPjsJCS8qIFdTICsgQVAxICovCiAgICAgICAgICAgICAgICAgdGRhOTk4eF9pMnMx OiBlbmRwb2ludCB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8 JmF1ZGlvMV9pMnM+OwogICAgICAgICAgICAgICAgIH07CiAgICAgICAgIH07CiAgICAgICAgIHBv cnRANSB7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQVAyID0gSTJTICovCiAgICAgICAgICAg ICAgICAgcG9ydC10eXBlID0gImkycyI7CiAgICAgICAgICAgICAgICAgcmVnID0gPDB4MDU+OwkJ LyogV1MgKyBBUDIgKi8KICAgICAgICAgICAgICAgICB0ZGE5OTh4X2kyczE6IGVuZHBvaW50IHsK ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmYXVkaW8xX2kycz47 CiAgICAgICAgICAgICAgICAgfTsKCX07CgotLSAKS2VuIGFyIGMnaGVudGHDsQl8CSAgICAgICoq IEJyZWl6aCBoYSBMaW51eCBhdGF2ISAqKgpKZWYJCXwJCWh0dHA6Ly9tb2luZWpmLmZyZWUuZnIv Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933292AbbANHzU (ORCPT ); Wed, 14 Jan 2015 02:55:20 -0500 Received: from smtp6-g21.free.fr ([212.27.42.6]:44630 "EHLO smtp6-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754399AbbANHzR convert rfc822-to-8bit (ORCPT ); Wed, 14 Jan 2015 02:55:17 -0500 Date: Wed, 14 Jan 2015 08:55:01 +0100 From: Jean-Francois Moine To: Russell King - ARM Linux Cc: Jyri Sarha , Philipp Zabel , Andrew Jackson , Mark Brown , Dave Airlie , "alsa-devel@alsa-project.org" , "devicetree@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio Message-ID: <20150114085501.677dc4d2@armhf> In-Reply-To: <20150113195415.GV12302@n2100.arm.linux.org.uk> References: <20150112140456.GI12302@n2100.arm.linux.org.uk> <20150112181341.4a53ea24@armhf> <20150112175705.GN12302@n2100.arm.linux.org.uk> <1421151718.4519.24.camel@pengutronix.de> <20150113122715.GP12302@n2100.arm.linux.org.uk> <20150113165411.5469930d@armhf> <20150113160313.GR12302@n2100.arm.linux.org.uk> <20150113200252.3dbfab14@armhf> <20150113192648.GU12302@n2100.arm.linux.org.uk> <54B574CD.9020905@ti.com> <20150113195415.GV12302@n2100.arm.linux.org.uk> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; 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 Tue, 13 Jan 2015 19:54:15 +0000 Russell King - ARM Linux wrote: > On Tue, Jan 13, 2015 at 09:41:01PM +0200, Jyri Sarha wrote: > > On 01/13/2015 09:26 PM, Russell King - ARM Linux wrote: > > >SCLK: _~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_ > > > WS: __~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________________________~ > > >I2S1: llmm............................llmm............................llm > > >I2S2: llmm............................llmm............................llm > > >I2S3: llmm............................llmm............................llm > > >I2S4: llmm............................llmm............................llm > > > > > >So, what I'm saying is that it is_impossible_ to drive the TDA998x using > > >multiple I2S streams which are not produced by the same I2S block. > > > > This is besides the point, but it is possible that one of the multiple I2S > > blocks is the bit-clock and frame-clock master to the i2s bus and the others > > are slaves to it (banging their bits according to SCLK and WS of the I2S > > master). However, in this situation there really is only one i2s bus with > > multiple data pins. > > > > Just my 0.02€ to this discussion. > > Right, that's about the only way it could work. > > To represent that in DT, I would imagine we'd need something like this: > > #address-cells = <1>; > #size-cells = <0>; > ... > port@1 { /* AP1,2 = I2S */ > #address-cells = <1>; > #size-cells = <0>; > port-type = "i2s"; > reg = <0x01>; /* WS */ > tda998x_i2s1: endpoint@2 { > reg = <0x02>; /* AP1 */ > remote-endpoint = <&audio1_i2s>; > }; > tda998x_i2s2: endpoint@4 { > reg = <0x04>; /* AP2 */ > remote-endpoint = <&audio2_i2s>; > }; > }; > > where audio1_i2s is operating in master mode, and audio2_i2s is > operating in slave mode for both WS and SCLK. > > If we can agree on that, then I'm happy with the proposed binding. > (Remember that #address-cells and #size-cells are required in the > parent where we have reg= in the child.) #address-cells and #size-cells may be defined in any of the upper parent, so, as it is defined in the device, it is not needed in the port (see of_n_addr_cells in drivers/of/base.c). Well, I am a bit lost between (only one source / many channels - I2S busses) and (many sources / one I2s bus!). Anyway, I don't understand your example. I'd expect that a port would be a DAI. If yes, when playing is active, both endpoints receive an audio stream from the remote audio devices, and the AP register is always set to 0x07 (= 0x01 | 0x02 | 0x04). Then, it would have been simpler to have: #address-cells = <1>; #size-cells = <0>; ... port@7 { /* AP1,2 = I2S */ port-type = "i2s"; reg = <0x07>; /* WS + AP1 + AP2 */ tda998x_i2s1: endpoint@1 { remote-endpoint = <&audio1_i2s>; }; tda998x_i2s2: endpoint@2 { remote-endpoint = <&audio2_i2s>; }; }; If no, the two DAIs must be created from the endpoints, permitting streaming on i2s1 alone, i2s2 alone or both i2s1+i2s2 at the same time. Then, it would have been simpler to define the DAIs from the ports: #address-cells = <1>; #size-cells = <0>; ... port@3 { /* AP1 = I2S */ port-type = "i2s"; reg = <0x03>; /* WS + AP1 */ tda998x_i2s1: endpoint { remote-endpoint = <&audio1_i2s>; }; }; port@5 { /* AP2 = I2S */ port-type = "i2s"; reg = <0x05>; /* WS + AP2 */ tda998x_i2s1: endpoint { remote-endpoint = <&audio1_i2s>; }; }; -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/