Hi Jonas,
On Sat, Jan 26, 2019 at 8:53 AM Jonas Bonn <jonas@xxxxxxxxxxx> wrote:
On 25/01/2019 18:50, Mark Brown wrote:
On Fri, Jan 25, 2019 at 05:47:13PM +0000, Mark Brown wrote:
On Fri, Jan 25, 2019 at 01:06:45PM +0100, Jonas Bonn wrote:
Having this as device property rather than a transfer property allows this
to be configured one time in setup() rather than having to fiddle with the
configuration register for every transfer.
That doesn't mean that the coniguration should be done in DT though, and
given that this presumably is a property of the device there seems to be
no reason why we'd have it in DT - if every instance of the device is
going to need to set the property we should just figure it out from the
compatble string instead.
To be clear here: the suggestion is to add a parameter the slave device
can set in spi_device which sets the default word_delay similarly to how
max_speed_hz works.
I'm confused... isn't that exactly what this patch does? It adds a
field word_delay to spi_device in the same manner as max_speed_hz.
I also added the ability to set it via DT, which I can break out into a
separate patch if that's an issue. Or is the problem that it's set via
DT, at all? Documentation/devicetree/bindings/spi-bus.txt documents 10
other slave-node properties related to transfer characteristics;
word_delay is just another such characteristic.
But again, I'm having trouble parsing your response Is the patch wrong,
should be broken up, or you just misunderstood it?
IIUIC, Mark means that it may be a non-configurable property of the slave
device, and thus should be handled (fixed setting) in the SPI slave driver.
Compare this to CPHA/CPOL, which are properties of the SPI slave device,
but which may be configurable. E.g. many SPI FLASHes support multiple
configurations. See e.g. commit 9c5becce21af35e5 ("ARM: shmobile: koelsch:
Fix QSPI mode of SPI-Flash into mode3").
Again, max_speed_hz is something different: while both the SPI master and
slave may support high speeds, board wiring (capacitance/inductance) may
need to force a slower speed than supported by the devices, so it makes
sense to make that configurable from DT.
Gr{oetje,eeting}s,
Geert