root/include/linux/platform_data/spi-davinci.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Copyright 2009 Texas Instruments.
   4  */
   5 
   6 #ifndef __ARCH_ARM_DAVINCI_SPI_H
   7 #define __ARCH_ARM_DAVINCI_SPI_H
   8 
   9 #include <linux/platform_data/edma.h>
  10 
  11 #define SPI_INTERN_CS   0xFF
  12 
  13 enum {
  14         SPI_VERSION_1, /* For DM355/DM365/DM6467 */
  15         SPI_VERSION_2, /* For DA8xx */
  16 };
  17 
  18 /**
  19  * davinci_spi_platform_data - Platform data for SPI master device on DaVinci
  20  *
  21  * @version:    version of the SPI IP. Different DaVinci devices have slightly
  22  *              varying versions of the same IP.
  23  * @num_chipselect: number of chipselects supported by this SPI master
  24  * @intr_line:  interrupt line used to connect the SPI IP to the ARM interrupt
  25  *              controller withn the SoC. Possible values are 0 and 1.
  26  * @cshold_bug: set this to true if the SPI controller on your chip requires
  27  *              a write to CSHOLD bit in between transfers (like in DM355).
  28  * @dma_event_q: DMA event queue to use if SPI_IO_TYPE_DMA is used for any
  29  *              device on the bus.
  30  */
  31 struct davinci_spi_platform_data {
  32         u8                      version;
  33         u8                      num_chipselect;
  34         u8                      intr_line;
  35         u8                      prescaler_limit;
  36         bool                    cshold_bug;
  37         enum dma_event_q        dma_event_q;
  38 };
  39 
  40 /**
  41  * davinci_spi_config - Per-chip-select configuration for SPI slave devices
  42  *
  43  * @wdelay:     amount of delay between transmissions. Measured in number of
  44  *              SPI module clocks.
  45  * @odd_parity: polarity of parity flag at the end of transmit data stream.
  46  *              0 - odd parity, 1 - even parity.
  47  * @parity_enable: enable transmission of parity at end of each transmit
  48  *              data stream.
  49  * @io_type:    type of IO transfer. Choose between polled, interrupt and DMA.
  50  * @timer_disable: disable chip-select timers (setup and hold)
  51  * @c2tdelay:   chip-select setup time. Measured in number of SPI module clocks.
  52  * @t2cdelay:   chip-select hold time. Measured in number of SPI module clocks.
  53  * @t2edelay:   transmit data finished to SPI ENAn pin inactive time. Measured
  54  *              in number of SPI clocks.
  55  * @c2edelay:   chip-select active to SPI ENAn signal active time. Measured in
  56  *              number of SPI clocks.
  57  */
  58 struct davinci_spi_config {
  59         u8      wdelay;
  60         u8      odd_parity;
  61         u8      parity_enable;
  62 #define SPI_IO_TYPE_INTR        0
  63 #define SPI_IO_TYPE_POLL        1
  64 #define SPI_IO_TYPE_DMA         2
  65         u8      io_type;
  66         u8      timer_disable;
  67         u8      c2tdelay;
  68         u8      t2cdelay;
  69         u8      t2edelay;
  70         u8      c2edelay;
  71 };
  72 
  73 #endif  /* __ARCH_ARM_DAVINCI_SPI_H */

/* [<][>][^][v][top][bottom][index][help] */