From: Jean-Francois Moine <moinejf@free.fr>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
Andrew Jackson <Andrew.Jackson@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Jyri Sarha <jsarha@ti.com>, Mark Brown <broonie@kernel.org>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio
Date: Wed, 14 Jan 2015 08:55:01 +0100 [thread overview]
Message-ID: <20150114085501.677dc4d2@armhf> (raw)
In-Reply-To: <20150113195415.GV12302@n2100.arm.linux.org.uk>
On Tue, 13 Jan 2015 19:54:15 +0000
Russell King - ARM Linux <linux@arm.linux.org.uk> 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/
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Jean-Francois Moine <moinejf@free.fr>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Jyri Sarha <jsarha@ti.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Andrew Jackson <Andrew.Jackson@arm.com>,
Mark Brown <broonie@kernel.org>, Dave Airlie <airlied@gmail.com>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio
Date: Wed, 14 Jan 2015 08:55:01 +0100 [thread overview]
Message-ID: <20150114085501.677dc4d2@armhf> (raw)
In-Reply-To: <20150113195415.GV12302@n2100.arm.linux.org.uk>
On Tue, 13 Jan 2015 19:54:15 +0000
Russell King - ARM Linux <linux@arm.linux.org.uk> 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/
next prev parent reply other threads:[~2015-01-14 7:55 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-07 11:06 [PATCH v9 0/4] ASoC: tda998x: add a codec to the HDMI transmitter Jean-Francois Moine
2015-01-07 11:06 ` Jean-Francois Moine
2015-01-07 9:10 ` [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio Jean-Francois Moine
2015-01-07 9:10 ` Jean-Francois Moine
2015-01-07 14:39 ` Andrew Jackson
2015-01-07 14:39 ` Andrew Jackson
2015-01-07 17:08 ` Jean-Francois Moine
2015-01-07 17:08 ` Jean-Francois Moine
2015-01-07 17:18 ` Andrew Jackson
2015-01-07 17:18 ` Andrew Jackson
2015-01-07 17:33 ` Mark Brown
[not found] ` <0084acea5a3475a77531d6a77483f36d3469111a.1420628786.git.moinejf-GANU6spQydw@public.gmane.org>
2015-01-08 14:53 ` Jyri Sarha
2015-01-08 14:53 ` Jyri Sarha
[not found] ` <54AE99F5.1010404-l0cyMroinI0@public.gmane.org>
2015-01-08 16:42 ` Jean-Francois Moine
2015-01-08 16:42 ` Jean-Francois Moine
2015-01-08 20:04 ` Mark Brown
2015-01-08 20:04 ` Mark Brown
2015-01-09 9:25 ` Andrew Jackson
2015-01-09 9:25 ` Andrew Jackson
2015-01-09 10:13 ` Jyri Sarha
2015-01-09 10:13 ` Jyri Sarha
2015-01-09 11:30 ` Jean-Francois Moine
2015-01-09 11:30 ` Jean-Francois Moine
2015-01-09 11:45 ` Russell King - ARM Linux
2015-01-09 11:45 ` Russell King - ARM Linux
2015-01-09 12:54 ` Jean-Francois Moine
2015-01-09 12:54 ` Jean-Francois Moine
2015-01-09 13:07 ` Russell King - ARM Linux
2015-01-09 13:07 ` Russell King - ARM Linux
[not found] ` <20150109130725.GN12302-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-09 13:58 ` Andrew Jackson
2015-01-09 13:58 ` Andrew Jackson
2015-01-09 14:57 ` Russell King - ARM Linux
2015-01-09 17:38 ` Jean-Francois Moine
2015-01-09 17:38 ` Jean-Francois Moine
2015-01-09 20:01 ` Russell King - ARM Linux
2015-01-09 20:01 ` Russell King - ARM Linux
[not found] ` <20150109200127.GD12302-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-10 15:47 ` [alsa-devel] " Jean-Francois Moine
2015-01-10 15:47 ` Jean-Francois Moine
2015-01-12 9:25 ` Philipp Zabel
2015-01-12 9:25 ` Philipp Zabel
2015-01-12 12:25 ` Russell King - ARM Linux
2015-01-12 13:59 ` Philipp Zabel
2015-01-12 13:59 ` Philipp Zabel
2015-01-12 14:04 ` Russell King - ARM Linux
2015-01-12 14:04 ` Russell King - ARM Linux
2015-01-12 17:13 ` Jean-Francois Moine
2015-01-12 17:13 ` Jean-Francois Moine
2015-01-12 17:57 ` Russell King - ARM Linux
2015-01-12 17:57 ` Russell King - ARM Linux
2015-01-12 19:14 ` Jean-Francois Moine
2015-01-12 19:14 ` Jean-Francois Moine
2015-01-13 12:21 ` Philipp Zabel
2015-01-13 12:21 ` Philipp Zabel
2015-01-13 12:27 ` Russell King - ARM Linux
2015-01-13 12:27 ` Russell King - ARM Linux
2015-01-13 15:54 ` Jean-Francois Moine
2015-01-13 15:54 ` Jean-Francois Moine
2015-01-13 16:03 ` Russell King - ARM Linux
2015-01-13 16:03 ` Russell King - ARM Linux
2015-01-13 19:02 ` Jean-Francois Moine
2015-01-13 19:02 ` Jean-Francois Moine
2015-01-13 19:26 ` Russell King - ARM Linux
2015-01-13 19:26 ` Russell King - ARM Linux
2015-01-13 19:41 ` Jyri Sarha
2015-01-13 19:41 ` Jyri Sarha
2015-01-13 19:54 ` Russell King - ARM Linux
2015-01-13 19:54 ` Russell King - ARM Linux
2015-01-14 7:55 ` Jean-Francois Moine [this message]
2015-01-14 7:55 ` Jean-Francois Moine
2015-01-14 12:12 ` Russell King - ARM Linux
2015-01-14 12:12 ` Russell King - ARM Linux
2015-01-14 10:46 ` Philipp Zabel
2015-01-14 10:46 ` Philipp Zabel
2015-01-14 12:50 ` Mark Brown
2015-01-14 12:50 ` Mark Brown
2015-01-14 14:23 ` Russell King - ARM Linux
2015-01-14 14:23 ` Russell King - ARM Linux
2015-01-07 10:00 ` [PATCH v9 2/4] drm/i2c: tda998x: Change drvdata for audio extension Jean-Francois Moine
2015-01-07 10:00 ` Jean-Francois Moine
2015-01-07 10:51 ` [PATCH v9 3/4] ASoC: tda998x: add a codec to the HDMI transmitter Jean-Francois Moine
2015-01-07 15:10 ` Andrew Jackson
2015-01-07 15:10 ` Andrew Jackson
2015-01-07 15:41 ` Russell King - ARM Linux
2015-01-07 15:41 ` Russell King - ARM Linux
2015-01-07 18:02 ` Jean-Francois Moine
2015-01-09 10:24 ` Jyri Sarha
2015-01-09 10:24 ` Jyri Sarha
2015-01-09 11:15 ` Jean-Francois Moine
2015-01-09 11:15 ` Jean-Francois Moine
2015-01-09 11:19 ` Russell King - ARM Linux
2015-01-09 11:19 ` Russell King - ARM Linux
2015-01-09 11:45 ` Jean-Francois Moine
2015-01-09 11:45 ` Jean-Francois Moine
2015-01-09 11:48 ` Russell King - ARM Linux
2015-01-09 11:48 ` Russell King - ARM Linux
2015-01-07 17:34 ` Mark Brown
2015-01-07 17:34 ` Mark Brown
2015-01-08 14:55 ` Jyri Sarha
2015-01-08 14:55 ` Jyri Sarha
2015-01-09 17:39 ` Andrew Jackson
2015-01-09 17:39 ` Andrew Jackson
[not found] ` <54B0123C.9070800-5wv7dgnIgG8@public.gmane.org>
2015-01-09 17:54 ` Mark Brown
2015-01-09 17:54 ` Mark Brown
2015-01-13 9:24 ` Jean-Francois Moine
2015-01-13 9:24 ` Jean-Francois Moine
2015-01-11 21:03 ` Jyri Sarha
2015-01-11 21:03 ` Jyri Sarha
2015-01-13 7:41 ` Jean-Francois Moine
2015-01-13 7:41 ` Jean-Francois Moine
2015-01-07 11:01 ` [PATCH v9 4/4] drm/i2c: tda998x: set cts_n according to the sample width Jean-Francois Moine
2015-01-08 14:53 ` [PATCH v9 0/4] ASoC: tda998x: add a codec to the HDMI transmitter Jyri Sarha
2015-01-08 14:53 ` Jyri Sarha
2015-01-08 20:05 ` Mark Brown
2015-01-09 10:15 ` Jyri Sarha
2015-01-09 10:15 ` Jyri Sarha
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=20150114085501.677dc4d2@armhf \
--to=moinejf@free.fr \
--cc=Andrew.Jackson@arm.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jsarha@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.