#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/swab.h>
#include <linux/crc7.h>
#include <linux/spi/spi.h>
#include <linux/platform_device.h>
#include <linux/of_irq.h>
#include <linux/regulator/consumer.h>
#include "wlcore.h"
#include "wl12xx_80211.h"
#include "io.h"
#define WSPI_CMD_READ …
#define WSPI_CMD_WRITE …
#define WSPI_CMD_FIXED …
#define WSPI_CMD_BYTE_LENGTH …
#define WSPI_CMD_BYTE_LENGTH_OFFSET …
#define WSPI_CMD_BYTE_ADDR …
#define WSPI_INIT_CMD_CRC_LEN …
#define WSPI_INIT_CMD_START …
#define WSPI_INIT_CMD_TX …
#define WSPI_INIT_CMD_BYPASS_BIT …
#define WSPI_INIT_CMD_FIXEDBUSY_LEN …
#define WSPI_INIT_CMD_EN_FIXEDBUSY …
#define WSPI_INIT_CMD_DIS_FIXEDBUSY …
#define WSPI_INIT_CMD_IOD …
#define WSPI_INIT_CMD_IP …
#define WSPI_INIT_CMD_CS …
#define WSPI_INIT_CMD_WS …
#define WSPI_INIT_CMD_WSPI …
#define WSPI_INIT_CMD_END …
#define WSPI_INIT_CMD_LEN …
#define HW_ACCESS_WSPI_FIXED_BUSY_LEN …
#define HW_ACCESS_WSPI_INIT_CMD_MASK …
#define WSPI_MAX_CHUNK_SIZE …
#define SPI_AGGR_BUFFER_SIZE …
#define WSPI_MAX_NUM_OF_CHUNKS …
static const struct wilink_family_data wl127x_data = …;
static const struct wilink_family_data wl128x_data = …;
static const struct wilink_family_data wl18xx_data = …;
struct wl12xx_spi_glue { … };
static void wl12xx_spi_reset(struct device *child)
{ … }
static void wl12xx_spi_init(struct device *child)
{ … }
#define WL1271_BUSY_WORD_TIMEOUT …
static int wl12xx_spi_read_busy(struct device *child)
{ … }
static int __must_check wl12xx_spi_raw_read(struct device *child, int addr,
void *buf, size_t len, bool fixed)
{ … }
static int __wl12xx_spi_raw_write(struct device *child, int addr,
void *buf, size_t len, bool fixed)
{ … }
static int __must_check wl12xx_spi_raw_write(struct device *child, int addr,
void *buf, size_t len, bool fixed)
{ … }
static int wl12xx_spi_set_power(struct device *child, bool enable)
{ … }
static void wl12xx_spi_set_block_size(struct device *child,
unsigned int blksz)
{ … }
static struct wl1271_if_operations spi_ops = …;
static const struct of_device_id wlcore_spi_of_match_table[] = …;
MODULE_DEVICE_TABLE(of, wlcore_spi_of_match_table);
static int wlcore_probe_of(struct spi_device *spi, struct wl12xx_spi_glue *glue,
struct wlcore_platdev_data *pdev_data)
{ … }
static int wl1271_probe(struct spi_device *spi)
{ … }
static void wl1271_remove(struct spi_device *spi)
{ … }
static struct spi_driver wl1271_spi_driver = …;
module_spi_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_ALIAS(…) …;