All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho-cgc2CodaaHDQT0dZR+AlfA@public.gmane.org>
To: "linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org"
	<gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
Cc: "vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org"
	<vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>,
	"shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
	<shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
	<kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
	<broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"fabio.estevam-3arQi8VN3Tc@public.gmane.org"
	<fabio.estevam-3arQi8VN3Tc@public.gmane.org>
Subject: Re: [2/2] spi: imx: fix use of native chip-selects with devicetree
Date: Tue, 10 Oct 2017 20:38:37 +0000	[thread overview]
Message-ID: <1507667916.74283.19.camel@impinj.com> (raw)
In-Reply-To: <1489726983-17706-3-git-send-email-gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>

On Fri, 2017-03-17 at 15:03 +1000, Greg Ungerer wrote:
> 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.

I came across some spi-imx bugs in an older kernel and in checking the
latest kernel, found this patch.  It fixed the issue with dt not
working for older spi imx devices (the imx51+ config function never
used the platform data 32 offset thing), but fails to address non-dt
platform data based users of the spi imx driver.

For instance, include/linux/platform_data/spi-imx.h still refers to the
offset by 32 for native cs:

 * @chipselect: Array of chipselects for this master. Numbers >= 0 mean gpio
 *              pins, numbers < 0 mean internal CSPI chipselects according
 *              to MXC_SPI_CS(). Normally you want to use gpio based chip

#define MXC_SPI_CS(no)  ((no) - 32)

After this patch, for no-DT users, any negative (or rather not a valid
gpio) value in chipselect will cause the native chipselect
corresponding to the spi slave's chipselect.  It's no longer possible
to specify which native cs to use in the spi-imx platform data.  So in
something like:

arch/arm/mach-imx/mach-mx31moboard.c-static int moboard_spi1_cs[] = {
arch/arm/mach-imx/mach-mx31moboard.c:   MXC_SPI_CS(0),
arch/arm/mach-imx/mach-mx31moboard.c:   MXC_SPI_CS(2),
arch/arm/mach-imx/mach-mx31moboard.c-};

The spi device configured to use chip select 1 will no longer use
native chip select line 2.

Looking at all in-tree users of spi imx platform data, it appears that
this board is the only one in which the cs selected does not match the
array index.  Though there are still several which still use
MSC_SPI_CS() even though it doesn't really work anymore.

WARNING: multiple messages have this Message-ID (diff)
From: tpiepho@impinj.com (Trent Piepho)
To: linux-arm-kernel@lists.infradead.org
Subject: [2/2] spi: imx: fix use of native chip-selects with devicetree
Date: Tue, 10 Oct 2017 20:38:37 +0000	[thread overview]
Message-ID: <1507667916.74283.19.camel@impinj.com> (raw)
In-Reply-To: <1489726983-17706-3-git-send-email-gerg@linux-m68k.org>

On Fri, 2017-03-17 at 15:03 +1000, Greg Ungerer wrote:
> 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.

I came across some spi-imx bugs in an older kernel and in checking the
latest kernel, found this patch.  It fixed the issue with dt not
working for older spi imx devices (the imx51+ config function never
used the platform data 32 offset thing), but fails to address non-dt
platform data based users of the spi imx driver.

For instance, include/linux/platform_data/spi-imx.h still refers to the
offset by 32 for native cs:

 * @chipselect: Array of chipselects for this master. Numbers >= 0 mean gpio
 *              pins, numbers < 0 mean internal CSPI chipselects according
 *              to MXC_SPI_CS(). Normally you want to use gpio based chip

#define MXC_SPI_CS(no)  ((no) - 32)

After this patch, for no-DT users, any negative (or rather not a valid
gpio) value in chipselect will cause the native chipselect
corresponding to the spi slave's chipselect.  It's no longer possible
to specify which native cs to use in the spi-imx platform data.  So in
something like:

arch/arm/mach-imx/mach-mx31moboard.c-static int moboard_spi1_cs[] = {
arch/arm/mach-imx/mach-mx31moboard.c:   MXC_SPI_CS(0),
arch/arm/mach-imx/mach-mx31moboard.c:   MXC_SPI_CS(2),
arch/arm/mach-imx/mach-mx31moboard.c-};

The spi device configured to use chip select 1 will no longer use
native chip select line 2.

Looking@all in-tree users of spi imx platform data, it appears that
this board is the only one in which the cs selected does not match the
array index.  Though there are still several which still use
MSC_SPI_CS() even though it doesn't really work anymore.

  parent reply	other threads:[~2017-10-10 20:38 UTC|newest]

Thread overview: 42+ 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 ` Greg Ungerer
2017-03-17  5:03 ` [PATCH 1/2] spi: imx: set correct chip_select in platform setup Greg Ungerer
2017-03-17  5:03   ` Greg Ungerer
     [not found]   ` <1489726983-17706-2-git-send-email-gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-20  7:38     ` Shawn Guo
2017-03-20  7:38       ` Shawn Guo
2017-03-20 11:52       ` Greg Ungerer
2017-03-20 11:52         ` Greg Ungerer
     [not found] ` <1489726983-17706-1-git-send-email-gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-17  5:03   ` [PATCH 2/2] spi: imx: fix use of native chip-selects with devicetree Greg Ungerer
2017-03-17  5:03     ` Greg Ungerer
2017-03-20  7:39     ` Shawn Guo
2017-03-20  7:39       ` Shawn Guo
     [not found]     ` <1489726983-17706-3-git-send-email-gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-20 13:22       ` Vladimir Zapolskiy
2017-03-20 13:22         ` Vladimir Zapolskiy
2017-03-21  2:05         ` Greg Ungerer
2017-03-21  2:05           ` Greg Ungerer
     [not found]           ` <4a8449d9-cc38-d642-0853-246f46ee7059-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-21  8:05             ` Uwe Kleine-König
2017-03-21  8:05               ` Uwe Kleine-König
2017-03-21 11:53               ` Greg Ungerer
2017-03-21 11:53                 ` Greg Ungerer
     [not found]                 ` <942cfc4b-445b-ca51-1823-2391cea62abf-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-21 12:11                   ` Uwe Kleine-König
2017-03-21 12:11                     ` Uwe Kleine-König
     [not found]                     ` <20170321121133.jcmhhbszj2d42h3w-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-03-21 13:22                       ` Greg Ungerer
2017-03-21 13:22                         ` Greg Ungerer
     [not found]                         ` <20678cef-f667-9915-aa00-8877ad152a8c-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-03-21 19:23                           ` Uwe Kleine-König
2017-03-21 19:23                             ` Uwe Kleine-König
2017-03-21 20:15                             ` Geert Uytterhoeven
2017-03-21 20:15                               ` Geert Uytterhoeven
     [not found]                               ` <CAMuHMdW+KcPCAweneu4pTg1Pb-uAvYGz1+Z=oEDYoOt4gWrjhA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-22  0:50                                 ` Greg Ungerer
2017-03-22  0:50                                   ` Greg Ungerer
2017-03-22  7:09                                   ` Geert Uytterhoeven
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-09-04 12:47         ` Mark Brown
2017-10-10 20:38       ` Trent Piepho [this message]
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  6:26           ` Greg Ungerer
     [not found]           ` <209bb901-875e-8007-06f8-3ae9698a0e41-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-10-12 20:41             ` Trent Piepho
2017-10-12 20:41               ` Trent Piepho
2017-03-20  7:35   ` [PATCH 0/2] spi: imx: native chip selects and devicetree Shawn Guo
2017-03-20  7:35     ` 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=1507667916.74283.19.camel@impinj.com \
    --to=tpiepho-cgc2codaahdqt0dzr+alfa@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=fabio.estevam-3arQi8VN3Tc@public.gmane.org \
    --cc=gerg-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.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.