#ifndef __SPI_DW_H__
#define __SPI_DW_H__
#include <linux/bits.h>
#include <linux/completion.h>
#include <linux/debugfs.h>
#include <linux/irqreturn.h>
#include <linux/io.h>
#include <linux/scatterlist.h>
#include <linux/spi/spi-mem.h>
#include <linux/bitfield.h>
#define DW_PSSI_ID …
#define DW_HSSI_ID …
#define DW_HSSI_102A …
#define dw_spi_ip_is(_dws, _ip) …
#define __dw_spi_ver_cmp(_dws, _ip, _ver, _op) …
#define dw_spi_ver_is(_dws, _ip, _ver) …
#define dw_spi_ver_is_ge(_dws, _ip, _ver) …
#define DW_SPI_CAP_CS_OVERRIDE …
#define DW_SPI_CAP_DFS32 …
#define DW_SPI_CTRLR0 …
#define DW_SPI_CTRLR1 …
#define DW_SPI_SSIENR …
#define DW_SPI_MWCR …
#define DW_SPI_SER …
#define DW_SPI_BAUDR …
#define DW_SPI_TXFTLR …
#define DW_SPI_RXFTLR …
#define DW_SPI_TXFLR …
#define DW_SPI_RXFLR …
#define DW_SPI_SR …
#define DW_SPI_IMR …
#define DW_SPI_ISR …
#define DW_SPI_RISR …
#define DW_SPI_TXOICR …
#define DW_SPI_RXOICR …
#define DW_SPI_RXUICR …
#define DW_SPI_MSTICR …
#define DW_SPI_ICR …
#define DW_SPI_DMACR …
#define DW_SPI_DMATDLR …
#define DW_SPI_DMARDLR …
#define DW_SPI_IDR …
#define DW_SPI_VERSION …
#define DW_SPI_DR …
#define DW_SPI_RX_SAMPLE_DLY …
#define DW_SPI_CS_OVERRIDE …
#define DW_PSSI_CTRLR0_DFS_MASK …
#define DW_PSSI_CTRLR0_DFS32_MASK …
#define DW_PSSI_CTRLR0_FRF_MASK …
#define DW_SPI_CTRLR0_FRF_MOTO_SPI …
#define DW_SPI_CTRLR0_FRF_TI_SSP …
#define DW_SPI_CTRLR0_FRF_NS_MICROWIRE …
#define DW_SPI_CTRLR0_FRF_RESV …
#define DW_PSSI_CTRLR0_MODE_MASK …
#define DW_PSSI_CTRLR0_SCPHA …
#define DW_PSSI_CTRLR0_SCPOL …
#define DW_PSSI_CTRLR0_TMOD_MASK …
#define DW_SPI_CTRLR0_TMOD_TR …
#define DW_SPI_CTRLR0_TMOD_TO …
#define DW_SPI_CTRLR0_TMOD_RO …
#define DW_SPI_CTRLR0_TMOD_EPROMREAD …
#define DW_PSSI_CTRLR0_SLV_OE …
#define DW_PSSI_CTRLR0_SRL …
#define DW_PSSI_CTRLR0_CFS …
#define DW_HSSI_CTRLR0_DFS_MASK …
#define DW_HSSI_CTRLR0_FRF_MASK …
#define DW_HSSI_CTRLR0_SCPHA …
#define DW_HSSI_CTRLR0_SCPOL …
#define DW_HSSI_CTRLR0_TMOD_MASK …
#define DW_HSSI_CTRLR0_SRL …
#define DW_HSSI_CTRLR0_MST …
#define DW_SPI_NDF_MASK …
#define DW_SPI_SR_MASK …
#define DW_SPI_SR_BUSY …
#define DW_SPI_SR_TF_NOT_FULL …
#define DW_SPI_SR_TF_EMPT …
#define DW_SPI_SR_RF_NOT_EMPT …
#define DW_SPI_SR_RF_FULL …
#define DW_SPI_SR_TX_ERR …
#define DW_SPI_SR_DCOL …
#define DW_SPI_INT_MASK …
#define DW_SPI_INT_TXEI …
#define DW_SPI_INT_TXOI …
#define DW_SPI_INT_RXUI …
#define DW_SPI_INT_RXOI …
#define DW_SPI_INT_RXFI …
#define DW_SPI_INT_MSTI …
#define DW_SPI_DMACR_RDMAE …
#define DW_SPI_DMACR_TDMAE …
#define DW_SPI_WAIT_RETRIES …
#define DW_SPI_BUF_SIZE …
#define DW_SPI_GET_BYTE(_val, _idx) …
struct dw_spi_cfg { … };
struct dw_spi;
struct dw_spi_dma_ops { … };
struct dw_spi { … };
static inline u32 dw_readl(struct dw_spi *dws, u32 offset)
{ … }
static inline void dw_writel(struct dw_spi *dws, u32 offset, u32 val)
{ … }
static inline u32 dw_read_io_reg(struct dw_spi *dws, u32 offset)
{ … }
static inline void dw_write_io_reg(struct dw_spi *dws, u32 offset, u32 val)
{ … }
static inline void dw_spi_enable_chip(struct dw_spi *dws, int enable)
{ … }
static inline void dw_spi_set_clk(struct dw_spi *dws, u16 div)
{ … }
static inline void dw_spi_mask_intr(struct dw_spi *dws, u32 mask)
{ … }
static inline void dw_spi_umask_intr(struct dw_spi *dws, u32 mask)
{ … }
static inline void dw_spi_reset_chip(struct dw_spi *dws)
{ … }
static inline void dw_spi_shutdown_chip(struct dw_spi *dws)
{ … }
extern void dw_spi_set_cs(struct spi_device *spi, bool enable);
extern void dw_spi_update_config(struct dw_spi *dws, struct spi_device *spi,
struct dw_spi_cfg *cfg);
extern int dw_spi_check_status(struct dw_spi *dws, bool raw);
extern int dw_spi_add_host(struct device *dev, struct dw_spi *dws);
extern void dw_spi_remove_host(struct dw_spi *dws);
extern int dw_spi_suspend_host(struct dw_spi *dws);
extern int dw_spi_resume_host(struct dw_spi *dws);
#ifdef CONFIG_SPI_DW_DMA
extern void dw_spi_dma_setup_mfld(struct dw_spi *dws);
extern void dw_spi_dma_setup_generic(struct dw_spi *dws);
#else
static inline void dw_spi_dma_setup_mfld(struct dw_spi *dws) {}
static inline void dw_spi_dma_setup_generic(struct dw_spi *dws) {}
#endif
#endif