All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Frank Rowand <frowand.list@gmail.com>
Cc: Christer Weinigel <christer@weinigel.se>,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	devicetree@vger.kernel.org, Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH] devicetree - document using aliases to set spi bus number.
Date: Wed, 25 May 2016 16:59:50 +0100	[thread overview]
Message-ID: <20160525155949.GB30956@leverpostej> (raw)
In-Reply-To: <5745C5A3.6060202@gmail.com>

On Wed, May 25, 2016 at 08:32:51AM -0700, Frank Rowand wrote:
> On 5/25/2016 2:20 AM, Mark Rutland wrote:
> > On Tue, May 24, 2016 at 01:41:26PM -0700, Frank Rowand wrote:
> >> On 5/24/2016 10:41 AM, Mark Rutland wrote:
> >>> On Tue, May 24, 2016 at 06:39:20PM +0200, Christer Weinigel wrote:
> >>>> Document how to use devicetree aliases to assign a stable
> >>>> bus number to a spi bus.
> >>>>
> >>>> Signed-off-by: Christer Weinigel <christer@weinigel.se>
> >>>>
> >>>> ---
> >>>>
> >>>> Trivial documentation change.
> >>>>
> >>>> Not having used devicetree that much it was surprisingly hard to
> >>>> figure out how to assign a stable bus number to a spi bus.  Add a
> >>>> simple example that shows how to do that.
> >>>>
> >>>> Mark Cced as the SPI maintainer.  Or should trivial documentation
> >>>> fixes like this be addressed to someone else?
> >>>>
> >>>>   /Christer
> >>>>
> >>>>  Documentation/devicetree/bindings/spi/spi-bus.txt | 10 ++++++++++
> >>>>  1 file changed, 10 insertions(+)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> index 42d5954..c35c4c2 100644
> >>>> --- a/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> @@ -94,3 +94,13 @@ SPI example for an MPC5200 SPI bus:
> >>>>  			reg = <1>;
> >>>>  		};
> >>>>  	};
> >>>> +
> >>>> +Normally SPI buses are assigned dynamic bus numbers starting at 32766
> >>>> +and counting downwards.  It is possible to assign the bus number
> >>>> +statically using devicetee aliases.  For example, on the MPC5200 the
> >>>> +"spi@f00" device above is connected to the "soc" bus.  To set its
> >>>> +bus_num to 1 add an aliases entry like this:
> >>>
> >>> As Mark Brown pointed out, this is very Linux-specific (at least in the
> >>> wording of the above).
> >>
> >> Yes, Linux-specific.  So the Linux documentation of bindings is the
> >> correct place for it.
> > 
> > I don't entirely agree. Which is not to say that I disagree as such, but
> > rather that this is not a black-and-white affair.
> > 
> > While bindings do happen to live in the kernel tree, we try to keep them
> > separate from Linux internals or Linux API details that are outside of
> > the scope of the HW/kernel interface. There are certainly reasons to
> > describe Linux-specific bindings (e.g. things under /chosen).
> 
> Where should this be documented?

That is a very good question, and one with no good or general answer.
There are distinct answers for new and existing bindings.

New bindings should not rely on Linux internals, and should be framed in
terms of hardware or system design properties (there's some wiggle room
for intent and configuration, in the case of things like watchdog
timeouts).

Existing cases should (almost always) be documented in the usual places,
but caveats apply:

(a) If they only exist as a workaround for legacy erroneous DT usage,
then documenting them does not make sense. They are Linux-specific
kludges.

(b) If they exist, but are discouraged, we must mark them deprecated,
and point at the encouraged way of doing things. I expect that many
Linux-specific bindings fall in this case.

(c) If they exist, and there is no other mechanism to provide equivalent
functionality, then we must document them extremely carefully, with
rationale and caveats. These cases highlight a hole in our ability to
describe and/or abstract hardware, and we'd like to move these into
category b.

Regardless, if we can frame them as hardware properties and get rid of
any reliance on Linux internal details, that is preferable.

> > Mark Brown's comments imply that there is a better mechanism which does
> > not rely on this binding, so even if we must retain support for it in
> > Linux for legacy reasons, documenting it as a binding is not necessarily
> > in anyone's best interest. If we want to document it, we may want to
> > mark it as deprecated, with a pointer to better alternatives.
> 
> Lack of documentation and bad documentation are a MAJOR problem for
> devicetree.

I certainly agree.

> Refusing to accept documentation of existing behavior makes no
> sense to me.

To be clear: I am not refusing to document this.

I am trying to ensure that we document this _appropriately_, with any
caveats that apply, and (as far as possible) framed so as to not
describe Linux internals.

e.g. stating that this describes a well-defined system-specific bus
number as documented in a manual, with a note regarding Linux behaviour
is better simply describing the Linux behaviour.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Christer Weinigel
	<christer-rKHMIqA5R6gwFerOooGFRg@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH] devicetree - document using aliases to set spi bus number.
Date: Wed, 25 May 2016 16:59:50 +0100	[thread overview]
Message-ID: <20160525155949.GB30956@leverpostej> (raw)
In-Reply-To: <5745C5A3.6060202-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On Wed, May 25, 2016 at 08:32:51AM -0700, Frank Rowand wrote:
> On 5/25/2016 2:20 AM, Mark Rutland wrote:
> > On Tue, May 24, 2016 at 01:41:26PM -0700, Frank Rowand wrote:
> >> On 5/24/2016 10:41 AM, Mark Rutland wrote:
> >>> On Tue, May 24, 2016 at 06:39:20PM +0200, Christer Weinigel wrote:
> >>>> Document how to use devicetree aliases to assign a stable
> >>>> bus number to a spi bus.
> >>>>
> >>>> Signed-off-by: Christer Weinigel <christer-rKHMIqA5R6gwFerOooGFRg@public.gmane.org>
> >>>>
> >>>> ---
> >>>>
> >>>> Trivial documentation change.
> >>>>
> >>>> Not having used devicetree that much it was surprisingly hard to
> >>>> figure out how to assign a stable bus number to a spi bus.  Add a
> >>>> simple example that shows how to do that.
> >>>>
> >>>> Mark Cced as the SPI maintainer.  Or should trivial documentation
> >>>> fixes like this be addressed to someone else?
> >>>>
> >>>>   /Christer
> >>>>
> >>>>  Documentation/devicetree/bindings/spi/spi-bus.txt | 10 ++++++++++
> >>>>  1 file changed, 10 insertions(+)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> index 42d5954..c35c4c2 100644
> >>>> --- a/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
> >>>> @@ -94,3 +94,13 @@ SPI example for an MPC5200 SPI bus:
> >>>>  			reg = <1>;
> >>>>  		};
> >>>>  	};
> >>>> +
> >>>> +Normally SPI buses are assigned dynamic bus numbers starting at 32766
> >>>> +and counting downwards.  It is possible to assign the bus number
> >>>> +statically using devicetee aliases.  For example, on the MPC5200 the
> >>>> +"spi@f00" device above is connected to the "soc" bus.  To set its
> >>>> +bus_num to 1 add an aliases entry like this:
> >>>
> >>> As Mark Brown pointed out, this is very Linux-specific (at least in the
> >>> wording of the above).
> >>
> >> Yes, Linux-specific.  So the Linux documentation of bindings is the
> >> correct place for it.
> > 
> > I don't entirely agree. Which is not to say that I disagree as such, but
> > rather that this is not a black-and-white affair.
> > 
> > While bindings do happen to live in the kernel tree, we try to keep them
> > separate from Linux internals or Linux API details that are outside of
> > the scope of the HW/kernel interface. There are certainly reasons to
> > describe Linux-specific bindings (e.g. things under /chosen).
> 
> Where should this be documented?

That is a very good question, and one with no good or general answer.
There are distinct answers for new and existing bindings.

New bindings should not rely on Linux internals, and should be framed in
terms of hardware or system design properties (there's some wiggle room
for intent and configuration, in the case of things like watchdog
timeouts).

Existing cases should (almost always) be documented in the usual places,
but caveats apply:

(a) If they only exist as a workaround for legacy erroneous DT usage,
then documenting them does not make sense. They are Linux-specific
kludges.

(b) If they exist, but are discouraged, we must mark them deprecated,
and point at the encouraged way of doing things. I expect that many
Linux-specific bindings fall in this case.

(c) If they exist, and there is no other mechanism to provide equivalent
functionality, then we must document them extremely carefully, with
rationale and caveats. These cases highlight a hole in our ability to
describe and/or abstract hardware, and we'd like to move these into
category b.

Regardless, if we can frame them as hardware properties and get rid of
any reliance on Linux internal details, that is preferable.

> > Mark Brown's comments imply that there is a better mechanism which does
> > not rely on this binding, so even if we must retain support for it in
> > Linux for legacy reasons, documenting it as a binding is not necessarily
> > in anyone's best interest. If we want to document it, we may want to
> > mark it as deprecated, with a pointer to better alternatives.
> 
> Lack of documentation and bad documentation are a MAJOR problem for
> devicetree.

I certainly agree.

> Refusing to accept documentation of existing behavior makes no
> sense to me.

To be clear: I am not refusing to document this.

I am trying to ensure that we document this _appropriately_, with any
caveats that apply, and (as far as possible) framed so as to not
describe Linux internals.

e.g. stating that this describes a well-defined system-specific bus
number as documented in a manual, with a note regarding Linux behaviour
is better simply describing the Linux behaviour.

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-05-25 16:00 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-24 16:39 [PATCH] devicetree - document using aliases to set spi bus number Christer Weinigel
2016-05-24 16:39 ` Christer Weinigel
2016-05-24 17:20 ` Mark Brown
2016-05-24 18:03   ` Christer Weinigel
2016-05-24 18:32     ` Mark Brown
2016-05-24 18:57       ` Christer Weinigel
2016-05-24 18:57         ` Christer Weinigel
2016-05-25 12:19         ` Mark Rutland
2016-05-25 12:19           ` Mark Rutland
2016-05-25 12:50           ` Mark Brown
2016-05-25 12:33         ` Mark Brown
2016-05-25 12:33           ` Mark Brown
2016-05-24 23:34       ` Frank Rowand
2016-05-24 23:34         ` Frank Rowand
2016-05-25  0:18         ` Frank Rowand
2016-05-25  0:18           ` Frank Rowand
2016-05-25 17:49         ` Rob Herring
2016-05-25 18:03           ` Mark Brown
2016-05-25 18:06           ` Frank Rowand
2016-05-25 18:44             ` Mark Brown
2016-05-26  1:10               ` Christer Weinigel
2016-05-26  1:44                 ` Rob Herring
2016-05-26  1:44                   ` Rob Herring
2016-05-26  1:56                   ` Christer Weinigel
2016-05-26 10:07                     ` Mark Brown
2016-05-26 10:07                       ` Mark Brown
2016-05-26 10:58                       ` Christer Weinigel
2016-05-26 18:47                         ` Mark Brown
2016-05-26 18:47                           ` Mark Brown
2016-05-26 21:04                           ` Christer Weinigel
2016-05-26 21:04                             ` Christer Weinigel
2016-05-27 16:43                             ` Mark Brown
2016-05-24 17:41 ` Mark Rutland
2016-05-24 20:41   ` Frank Rowand
2016-05-25  9:20     ` Mark Rutland
2016-05-25  9:20       ` Mark Rutland
2016-05-25 10:38       ` Mark Brown
2016-05-25 10:38         ` Mark Brown
2016-05-25 11:20         ` Christer Weinigel
2016-05-25 12:34           ` Mark Rutland
2016-05-25 12:34             ` Mark Rutland
2016-05-25 13:08             ` Mark Brown
2016-05-25 13:08               ` Mark Brown
2016-05-25 15:32       ` Frank Rowand
2016-05-25 15:32         ` Frank Rowand
2016-05-25 15:59         ` Mark Rutland [this message]
2016-05-25 15:59           ` Mark Rutland
2016-05-25 16:21           ` Frank Rowand
2016-05-25 16:21             ` Frank Rowand
2016-05-25 18:02           ` Mark Brown
2016-05-25 17:48         ` Mark Brown
2016-05-25 17:48           ` Mark Brown
2016-05-25 18:46           ` Frank Rowand
2016-05-27 18:36             ` Mark Brown
2016-05-27 18:36               ` Mark Brown
2016-05-28 20:57               ` Christer Weinigel
2016-05-30 16:13                 ` Mark Brown
2016-05-30 16:13                   ` Mark Brown
2016-05-25 15:25   ` Frank Rowand
2016-05-25 15:25     ` Frank Rowand
2016-05-25 16:06     ` Mark Rutland
2016-05-25 16:06       ` Mark Rutland
2016-05-25 16:31       ` Frank Rowand
2016-05-25 18:44   ` Rob Herring
2016-05-25 18:44     ` Rob Herring
2016-05-25 18:48     ` Mark Brown
2016-05-25 18:48       ` Mark Brown
2016-05-26  8:21     ` Geert Uytterhoeven
2016-05-26  8:21       ` Geert Uytterhoeven

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=20160525155949.GB30956@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=broonie@kernel.org \
    --cc=christer@weinigel.se \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    /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.