#include <linux/module.h>
#include <linux/mmc/sdio.h>
#include <linux/mmc/sdio_func.h>
#include <linux/mmc/card.h>
#include <linux/interrupt.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/irq.h>
#include <linux/align.h>
#include "bus.h"
#include "wfx.h"
#include "hwio.h"
#include "main.h"
#include "bh.h"
static const struct wfx_platform_data pdata_wf200 = …;
static const struct wfx_platform_data pdata_brd4001a = …;
static const struct wfx_platform_data pdata_brd8022a = …;
static const struct wfx_platform_data pdata_brd8023a = …;
struct wfx_sdio_priv { … };
static int wfx_sdio_copy_from_io(void *priv, unsigned int reg_id, void *dst, size_t count)
{ … }
static int wfx_sdio_copy_to_io(void *priv, unsigned int reg_id, const void *src, size_t count)
{ … }
static void wfx_sdio_lock(void *priv)
{ … }
static void wfx_sdio_unlock(void *priv)
{ … }
static void wfx_sdio_irq_handler(struct sdio_func *func)
{ … }
static irqreturn_t wfx_sdio_irq_handler_ext(int irq, void *priv)
{ … }
static int wfx_sdio_irq_subscribe(void *priv)
{ … }
static int wfx_sdio_irq_unsubscribe(void *priv)
{ … }
static size_t wfx_sdio_align_size(void *priv, size_t size)
{ … }
static const struct wfx_hwbus_ops wfx_sdio_hwbus_ops = …;
static const struct of_device_id wfx_sdio_of_match[] = …;
MODULE_DEVICE_TABLE(of, wfx_sdio_of_match);
static int wfx_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
{ … }
static void wfx_sdio_remove(struct sdio_func *func)
{ … }
static const struct sdio_device_id wfx_sdio_ids[] = …;
MODULE_DEVICE_TABLE(sdio, wfx_sdio_ids);
struct sdio_driver wfx_sdio_driver = …;