All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
To: Mark Brown <broonie@kernel.org>
Cc: Jean-Francois Moine <moinejf@free.fr>,
	alsa-devel@alsa-project.org, Takashi Iwai <tiwai@suse.de>,
	linux-kernel@vger.kernel.org, Liam Girdwood <lgirdwood@gmail.com>,
	Rob Herring <rob.herring@calxeda.com>,
	devicetree-discuss@vger.kernel.org,
	Russell King <rmk+kernel@arm.linux.org.uk>
Subject: Re: [alsa-devel] [PATCH v3] ARM: kirkwood: extend the kirkwood i2s driver for DT usage
Date: Tue, 23 Jul 2013 14:59:06 +0200	[thread overview]
Message-ID: <51EE7E1A.3040301@gmail.com> (raw)
In-Reply-To: <20130723123444.GW9858@sirena.org.uk>

On 07/23/13 14:34, Mark Brown wrote:
> On Tue, Jul 23, 2013 at 10:46:15AM +0200, Jean-Francois Moine wrote:
>
>> +	np = pdev->dev.of_node;
>> +	if (np) {
>> +		struct of_phandle_args clkspec;
>> +
>> +		priv->burst = 128;			/* might be 32 or 128 */
>
> The comment says this needs to be variable (depending on what?) but it's
> hard coded.
>
>> +		priv->clk = of_clk_get(np, 0);	/* internal clock */
>> +		err = of_parse_phandle_with_args(np,
>> +					"clocks", "#clock-cells", 1,
>> +					&clkspec);
>
> As others have pointed out if you need to change the clock get code
> there's something wrong here, DT should be handled transparently by the
> clock API.

IMHO the reason why of_clk_get() was/is mis-used in that way is mostly
compatibility with legacy platform_data based setup.

Kirkwood-i2s never knew about anything else than internal clock, then
Dove allows additional external clock input, aso. All changes are
incremental and more or less sane. But now is a good opportunity to
clean up this.

As Sascha Hauer pointed out, clocks should be distinguished by names
(clock-names property) instead of position and then use
devm_clk_get(&pdev->dev, "internal") and
devm_clk_get(&pdev->dev, "external") respectively.

This will possibly also require to update platform_data and legacy
users of kirkwood-i2s or have different setup functions for non-DT
and DT.

Also, while ASoC API separates the audio-controller into cpu-side
and codec-side parts, the DT should not. IIRC and as Russell repeated
again, we mentioned to merge kirkwood-i2s.c and kirkwood-dma.c into
a single file, didn't we?

I know we didn't care that much in the past, but one last thing that I
catched while reading another thead about compatible strings:

We should really be more careful about those. The correct usage
of compatible strings should be "marvell,mvebu-i2s" as common fallback,
but also "marvell,dove-i2s" and "marvell,kirkwood-i2s" for the SoC dtsi
files. We do not need to have all possible compatible strings in the
_driver's_ of_device_id table but the dtsi should contain them.

Finally, I2S DT node will end up as:

i2s1: audio-controller@b4000 {
	compatible = "marvell,dove-i2s", "marvell,mvebu-i2s";
	reg = <0xb4000 0x2210>;
	interrupts = <21>, <22>;
	clocks = <&gate_clk 13>, <&si5351a 1>;
	clock-names = "internal", "external";
};

Jean-Francois, can you re-spin your patches with the comments made by
others and the above summary? I really like to see i2s for DT soon,
although we will not be able to support multiple codecs per DAI, yet.

Sebastian

  reply	other threads:[~2013-07-23 12:59 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-23  8:46 [PATCH v3] ARM: kirkwood: extend the kirkwood i2s driver for DT usage Jean-Francois Moine
2013-07-23  8:53 ` Russell King - ARM Linux
2013-07-23  8:53   ` Russell King - ARM Linux
2013-07-23  9:03   ` Lars-Peter Clausen
2013-07-23  9:03     ` Lars-Peter Clausen
2013-07-23  9:08   ` Sascha Hauer
2013-07-23  9:08     ` [alsa-devel] " Sascha Hauer
2013-07-23  9:39     ` Russell King - ARM Linux
2013-07-23  9:39       ` [alsa-devel] " Russell King - ARM Linux
2013-07-23  9:48       ` Sascha Hauer
2013-07-23 12:34 ` Mark Brown
2013-07-23 12:34   ` Mark Brown
2013-07-23 12:59   ` Sebastian Hesselbarth [this message]
2013-07-23 13:20     ` Mark Brown
2013-07-23 13:20       ` [alsa-devel] " Mark Brown
2013-07-23 13:30       ` Sebastian Hesselbarth
2013-07-23 13:30         ` [alsa-devel] " Sebastian Hesselbarth
2013-07-23 13:50         ` Russell King - ARM Linux
2013-07-23 13:50           ` [alsa-devel] " Russell King - ARM Linux
2013-07-23 17:04           ` Mark Brown
2013-07-23 17:04             ` [alsa-devel] " Mark Brown
2013-07-23 15:01         ` Mark Brown
2013-07-23 15:19           ` Russell King - ARM Linux
2013-07-23 15:19             ` [alsa-devel] " Russell King - ARM Linux
2013-07-23 17:16             ` Mark Brown
2013-07-23 17:16               ` [alsa-devel] " Mark Brown
2013-07-23 15:34         ` Jean-Francois Moine

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=51EE7E1A.3040301@gmail.com \
    --to=sebastian.hesselbarth@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree-discuss@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=moinejf@free.fr \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=rob.herring@calxeda.com \
    --cc=tiwai@suse.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 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.