Re: [PATCH 0/3] spi: SPI bus multiplexer

From: Chris Packham
Date: Sun Apr 28 2019 - 18:28:23 EST


On 12/04/19 8:29 PM, Mark Brown wrote:
> On Fri, Apr 12, 2019 at 05:02:10PM +1200, Chris Packham wrote:
>
>> Unfortunately recent changes have stopped my hacks from working. I've
>> tried adapting cs-gpios to work with my particular hardware but I came
>> to the realisation that the current cs-gpios support assumes a 1:1
>> mapping of gpio to SPI device whereas my hardware used the state of the
>> gpio selecting the device i.e. a 1:2 mapping.
>
>> This is my attempt to implement a driver to deal with this. One nice
>> property is that it is pretty much self contained. The only change to
>> the core SPI infrastructure is exposing a function I needed to lookup
>> the spi_controller instance.
>
> Why not implement the device that demuxes the GPIOs you're using for
> chip select as a GPIO controller? Presumably it might get used for
> things other than chip selects.
>

Hmm a gpio-gpio driver. Interesting.

One other problem that I encounter is the interaction between cs-gpio
and SPI_MASTER_GPIO_SS. Having cs-gpio automatically sets SPI_CS_HIGH
which has the undesired side-effect that now my real chip select is
inverted. I actually wonder if this change breaks commit 8eee6b9dd30d
("spi: Add Flag to Enable Slave Select with GPIO Chip Select.") since
now there is an extra inversion on the CS enable.