Re: [PATCH 1/2] dt-bindings: spi: dw: add cs-override property
- Date: Wed, 10 Oct 2018 22:52:58 +0000
- From: Trent Piepho <tpiepho@xxxxxxxxxx>
- Subject: Re: [PATCH 1/2] dt-bindings: spi: dw: add cs-override property
On Wed, 2018-10-10 at 13:27 +0100, Mark Brown wrote:
> That's great and we get to reuse all the driver code with a quirk (a
> quirk which fixes the hardware to be more compatible with devices, this
> is a really good hardware change). Ideally we'd be able to enumerate
> things like IP versions and options from hardware but that's a more
> entertaining problem.
Might well be possible here. There are an id code and version
registers that could be used. Did anyone have the foresight to change
them would modifying the IP is the question.
> Having said all this if there are production systems using this
> property, especially production systems where people other than the
> system integrator can realistically deploy their own kernel separate to
> the device tree, then supporting those existing DTs even if they're not
> doing the ideal thing might be the best thing. You mentioned that this
> might be the case, can you check what the status is there please?
I've developed systems that used chips with this SPI master. I used
GPIO chip selects to work around the existing behavior and would not be
negatively affected if someone fixed this bug.
There's also another quirk where certain phase/polarity combination
make it generate a CS pulse between each word.
IMHO, Linux SPI has a specification for how it works. Setup an xfer a
certain way and you get a certain waveform from the master. If the
master generates the wrong waveform then it's a bug. Designers should
know better than to design a system that depends on a bug never being
fixed and be caught off guard when it is. If you want CS to turn off
whenever the FIFO is empty (why???) then extend the spec to encompass
the behavior you want. Like how "pulse between words" can be specified