linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: shawnguo@kernel.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] spi: imx: fix use of native chip-selects with devicetree
Date: Mon, 20 Mar 2017 15:39:38 +0800	[thread overview]
Message-ID: <20170320073937.GE3443@dragon> (raw)
In-Reply-To: <1489726983-17706-3-git-send-email-gerg@linux-m68k.org>

On Fri, Mar 17, 2017 at 03:03:03PM +1000, Greg Ungerer wrote:
> The commonly used mechanism of specifying the hardware or native
> chip-select on an SPI device in devicetree (that is "cs-gpios = <0>")
> does not result in the native chip-select being configured for use.
> So external SPI devices that require use of the native chip-select
> will not work.
> 
> You can successfully specify native chip-selects if using a platform
> setup by specifying the cs-gpio as negative offset by 32. And that
> works correctly. You cannot use the same method in devicetree.
> 
> The logic in the spi-imx.c driver during probe uses core spi function
> of_spi_register_master() in spi.c to parse the "cs-gpios" devicetree tag.
> For valid GPIO values that will be recorded for use, all other entries in
> the cs_gpios list will be set to -ENOENT. So entries like "<0>" will be
> set to -ENOENT in the cs_gpios list.
> 
> When the SPI device registers are setup the code will use the GPIO
> listed in the cs_gpios list for the desired chip-select. If the cs_gpio
> is less then 0 then it is intended to be for a native chip-select, and
> its cs_gpio value is added to 32 to get the chipselect number to use.
> Problem is that with devicetree this can only ever be -ENOENT (which
> is -2), and that alone results in an invalid chip-select number. But also
> doesn't allow selection of the native chip-select at all.
> 
> To fix, if the cs_gpio specified for this spi device is not a
> valid GPIO then use the "chip_select" (that is the native chip-select
> number) for hardware setup.
> 
> Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>

Acked-by: Shawn Guo <shawnguo@kernel.org>

  reply	other threads:[~2017-03-20  7:39 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-17  5:03 [PATCH 0/2] spi: imx: native chip selects and devicetree Greg Ungerer
2017-03-17  5:03 ` [PATCH 1/2] spi: imx: set correct chip_select in platform setup Greg Ungerer
2017-03-20  7:38   ` Shawn Guo
2017-03-20 11:52     ` Greg Ungerer
2017-03-17  5:03 ` [PATCH 2/2] spi: imx: fix use of native chip-selects with devicetree Greg Ungerer
2017-03-20  7:39   ` Shawn Guo [this message]
2017-03-20 13:22   ` Vladimir Zapolskiy
2017-03-21  2:05     ` Greg Ungerer
2017-03-21  8:05       ` Uwe Kleine-König
2017-03-21 11:53         ` Greg Ungerer
2017-03-21 12:11           ` Uwe Kleine-König
2017-03-21 13:22             ` Greg Ungerer
2017-03-21 19:23               ` Uwe Kleine-König
2017-03-21 20:15                 ` Geert Uytterhoeven
2017-03-22  0:50                   ` Greg Ungerer
2017-03-22  7:09                     ` Geert Uytterhoeven
2017-09-04 12:47   ` Applied "spi: imx: fix use of native chip-selects with devicetree" to the spi tree Mark Brown
2017-10-10 20:38   ` [2/2] spi: imx: fix use of native chip-selects with devicetree Trent Piepho
2017-10-12  6:26     ` Greg Ungerer
2017-10-12 20:41       ` Trent Piepho
2017-03-20  7:35 ` [PATCH 0/2] spi: imx: native chip selects and devicetree Shawn Guo

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=20170320073937.GE3443@dragon \
    --to=shawnguo@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).