All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Andrew Lunn <andrew@lunn.ch>,
	alsa-devel@alsa-project.org,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Jason Cooper <jason@lakedaemon.net>, Takashi Iwai <tiwai@suse.de>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RFC 00/13] Adding SPDIF support to kirkwood-i2s
Date: Mon, 05 Aug 2013 16:47:12 -0600	[thread overview]
Message-ID: <52002B70.5050109@wwwdotorg.org> (raw)
In-Reply-To: <51FFBF03.1000507@gmail.com>

On 08/05/2013 09:04 AM, Sebastian Hesselbarth wrote:
...
> So, having a look at the node in question:
> 
> sound {
>   compatible = "nvidia,tegra-audio-rt5640-beaver",
>                "nvidia,tegra-audio-rt5640";
>   nvidia,model = "NVIDIA Tegra Beaver";
> 
>   nvidia,audio-routing = "Headphones", "HPOR",
>                          "Headphones", "HPOL";
> 
>   nvidia,i2s-controller = <&tegra_i2s1>;
>   nvidia,audio-codec = <&rt5640>;
> 
>   nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
> 
>   clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
>            <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
>            <&tegra_car TEGRA30_CLK_EXTERN1>;
>   clock-names = "pll_a", "pll_a_out0", "mclk";
> };
> 
> all those "nvidia," prefixed properties are not nvidia-specific at all.

Indeed. I do still have a desire to do a more encompassing generic
binding that could use generic property names. However, I'm pulled in
many directions and never manage to get around to that:-( Months or even
years ago I did get as far as posting a binding with my ideas, but it
needs a lot more work to correctly separate out what can be generic and
what still needs to be SoC-/board-specific, how to represent it all in
DT, and how to code stuff up into useful utility code that ASoC machine
drivers will find useful, since custom machine drivers will almost
certainly be required to do the last pieces of integration of
SoC-specific control, even with a relatively complete generic DT
representation (unless you start putting Forth into DT for the last bits!)

> Also, all those "nvidia," properties would have fit very well into the
> i2s controller node - there may be more complex SoCs requiring an extra
> "sound card" node, Tegra is not.

That's certainly not true. It only looks like that because the DTs we
currently have upstream expose only a subset of the whole functionality
of the system. It's certainly not possible to move all the properties
into e.g. the I2S controller node in general, because the audio system
as a whole spans far more devices than just a single I2S controller.

> Even those foo-gpios properties can be generalized and moved to ASoC;
> have a look at MMC drivers using one common "cd-gpios" property for
> very different drivers. What is so special with Tegra and this gpio
> that it needs a vendor-specific property?
> 
> I was asking for generalizing those exact properties to generic ones
> and them move support for them to the ASoC/ALSA framework. With all
> that DT binding re-review coming up, I doubt that the tegra binding
> will be accepted again anyway.

I don't agree. It's not *generic*, but I don't see any requirement to
only accept completely generic bindings. If there was such a
requirement, we'd probably never get any more bindings for
embedded-style audio HW... The only thing that might change is removing
some of the prefixes from the property names.

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [alsa-devel] [PATCH RFC 00/13] Adding SPDIF support to kirkwood-i2s
Date: Mon, 05 Aug 2013 16:47:12 -0600	[thread overview]
Message-ID: <52002B70.5050109@wwwdotorg.org> (raw)
In-Reply-To: <51FFBF03.1000507@gmail.com>

On 08/05/2013 09:04 AM, Sebastian Hesselbarth wrote:
...
> So, having a look at the node in question:
> 
> sound {
>   compatible = "nvidia,tegra-audio-rt5640-beaver",
>                "nvidia,tegra-audio-rt5640";
>   nvidia,model = "NVIDIA Tegra Beaver";
> 
>   nvidia,audio-routing = "Headphones", "HPOR",
>                          "Headphones", "HPOL";
> 
>   nvidia,i2s-controller = <&tegra_i2s1>;
>   nvidia,audio-codec = <&rt5640>;
> 
>   nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
> 
>   clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
>            <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
>            <&tegra_car TEGRA30_CLK_EXTERN1>;
>   clock-names = "pll_a", "pll_a_out0", "mclk";
> };
> 
> all those "nvidia," prefixed properties are not nvidia-specific at all.

Indeed. I do still have a desire to do a more encompassing generic
binding that could use generic property names. However, I'm pulled in
many directions and never manage to get around to that:-( Months or even
years ago I did get as far as posting a binding with my ideas, but it
needs a lot more work to correctly separate out what can be generic and
what still needs to be SoC-/board-specific, how to represent it all in
DT, and how to code stuff up into useful utility code that ASoC machine
drivers will find useful, since custom machine drivers will almost
certainly be required to do the last pieces of integration of
SoC-specific control, even with a relatively complete generic DT
representation (unless you start putting Forth into DT for the last bits!)

> Also, all those "nvidia," properties would have fit very well into the
> i2s controller node - there may be more complex SoCs requiring an extra
> "sound card" node, Tegra is not.

That's certainly not true. It only looks like that because the DTs we
currently have upstream expose only a subset of the whole functionality
of the system. It's certainly not possible to move all the properties
into e.g. the I2S controller node in general, because the audio system
as a whole spans far more devices than just a single I2S controller.

> Even those foo-gpios properties can be generalized and moved to ASoC;
> have a look at MMC drivers using one common "cd-gpios" property for
> very different drivers. What is so special with Tegra and this gpio
> that it needs a vendor-specific property?
> 
> I was asking for generalizing those exact properties to generic ones
> and them move support for them to the ASoC/ALSA framework. With all
> that DT binding re-review coming up, I doubt that the tegra binding
> will be accepted again anyway.

I don't agree. It's not *generic*, but I don't see any requirement to
only accept completely generic bindings. If there was such a
requirement, we'd probably never get any more bindings for
embedded-style audio HW... The only thing that might change is removing
some of the prefixes from the property names.

  parent reply	other threads:[~2013-08-05 22:47 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-04 19:21 [PATCH RFC 00/13] Adding SPDIF support to kirkwood-i2s Russell King - ARM Linux
2013-08-04 19:21 ` Russell King - ARM Linux
2013-08-04 19:22 ` [PATCH RFC 01/13] ASoC: kirkwood: merge struct kirkwood_dma_priv with struct kirkwood_dma_data Russell King
2013-08-04 19:22   ` Russell King
2013-08-05 14:49   ` Mark Brown
2013-08-05 14:49     ` Mark Brown
2013-08-04 19:23 ` [PATCH RFC 02/13] ASoC: kirkwood: use devm_clk_get() for the external clock Russell King
2013-08-04 19:23   ` Russell King
2013-08-05 16:16   ` Mark Brown
2013-08-05 16:16     ` Mark Brown
2013-08-04 19:24 ` [PATCH RFC 03/13] ASoC: avoid duplicated DAI routes Russell King
2013-08-04 19:24   ` Russell King
2013-08-05 16:18   ` Mark Brown
2013-08-05 16:18     ` Mark Brown
2013-08-04 19:25 ` [PATCH RFC 04/13] ASoC: HACK: avoid creating duplicated widgets Russell King
2013-08-04 19:25   ` Russell King
2013-08-04 19:26 ` [PATCH RFC 05/13] ASoC: kirkwood: provide KIRKWOOD_PLAYCTL_ENABLE_MASK Russell King
2013-08-04 19:26   ` Russell King
2013-08-05 17:03   ` Mark Brown
2013-08-05 17:03     ` Mark Brown
2013-08-04 19:27 ` [PATCH RFC 06/13] ASoC: kirkwood: combine kirkwood-i2s and kirkwood-dma drivers Russell King
2013-08-04 19:27   ` Russell King
2013-08-05 10:13   ` Jean-Francois Moine
2013-08-05 10:13     ` Jean-Francois Moine
2013-08-05 10:20     ` Russell King - ARM Linux
2013-08-05 10:20       ` Russell King - ARM Linux
2013-08-05 17:04   ` Mark Brown
2013-08-05 17:04     ` Mark Brown
2013-08-04 19:28 ` [PATCH RFC 07/13] ASoC: kirkwood: move calculation of max buffer size to kirkwood.h Russell King
2013-08-04 19:28   ` Russell King
2013-08-05 17:07   ` Mark Brown
2013-08-05 17:07     ` Mark Brown
2013-08-04 19:29 ` [PATCH RFC 08/13] ASoC: kirkwood: add DAPM widgets for input and output routing Russell King
2013-08-04 19:29   ` Russell King
2013-08-04 19:30 ` [PATCH RFC 09/13] ASoC: kirkwood-openrd: add DAPM links between codec and cpu DAI Russell King
2013-08-04 19:30   ` Russell King
2013-08-04 19:31 ` [PATCH RFC 10/13] ASoC: kirkwood-t5325: " Russell King
2013-08-04 19:31   ` Russell King
2013-08-05 11:27   ` Mark Brown
2013-08-05 11:27     ` Mark Brown
2013-08-05 11:33     ` Russell King - ARM Linux
2013-08-05 11:33       ` Russell King - ARM Linux
2013-08-05 14:40       ` Mark Brown
2013-08-05 14:40         ` Mark Brown
2013-08-05 14:56         ` Russell King - ARM Linux
2013-08-05 14:56           ` Russell King - ARM Linux
2013-08-05 20:32           ` Russell King - ARM Linux
2013-08-05 20:32             ` Russell King - ARM Linux
2013-08-05 22:06             ` Mark Brown
2013-08-05 22:06               ` Mark Brown
2013-08-05 23:30               ` Russell King - ARM Linux
2013-08-05 23:30                 ` Russell King - ARM Linux
2013-08-06 13:32                 ` Mark Brown
2013-08-06 13:32                   ` Mark Brown
2013-08-10 16:11                   ` Russell King - ARM Linux
2013-08-10 16:11                     ` Russell King - ARM Linux
2013-08-10 21:13                     ` Russell King - ARM Linux
2013-08-10 21:13                       ` Russell King - ARM Linux
2013-08-12  7:40                       ` Liam Girdwood
2013-08-12  7:40                         ` [alsa-devel] " Liam Girdwood
2013-08-12  8:28                         ` Russell King - ARM Linux
2013-08-12  8:28                           ` [alsa-devel] " Russell King - ARM Linux
2013-08-13 14:59                           ` Liam Girdwood
2013-08-13 14:59                             ` [alsa-devel] " Liam Girdwood
2013-08-20 10:25                             ` Russell King - ARM Linux
2013-08-20 10:25                               ` [alsa-devel] " Russell King - ARM Linux
2013-08-20 11:44                               ` Mark Brown
2013-08-20 11:44                                 ` [alsa-devel] " Mark Brown
2013-08-20 11:49                                 ` Russell King - ARM Linux
2013-08-20 11:49                                   ` [alsa-devel] " Russell King - ARM Linux
2013-08-20 13:31                                   ` Russell King - ARM Linux
2013-08-20 13:31                                     ` [alsa-devel] " Russell King - ARM Linux
2013-08-20 18:50                                     ` Mark Brown
2013-08-20 18:50                                       ` [alsa-devel] " Mark Brown
2013-08-20 20:18                                       ` Russell King - ARM Linux
2013-08-20 20:18                                         ` [alsa-devel] " Russell King - ARM Linux
2013-08-22 19:22                                         ` Liam Girdwood
2013-08-22 19:22                                           ` [alsa-devel] " Liam Girdwood
2013-08-22 20:16                                           ` Russell King - ARM Linux
2013-08-22 20:16                                             ` [alsa-devel] " Russell King - ARM Linux
2013-08-23 12:13                                             ` Liam Girdwood
2013-08-23 12:13                                               ` [alsa-devel] " Liam Girdwood
2013-08-23 12:58                                               ` Russell King - ARM Linux
2013-08-23 12:58                                                 ` [alsa-devel] " Russell King - ARM Linux
2013-08-23 16:58                                                 ` Mark Brown
2013-08-23 16:58                                                   ` [alsa-devel] " Mark Brown
2013-08-23 17:45                                                   ` Russell King - ARM Linux
2013-08-23 17:45                                                     ` [alsa-devel] " Russell King - ARM Linux
2013-08-28  1:22                                                     ` Mark Brown
2013-08-28  1:22                                                       ` [alsa-devel] " Mark Brown
2013-08-29 21:12                                                     ` Liam Girdwood
2013-08-30 11:27                                                       ` Russell King - ARM Linux
2013-08-30 11:27                                                         ` [alsa-devel] " Russell King - ARM Linux
2013-08-30 16:10                                                         ` Russell King - ARM Linux
2013-08-30 16:10                                                           ` [alsa-devel] " Russell King - ARM Linux
2013-08-11 12:36                     ` Mark Brown
2013-08-11 12:36                       ` Mark Brown
2013-08-04 19:32 ` [PATCH RFC 11/13] ASoC: spdif_transceiver: add output pin widget Russell King
2013-08-04 19:32   ` Russell King
2013-08-05 11:33   ` Mark Brown
2013-08-05 11:33     ` Mark Brown
2013-08-04 19:33 ` [PATCH RFC 12/13] ASoC: kirkwood: add SPDIF output support Russell King
2013-08-04 19:33   ` Russell King
2013-08-04 19:34 ` [PATCH RFC 13/13] ASoC: kirkwood: add IEC958 channel status support Russell King
2013-08-04 19:34   ` Russell King
2013-08-04 21:45 ` [PATCH RFC 00/13] Adding SPDIF support to kirkwood-i2s Sebastian Hesselbarth
2013-08-04 21:45   ` Sebastian Hesselbarth
2013-08-05  8:43   ` Thomas Petazzoni
2013-08-05  8:43     ` Thomas Petazzoni
2013-08-05  8:53     ` Russell King - ARM Linux
2013-08-05  8:53       ` Russell King - ARM Linux
2013-08-05  9:06       ` Thomas Petazzoni
2013-08-05  9:06         ` Thomas Petazzoni
2013-08-05 11:59   ` Mark Brown
2013-08-05 11:59     ` Mark Brown
2013-08-05 13:06     ` Sebastian Hesselbarth
2013-08-05 13:06       ` Sebastian Hesselbarth
2013-08-05 14:07       ` Mark Brown
2013-08-05 14:07         ` Mark Brown
2013-08-05 15:04         ` Sebastian Hesselbarth
2013-08-05 15:04           ` Sebastian Hesselbarth
2013-08-05 16:59           ` Mark Brown
2013-08-05 16:59             ` Mark Brown
2013-08-05 18:14             ` Sebastian Hesselbarth
2013-08-05 18:14               ` Sebastian Hesselbarth
2013-08-05 18:59               ` Mark Brown
2013-08-05 18:59                 ` Mark Brown
2013-08-05 22:47           ` Stephen Warren [this message]
2013-08-05 22:47             ` [alsa-devel] " Stephen Warren
2013-08-05 14:10       ` Lars-Peter Clausen
2013-08-05 14:10         ` [alsa-devel] " Lars-Peter Clausen
2013-08-05 15:03         ` Mark Brown
2013-08-05 15:03           ` [alsa-devel] " Mark Brown
2013-08-06  0:02         ` Kuninori Morimoto
2013-08-06  0:02           ` [alsa-devel] " Kuninori Morimoto
2013-08-30  7:20           ` Kuninori Morimoto
2013-08-30  7:20             ` [alsa-devel] " Kuninori Morimoto
2013-08-30  8:26             ` Lars-Peter Clausen
2013-08-30  8:26               ` [alsa-devel] " Lars-Peter Clausen
2013-08-30  9:56               ` Mark Brown
2013-08-30  9:56                 ` [alsa-devel] " Mark Brown
2013-08-05 14:59       ` Russell King - ARM Linux
2013-08-05 14:59         ` Russell King - ARM Linux

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=52002B70.5050109@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=andrew@lunn.ch \
    --cc=broonie@kernel.org \
    --cc=jason@lakedaemon.net \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=thomas.petazzoni@free-electrons.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.