#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/mmc/sdio_func.h>
#include <linux/mmc/sdio_ids.h>
#include <linux/platform_device.h>
#include <linux/irq.h>
#include <linux/pm_runtime.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include "wl1251.h"
struct wl1251_sdio { … };
static struct sdio_func *wl_to_func(struct wl1251 *wl)
{ … }
static void wl1251_sdio_interrupt(struct sdio_func *func)
{ … }
static const struct sdio_device_id wl1251_devices[] = …;
MODULE_DEVICE_TABLE(sdio, wl1251_devices);
static void wl1251_sdio_read(struct wl1251 *wl, int addr,
void *buf, size_t len)
{ … }
static void wl1251_sdio_write(struct wl1251 *wl, int addr,
void *buf, size_t len)
{ … }
static void wl1251_sdio_read_elp(struct wl1251 *wl, int addr, u32 *val)
{ … }
static void wl1251_sdio_write_elp(struct wl1251 *wl, int addr, u32 val)
{ … }
static void wl1251_sdio_reset(struct wl1251 *wl)
{ … }
static void wl1251_sdio_enable_irq(struct wl1251 *wl)
{ … }
static void wl1251_sdio_disable_irq(struct wl1251 *wl)
{ … }
static irqreturn_t wl1251_line_irq(int irq, void *cookie)
{ … }
static void wl1251_enable_line_irq(struct wl1251 *wl)
{ … }
static void wl1251_disable_line_irq(struct wl1251 *wl)
{ … }
static int wl1251_sdio_set_power(struct wl1251 *wl, bool enable)
{ … }
static struct wl1251_if_operations wl1251_sdio_ops = …;
static int wl1251_sdio_probe(struct sdio_func *func,
const struct sdio_device_id *id)
{ … }
static void wl1251_sdio_remove(struct sdio_func *func)
{ … }
static int wl1251_suspend(struct device *dev)
{ … }
static int wl1251_resume(struct device *dev)
{ … }
static const struct dev_pm_ops wl1251_sdio_pm_ops = …;
static struct sdio_driver wl1251_sdio_driver = …;
module_sdio_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;