root/include/linux/spi/pxa2xx_spi.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Copyright (C) 2005 Stephen Street / StreetFire Sound Labs
   4  */
   5 #ifndef __linux_pxa2xx_spi_h
   6 #define __linux_pxa2xx_spi_h
   7 
   8 #include <linux/pxa2xx_ssp.h>
   9 
  10 #define PXA2XX_CS_ASSERT (0x01)
  11 #define PXA2XX_CS_DEASSERT (0x02)
  12 
  13 struct dma_chan;
  14 
  15 /* device.platform_data for SSP controller devices */
  16 struct pxa2xx_spi_controller {
  17         u16 num_chipselect;
  18         u8 enable_dma;
  19         u8 dma_burst_size;
  20         bool is_slave;
  21 
  22         /* DMA engine specific config */
  23         bool (*dma_filter)(struct dma_chan *chan, void *param);
  24         void *tx_param;
  25         void *rx_param;
  26 
  27         /* For non-PXA arches */
  28         struct ssp_device ssp;
  29 };
  30 
  31 /* spi_board_info.controller_data for SPI slave devices,
  32  * copied to spi_device.platform_data ... mostly for dma tuning
  33  */
  34 struct pxa2xx_spi_chip {
  35         u8 tx_threshold;
  36         u8 tx_hi_threshold;
  37         u8 rx_threshold;
  38         u8 dma_burst_size;
  39         u32 timeout;
  40         u8 enable_loopback;
  41         int gpio_cs;
  42         void (*cs_control)(u32 command);
  43 };
  44 
  45 #if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP)
  46 
  47 #include <linux/clk.h>
  48 
  49 extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info);
  50 
  51 #endif
  52 #endif

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