#include <linux/iopoll.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi-mem.h>
#define GXP_SPI0_MAX_CHIPSELECT …
#define GXP_SPI_SLEEP_TIME …
#define GXP_SPI_TIMEOUT …
#define MANUAL_MODE …
#define DIRECT_MODE …
#define SPILDAT_LEN …
#define OFFSET_SPIMCFG …
#define OFFSET_SPIMCTRL …
#define OFFSET_SPICMD …
#define OFFSET_SPIDCNT …
#define OFFSET_SPIADDR …
#define OFFSET_SPIINTSTS …
#define SPIMCTRL_START …
#define SPIMCTRL_BUSY …
#define SPIMCTRL_DIR …
struct gxp_spi;
struct gxp_spi_chip { … };
struct gxp_spi_data { … };
struct gxp_spi { … };
static void gxp_spi_set_mode(struct gxp_spi *spifi, int mode)
{ … }
static int gxp_spi_read_reg(struct gxp_spi_chip *chip, const struct spi_mem_op *op)
{ … }
static int gxp_spi_write_reg(struct gxp_spi_chip *chip, const struct spi_mem_op *op)
{ … }
static ssize_t gxp_spi_read(struct gxp_spi_chip *chip, const struct spi_mem_op *op)
{ … }
static ssize_t gxp_spi_write(struct gxp_spi_chip *chip, const struct spi_mem_op *op)
{ … }
static int do_gxp_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op *op)
{ … }
static int gxp_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op *op)
{ … }
static const struct spi_controller_mem_ops gxp_spi_mem_ops = …;
static int gxp_spi_setup(struct spi_device *spi)
{ … }
static int gxp_spifi_probe(struct platform_device *pdev)
{ … }
static const struct gxp_spi_data gxp_spifi_data = …;
static const struct of_device_id gxp_spifi_match[] = …;
MODULE_DEVICE_TABLE(of, gxp_spifi_match);
static struct platform_driver gxp_spifi_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;