[LINUX PATCH v2 1/3] spi: Added dummy_cycle entry in the spi_transfer structure.
Cyrille Pitchen
cyrille.pitchen at atmel.com
Thu Apr 7 08:02:44 PDT 2016
Hi all,
Le 07/04/2016 16:39, P L Sai Krishna a écrit :
> This patch adds dummy_cycles entry in the spi_transfer structure.
> len field in the transfer structure contains dummy bytes along with
> actual data bytes, controllers which requires dummy bytes use len
> field and simply Ignore the dummy_cycles field. Controllers which
> expects dummy cycles won't work directly by using len field because
> host driver doesn't know that len field of a particular transfer
> includes dummy bytes or not (and also number of dummy bytes included
> in len field). In such cases host driver use this dummy_cycles field
> to identify the number of dummy cycles and based on that it will send
> the required number of dummy cycles.
Dummy cycles are only used with SPI NOR flashes, aren't they?
I guess so since there is also a patch dedicated to the m25p80 driver.
So why not using the spi_flash_read() API already introduced by Vignesh
in the SPI layer?
struct spi_flash_read_message already includes a 'dummy_bytes' member.
>
> Signed-off-by: P L Sai Krishna <lakshmis at xilinx.com>
> ---
> v2:
> - Changed the structure member name from dummy to dummy_cycles.
> - Updated the documentation of dummy_cycles.
> - m25p80 changes split into another patch.
>
> include/linux/spi/spi.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 857a9a1..63135b3 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -664,6 +664,9 @@ extern void spi_res_release(struct spi_master *master,
> * @len: size of rx and tx buffers (in bytes)
> * @speed_hz: Select a speed other than the device default for this
> * transfer. If 0 the default (from @spi_device) is used.
> + * @dummy_cycles: number of dummy cycles. If host controller requires
> + * dummy cycles rather than dummy bytes which send along with Cmd
> + * and address then this dummy_cycles is used.
> * @bits_per_word: select a bits_per_word other than the device default
> * for this transfer. If 0 the default (from @spi_device) is used.
> * @cs_change: affects chipselect after this transfer completes
> @@ -752,6 +755,7 @@ struct spi_transfer {
> u8 bits_per_word;
> u16 delay_usecs;
> u32 speed_hz;
> + u32 dummy_cycles;
>
> struct list_head transfer_list;
> };
>
Best regards,
Cyrille
More information about the linux-arm-kernel
mailing list