#include <linux/clk.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#define DRIVER_NAME …
#define AR934X_SPI_REG_FS …
#define AR934X_SPI_ENABLE …
#define AR934X_SPI_REG_IOC …
#define AR934X_SPI_IOC_INITVAL …
#define AR934X_SPI_REG_CTRL …
#define AR934X_SPI_CLK_MASK …
#define AR934X_SPI_DATAOUT …
#define AR934X_SPI_REG_SHIFT_CTRL …
#define AR934X_SPI_SHIFT_EN …
#define AR934X_SPI_SHIFT_CS(n) …
#define AR934X_SPI_SHIFT_TERM …
#define AR934X_SPI_SHIFT_VAL(cs, term, count) …
#define AR934X_SPI_DATAIN …
struct ar934x_spi { … };
static inline int ar934x_spi_clk_div(struct ar934x_spi *sp, unsigned int freq)
{ … }
static int ar934x_spi_setup(struct spi_device *spi)
{ … }
static int ar934x_spi_transfer_one_message(struct spi_controller *ctlr,
struct spi_message *m)
{ … }
static const struct of_device_id ar934x_spi_match[] = …;
MODULE_DEVICE_TABLE(of, ar934x_spi_match);
static int ar934x_spi_probe(struct platform_device *pdev)
{ … }
static void ar934x_spi_remove(struct platform_device *pdev)
{ … }
static struct platform_driver ar934x_spi_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;