Merge remote-tracking branch 'spi/topic/of' into spi-next
[linux-2.6-block.git] / include / linux / spi / spi.h
index e9ebfcd2e932af82b4daaf972d9b615f24d0a3aa..6be77fa5ab90cd38c5a86fe1f1c3e3546e3a016b 100644 (file)
@@ -1,15 +1,6 @@
-/*
- * Copyright (C) 2005 David Brownell
+/* SPDX-License-Identifier: GPL-2.0-or-later
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * Copyright (C) 2005 David Brownell
  */
 
 #ifndef __LINUX_SPI_H
@@ -163,10 +154,12 @@ struct spi_device {
 #define        SPI_TX_QUAD     0x200                   /* transmit with 4 wires */
 #define        SPI_RX_DUAL     0x400                   /* receive with 2 wires */
 #define        SPI_RX_QUAD     0x800                   /* receive with 4 wires */
+#define SPI_CS_WORD    0x1000                  /* toggle cs after each word */
        int                     irq;
        void                    *controller_state;
        void                    *controller_data;
        char                    modalias[SPI_NAME_SIZE];
+       const char              *driver_override;
        int                     cs_gpio;        /* chip select gpio */
 
        /* the statistics */
@@ -177,7 +170,6 @@ struct spi_device {
         * the controller talks to each chip, like:
         *  - memory packing (12 bit samples into low bits, others zeroed)
         *  - priority
-        *  - drop chipselect after each word
         *  - chipselect delays
         *  - ...
         */
@@ -711,6 +703,8 @@ extern void spi_res_release(struct spi_controller *ctlr,
  * @delay_usecs: microseconds to delay after this transfer before
  *     (optionally) changing the chipselect status, then starting
  *     the next transfer or completing this @spi_message.
+ * @word_delay: clock cycles to inter word delay after each word size
+ *     (set by bits_per_word) transmission.
  * @transfer_list: transfers are sequenced through @spi_message.transfers
  * @tx_sg: Scatterlist for transmit, currently not for client use
  * @rx_sg: Scatterlist for receive, currently not for client use
@@ -793,6 +787,7 @@ struct spi_transfer {
        u8              bits_per_word;
        u16             delay_usecs;
        u32             speed_hz;
+       u16             word_delay;
 
        struct list_head transfer_list;
 };