#include <linux/kernel.h>
#include <linux/mmc/core.h>
#include <linux/mmc/host.h>
#include <linux/mmc/mmc.h>
#include <linux/scatterlist.h>
#include <linux/workqueue.h>
#include <linux/greybus.h>
#include "gbphy.h"
struct gb_sdio_host { … };
#define GB_SDIO_RSP_R1_R5_R6_R7 …
#define GB_SDIO_RSP_R3_R4 …
#define GB_SDIO_RSP_R2 …
#define GB_SDIO_RSP_R1B …
#define GB_SDIO_VDD_SHIFT …
#ifndef MMC_CAP2_CORE_RUNTIME_PM
#define MMC_CAP2_CORE_RUNTIME_PM …
#endif
static inline bool single_op(struct mmc_command *cmd)
{ … }
static void _gb_sdio_set_host_caps(struct gb_sdio_host *host, u32 r)
{ … }
static u32 _gb_sdio_get_host_ocr(u32 ocr)
{ … }
static int gb_sdio_get_caps(struct gb_sdio_host *host)
{ … }
static void _gb_queue_event(struct gb_sdio_host *host, u8 event)
{ … }
static int _gb_sdio_process_events(struct gb_sdio_host *host, u8 event)
{ … }
static int gb_sdio_request_handler(struct gb_operation *op)
{ … }
static int gb_sdio_set_ios(struct gb_sdio_host *host,
struct gb_sdio_set_ios_request *request)
{ … }
static int _gb_sdio_send(struct gb_sdio_host *host, struct mmc_data *data,
size_t len, u16 nblocks, off_t skip)
{ … }
static int _gb_sdio_recv(struct gb_sdio_host *host, struct mmc_data *data,
size_t len, u16 nblocks, off_t skip)
{ … }
static int gb_sdio_transfer(struct gb_sdio_host *host, struct mmc_data *data)
{ … }
static int gb_sdio_command(struct gb_sdio_host *host, struct mmc_command *cmd)
{ … }
static void gb_sdio_mrq_work(struct work_struct *work)
{ … }
static void gb_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
{ … }
static void gb_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
{ … }
static int gb_mmc_get_ro(struct mmc_host *mmc)
{ … }
static int gb_mmc_get_cd(struct mmc_host *mmc)
{ … }
static int gb_mmc_switch_voltage(struct mmc_host *mmc, struct mmc_ios *ios)
{ … }
static const struct mmc_host_ops gb_sdio_ops = …;
static int gb_sdio_probe(struct gbphy_device *gbphy_dev,
const struct gbphy_device_id *id)
{ … }
static void gb_sdio_remove(struct gbphy_device *gbphy_dev)
{ … }
static const struct gbphy_device_id gb_sdio_id_table[] = …;
MODULE_DEVICE_TABLE(gbphy, gb_sdio_id_table);
static struct gbphy_driver sdio_driver = …;
module_gbphy_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;