[PATCH] arm64: dts: imx8m: Fix the SPI chipselect polarity

Linus Walleij linus.walleij at linaro.org
Fri Aug 28 05:26:57 EDT 2020


On Thu, Aug 20, 2020 at 12:04 AM Fabio Estevam <festevam at 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 at 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 at gmail.com>

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

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list