2020-09-03 09:23:28

by Matthias Schiffer

[permalink] [raw]
Subject: spi-imx: correct interpretation of num-cs DT property?

Hi,

I've recently had a discussion about the correct way for an SPI driver
to handle the num-cs property: https://lkml.org/lkml/2020/8/25/184

Since 8cdcd8aeee281 ("spi: imx/fsl-lpspi: Convert to GPIO
descriptors"), the logic of the spi-imx driver is somewhat confusing:
If fewer than 3 cs-gpios are defined, and no explicit num-cs property
exists, the driver will set num_chipselect to 3 by default, instead of
the number of cs-gpios entries.

To avoid having to specify num-cs when the number cs-gpios would
suffice, I suggested to modify the logic to the following:

- If num-cs is set, use that
- If num-cs is unset, use the number of cs-gpios
- If num-cs is unset and no cs-gpios are defined, use a driver-provided
default (which is 3 for spi-imx; this matches the number of native CS
pins in older implementations of this SPI controller; i.MX6 and newer
support up to 4)

Also, would it make sense to add num-cs to all DTS files for boards
that actually use fewer than 3 CS pins?

At the moment, the num-cs property is not explicitly documented for the
spi-imx driver, although the driver understands it. I also suggested to
add this to the docs, which Fabio didn't deem a good idea (I don't
quite understand the reasoning here - isn't num-cs generally a useful
property to have?)

Kind regards,
Matthias


2020-09-03 14:52:16

by Mark Brown

[permalink] [raw]
Subject: Re: spi-imx: correct interpretation of num-cs DT property?

On Thu, Sep 03, 2020 at 11:22:20AM +0200, Matthias Schiffer wrote:

> - If num-cs is set, use that
> - If num-cs is unset, use the number of cs-gpios
> - If num-cs is unset and no cs-gpios are defined, use a driver-provided
> default (which is 3 for spi-imx; this matches the number of native CS
> pins in older implementations of this SPI controller; i.MX6 and newer
> support up to 4)

That sounds like what's expected, though we coould just skip the first
step.

> Also, would it make sense to add num-cs to all DTS files for boards
> that actually use fewer than 3 CS pins?

No, it was never a good idea to have that property in the first place
and there should be no case where it helps anything.

> At the moment, the num-cs property is not explicitly documented for the
> spi-imx driver, although the driver understands it. I also suggested to
> add this to the docs, which Fabio didn't deem a good idea (I don't
> quite understand the reasoning here - isn't num-cs generally a useful
> property to have?)

Could you explain what benefit you would expect having num-cs to offer?


Attachments:
(No filename) (1.09 kB)
signature.asc (499.00 B)
Download all attachments

2020-09-03 15:07:17

by Matthias Schiffer

[permalink] [raw]
Subject: Re: spi-imx: correct interpretation of num-cs DT property?

On Thu, 2020-09-03 at 14:22 +0100, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Thu, Sep 03, 2020 at 11:22:20AM +0200, Matthias Schiffer wrote:
>
> > - If num-cs is set, use that
> > - If num-cs is unset, use the number of cs-gpios
> > - If num-cs is unset and no cs-gpios are defined, use a driver-
> > provided
> > default (which is 3 for spi-imx; this matches the number of native
> > CS
> > pins in older implementations of this SPI controller; i.MX6 and
> > newer
> > support up to 4)
>
> That sounds like what's expected, though we coould just skip the
> first
> step.
>
> > Also, would it make sense to add num-cs to all DTS files for boards
> > that actually use fewer than 3 CS pins?
>
> No, it was never a good idea to have that property in the first place
> and there should be no case where it helps anything.


Oh, thank you for the clarification.

As currently no in-tree DTs use the num-cs property for spi-imx and
it's not documented, should support for it be dropped from the driver
altogether?


>
> > At the moment, the num-cs property is not explicitly documented for
> > the
> > spi-imx driver, although the driver understands it. I also
> > suggested to
> > add this to the docs, which Fabio didn't deem a good idea (I don't
> > quite understand the reasoning here - isn't num-cs generally a
> > useful
> > property to have?)
>
> Could you explain what benefit you would expect having num-cs to
> offer?
>
> * Unknown Key
> * 0x5D5487D0

2020-09-03 15:09:09

by Fabio Estevam

[permalink] [raw]
Subject: Re: spi-imx: correct interpretation of num-cs DT property?

Hi Matthias,

On Thu, Sep 3, 2020 at 10:40 AM Matthias Schiffer
<[email protected]> wrote:

> As currently no in-tree DTs use the num-cs property for spi-imx and
> it's not documented, should support for it be dropped from the driver
> altogether?

Yes, it makes sense to drop num-cs support from the spi-imx driver.

Care to send a patch?

Thanks