[DISCUSSION] spi multi chipselect support

From: Sebastian Reichel
Date: Wed Jul 18 2018 - 12:35:36 EST


Hi Mark,

Some SPI slave devices have more than one chip select [0]. Rob suggested
to use the following DT notation for this [1]:

spi-controller {
slave@0 {
reg = <0>, <1>;
};
};

I think this makes sense from a DT point of view, but this needs
quite some changes in the SPI core. I tried to find out, how to
implement the suggestion in the last few days and I see two
possibilities:

1. Register two SPI Linux devices from one DT node. This needs the
fewest changes in SPI core. But we loose the one-to-one mapping
of DT nodes to devices. I have a feeling, that this will backfire.

2. Add support for multiple chip-select to spi_device and modify
the transfer functions to make use of this. Unfortunately this
would require changing all spi controller as far as I can see?

Can you please advise me how to proceed?

Thanks,

-- Sebastian

[0] For example microcontrollers with ISP (in-system programming)
interface, like the NXP Kinetis K20 series or the MRF89XA,
which has one chip-select for configuration register access
and one for FIFO access
[1] https://patchwork.kernel.org/patch/10310109/

Attachment: signature.asc
Description: PGP signature