All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Christer Weinigel <christer@weinigel.se>
Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH] devicetree - document using aliases to set spi bus number.
Date: Wed, 25 May 2016 13:33:37 +0100	[thread overview]
Message-ID: <20160525123337.GW8206@sirena.org.uk> (raw)
In-Reply-To: <5744A402.8050409@weinigel.se>

[-- Attachment #1: Type: text/plain, Size: 2922 bytes --]

On Tue, May 24, 2016 at 08:57:06PM +0200, Christer Weinigel wrote:
> On 05/24/2016 08:32 PM, Mark Brown wrote:

> > I'm not clear that we want to document this at all since I am not
> > clear that there is a sensible use case for doing it.  I did ask
> > for one but you've not articulated one in this reply.  I am much
> > less gung ho than Grant on this one, even as a Linux specific
> > interface it seems very legacy.

> It's bloody convenient.  I'm working with a Zync board right now where
> we have multiple SPI ports.  Being able to label the ports on the
> board spi1, spi2 and spi3 and having spidev devices show up as
> /dev/spidev1.0 instead of dynamic assignment makes things much easier.

So you're using it with spidev, probably directly at a guess rather than
with an explicitly enumerated device in there?  This is also something
we don't support in DT unless you've added an explicit compatible string
for the device you've got attached for it to bind to - it will print an
enormous warning if you try to instantiate it directly from DT since
unfortunately implementation details of how we match compatible strings
mean that any Linux device will match.

The DT should describe the hardware in the system, not the
implementation details of how a particular software release should
control that hardware.  If your software release is intending to expose
a SPI interface connected to nothing it's not clear that this is useful
hardware to describe and that we can't just optimise this by not doing
anything with the hardware at all but whatever happens we should be
explicitly exposing that, not doing global level hacks for it.  We're
talking about very limited test usage in a new system here as far as I
can tell.

> Yes, it's possible to iterate through all files /sys/class/spi_master
> and then have a table to map those names to device names and create
> symlinks to them, it's just painful.  It's much easier to do be able
> to do "cat data >/dev/spidev1.0" from busybox and not have to set up
> all that infrastructure.  And yes, this is on an embedded system using
> busybox without udev.

You're way off in the implementation detail weeds here.  What you're
looking for here is something very much specific to how spidev device
files happen to be named with the particular userspace you're using,
with the choice to use spidev to control the devices (if there are any)
itself being something that's not at all general.  It doesn't follow
from this that assigning numbers to SPI buses is a good idea, it's
something that only has meaning in this very specific context, and there
is no guarantee that the chip select numbers will end up being stable
for that matter.

If this is something it makes sense to have in device trees at all it's
something that should be being done as part of describing the specific
thing you are trying to describe.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Christer Weinigel <christer-rKHMIqA5R6gwFerOooGFRg@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] devicetree - document using aliases to set spi bus number.
Date: Wed, 25 May 2016 13:33:37 +0100	[thread overview]
Message-ID: <20160525123337.GW8206@sirena.org.uk> (raw)
In-Reply-To: <5744A402.8050409-rKHMIqA5R6gwFerOooGFRg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2922 bytes --]

On Tue, May 24, 2016 at 08:57:06PM +0200, Christer Weinigel wrote:
> On 05/24/2016 08:32 PM, Mark Brown wrote:

> > I'm not clear that we want to document this at all since I am not
> > clear that there is a sensible use case for doing it.  I did ask
> > for one but you've not articulated one in this reply.  I am much
> > less gung ho than Grant on this one, even as a Linux specific
> > interface it seems very legacy.

> It's bloody convenient.  I'm working with a Zync board right now where
> we have multiple SPI ports.  Being able to label the ports on the
> board spi1, spi2 and spi3 and having spidev devices show up as
> /dev/spidev1.0 instead of dynamic assignment makes things much easier.

So you're using it with spidev, probably directly at a guess rather than
with an explicitly enumerated device in there?  This is also something
we don't support in DT unless you've added an explicit compatible string
for the device you've got attached for it to bind to - it will print an
enormous warning if you try to instantiate it directly from DT since
unfortunately implementation details of how we match compatible strings
mean that any Linux device will match.

The DT should describe the hardware in the system, not the
implementation details of how a particular software release should
control that hardware.  If your software release is intending to expose
a SPI interface connected to nothing it's not clear that this is useful
hardware to describe and that we can't just optimise this by not doing
anything with the hardware at all but whatever happens we should be
explicitly exposing that, not doing global level hacks for it.  We're
talking about very limited test usage in a new system here as far as I
can tell.

> Yes, it's possible to iterate through all files /sys/class/spi_master
> and then have a table to map those names to device names and create
> symlinks to them, it's just painful.  It's much easier to do be able
> to do "cat data >/dev/spidev1.0" from busybox and not have to set up
> all that infrastructure.  And yes, this is on an embedded system using
> busybox without udev.

You're way off in the implementation detail weeds here.  What you're
looking for here is something very much specific to how spidev device
files happen to be named with the particular userspace you're using,
with the choice to use spidev to control the devices (if there are any)
itself being something that's not at all general.  It doesn't follow
from this that assigning numbers to SPI buses is a good idea, it's
something that only has meaning in this very specific context, and there
is no guarantee that the chip select numbers will end up being stable
for that matter.

If this is something it makes sense to have in device trees at all it's
something that should be being done as part of describing the specific
thing you are trying to describe.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  parent reply	other threads:[~2016-05-25 12:33 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 [this message]
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
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=20160525123337.GW8206@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=christer@weinigel.se \
    --cc=devicetree@vger.kernel.org \
    --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.