linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity
@ 2020-08-19 22:02 Fabio Estevam
  2020-08-28  9:26 ` Linus Walleij
  2020-08-30  1:39 ` Shawn Guo
  0 siblings, 2 replies; 3+ messages in thread
From: Fabio Estevam @ 2020-08-19 22:02 UTC (permalink / raw)
  To: shawnguo
  Cc: Fabio Estevam, linus.walleij, cphealy, kernel, ford173,
	linux-arm-kernel, linux-imx

The conversion of the spi-imx driver to use GPIO descriptors
in commit 8cdcd8aeee28 ("spi: imx/fsl-lpspi: Convert to GPIO descriptors") 
helped to detect the following SPI chipselect polarity mismatch on an
imx6q-sabresd for example:

[    4.854337] m25p80@0 enforce active low on chipselect handle

Prior to the above commit, the chipselect polarity passed via cs-gpios
property was ignored and considered active-low.

The reason for such mismatch is clearly explained in the comments inside
drivers/gpio/gpiolib-of.c:

 * SPI children have active low chip selects
 * by default. This can be specified negatively
 * by just omitting "spi-cs-high" in the
 * device node, or actively by tagging on
 * GPIO_ACTIVE_LOW as flag in the device
 * tree. If the line is simultaneously
 * tagged as active low in the device tree
 * and has the "spi-cs-high" set, we get a
 * conflict and the "spi-cs-high" flag will
 * take precedence.

To properly represent the SPI chipselect polarity, change it to active-low
when the "spi-cs-high" property is absent.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi | 2 +-
 arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
index baa5f997d018..9ac17b284f20 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
@@ -70,7 +70,7 @@
 &ecspi2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_espi2>;
-	cs-gpios = <&gpio5 9 0>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
 	eeprom@0 {
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts
index 6b3581366d67..bfad4b885905 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts
@@ -15,7 +15,7 @@
 &ecspi1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_ecspi1>;
-	cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
 	status = "okay";
 	#address-cells = <1>;
 	#size-cells = <0>;
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity
  2020-08-19 22:02 [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity Fabio Estevam
@ 2020-08-28  9:26 ` Linus Walleij
  2020-08-30  1:39 ` Shawn Guo
  1 sibling, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2020-08-28  9:26 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Shawn Guo, Chris Healy, Sascha Hauer, ford173, Linux ARM,
	NXP Linux Team

On Thu, Aug 20, 2020 at 12:04 AM Fabio Estevam <festevam@gmail.com> wrote:

> The conversion of the spi-imx driver to use GPIO descriptors
> in commit 8cdcd8aeee28 ("spi: imx/fsl-lpspi: Convert to GPIO descriptors")
> helped to detect the following SPI chipselect polarity mismatch on an
> imx6q-sabresd for example:
>
> [    4.854337] m25p80@0 enforce active low on chipselect handle
>
> Prior to the above commit, the chipselect polarity passed via cs-gpios
> property was ignored and considered active-low.
>
> The reason for such mismatch is clearly explained in the comments inside
> drivers/gpio/gpiolib-of.c:
>
>  * SPI children have active low chip selects
>  * by default. This can be specified negatively
>  * by just omitting "spi-cs-high" in the
>  * device node, or actively by tagging on
>  * GPIO_ACTIVE_LOW as flag in the device
>  * tree. If the line is simultaneously
>  * tagged as active low in the device tree
>  * and has the "spi-cs-high" set, we get a
>  * conflict and the "spi-cs-high" flag will
>  * take precedence.
>
> To properly represent the SPI chipselect polarity, change it to active-low
> when the "spi-cs-high" property is absent.
>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity
  2020-08-19 22:02 [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity Fabio Estevam
  2020-08-28  9:26 ` Linus Walleij
@ 2020-08-30  1:39 ` Shawn Guo
  1 sibling, 0 replies; 3+ messages in thread
From: Shawn Guo @ 2020-08-30  1:39 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linus.walleij, cphealy, kernel, ford173, linux-arm-kernel,
	linux-imx

On Wed, Aug 19, 2020 at 07:02:19PM -0300, Fabio Estevam wrote:
> The conversion of the spi-imx driver to use GPIO descriptors
> in commit 8cdcd8aeee28 ("spi: imx/fsl-lpspi: Convert to GPIO descriptors") 
> helped to detect the following SPI chipselect polarity mismatch on an
> imx6q-sabresd for example:
> 
> [    4.854337] m25p80@0 enforce active low on chipselect handle
> 
> Prior to the above commit, the chipselect polarity passed via cs-gpios
> property was ignored and considered active-low.
> 
> The reason for such mismatch is clearly explained in the comments inside
> drivers/gpio/gpiolib-of.c:
> 
>  * SPI children have active low chip selects
>  * by default. This can be specified negatively
>  * by just omitting "spi-cs-high" in the
>  * device node, or actively by tagging on
>  * GPIO_ACTIVE_LOW as flag in the device
>  * tree. If the line is simultaneously
>  * tagged as active low in the device tree
>  * and has the "spi-cs-high" set, we get a
>  * conflict and the "spi-cs-high" flag will
>  * take precedence.
> 
> To properly represent the SPI chipselect polarity, change it to active-low
> when the "spi-cs-high" property is absent.
> 
> Signed-off-by: Fabio Estevam <festevam@gmail.com>

Applied, thanks.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-30  1:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-19 22:02 [PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity Fabio Estevam
2020-08-28  9:26 ` Linus Walleij
2020-08-30  1:39 ` Shawn Guo

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).