Re: [PATCH v2 1/3] spi: Introduce one new field to set word delay

From: Baolin Wang
Date: Fri Aug 31 2018 - 04:39:00 EST

On 29 August 2018 at 19:33, Jan KundrÃt <jan.kundrat@xxxxxxxxx> wrote:
> On Ätvrtek 16. srpna 2018 14:54:49 CEST, Baolin Wang wrote:
>> + * @word_delay: clock cycles to inter word delay after each word size
>> + * (set by bits_per_word) transmission.
> I need a similar functionality for talking to a SPI device from userspace
> -- see my attempt for implementing this in spi-orion.c at [1]. The device's
> datasheet says that I should wait, e.g., 3Âs between each two words. I
> therefore like this patch :).
> The description can be improved because it left me wondering what "clock
> this is about. I suppose it's about the SPI clock cycles and not CPU clock
> cycles, right? I'll be hapy to patch this once Baolin confirms that that is
> the intended meaning.

Sorry for confusing. Since our SPI word delay unit is clock cycle of
the SPI clock, so my intention of the word_delay's unit is SPI clock
cycles according to our previous discussion.

> It seems that this is only implemented in one newly added driver. I'm
> interested in supporting this in spi-orion.c, but that sounds like
> driver-specific work for something which is pretty generic. How should this
> be implemented? Given that drivers for SPI masters can implement a function
> which transfers several words at once, there are not that many better
> possibilities than adding udelay()s, though. Thoughts?
> What is your plan to do with drivers which do not implement this (yet)? If a
> spi_transfer gets queued which asks for a word_delay delay, it is silently
> ignored now, AFAIU.
> What about userspace support, spidev and spi_ioc_transfer (that's my target,
> actually)? Is it OK to s/pad/word_delay/ in the spidev code and pass that to
> the generated struct spi_transfer? In my opinion, once we support specifying
> this from userspace, one has to definitely check that the SPI controller is
> ready to honor this request. Do we want a new bit in spi_controller.flags
> for this?
> With kind regards,
> Jan
> [1]

Baolin Wang
Best Regards