linux/drivers/mmc/host/ushc.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * USB SD Host Controller (USHC) controller driver.
 *
 * Copyright (C) 2010 Cambridge Silicon Radio Ltd.
 *
 * Notes:
 *   - Only version 2 devices are supported.
 *   - Version 2 devices only support SDIO cards/devices (R2 response is
 *     unsupported).
 *
 * References:
 *   [USHC] USB SD Host Controller specification (CS-118793-SP)
 */
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/dma-mapping.h>
#include <linux/mmc/host.h>

enum ushc_request {};

enum ushc_request_type {};

#define USHC_GET_CAPS_VERSION_MASK
#define USHC_GET_CAPS_3V3
#define USHC_GET_CAPS_3V0
#define USHC_GET_CAPS_1V8
#define USHC_GET_CAPS_HIGH_SPD

#define USHC_HOST_CTRL_4BIT
#define USHC_HOST_CTRL_HIGH_SPD

#define USHC_PWR_CTRL_OFF
#define USHC_PWR_CTRL_3V3
#define USHC_PWR_CTRL_3V0
#define USHC_PWR_CTRL_1V8

#define USHC_READ_RESP_BUSY
#define USHC_READ_RESP_ERR_TIMEOUT
#define USHC_READ_RESP_ERR_CRC
#define USHC_READ_RESP_ERR_DAT
#define USHC_READ_RESP_ERR_CMD
#define USHC_READ_RESP_ERR_MASK

struct ushc_cbw {} __attribute__((packed));

#define USHC_CBW_SIGNATURE

struct ushc_csw {} __attribute__((packed));

#define USHC_CSW_SIGNATURE

struct ushc_int_data {};

#define USHC_INT_STATUS_SDIO_INT
#define USHC_INT_STATUS_CARD_PRESENT


struct ushc_data {};

#define DISCONNECTED
#define INT_EN
#define IGNORE_NEXT_INT

static void data_callback(struct urb *urb);

static int ushc_hw_reset(struct ushc_data *ushc)
{}

static int ushc_hw_get_caps(struct ushc_data *ushc)
{}

static int ushc_hw_set_host_ctrl(struct ushc_data *ushc, u16 mask, u16 val)
{}

static void int_callback(struct urb *urb)
{}

static void cbw_callback(struct urb *urb)
{}

static void data_callback(struct urb *urb)
{}

static void csw_callback(struct urb *urb)
{}

static void ushc_request(struct mmc_host *mmc, struct mmc_request *req)
{}

static int ushc_set_power(struct ushc_data *ushc, unsigned char power_mode)
{}

static int ushc_set_bus_width(struct ushc_data *ushc, int bus_width)
{}

static int ushc_set_bus_freq(struct ushc_data *ushc, int clk, bool enable_hs)
{}

static void ushc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
{}

static int ushc_get_cd(struct mmc_host *mmc)
{}

static void ushc_enable_sdio_irq(struct mmc_host *mmc, int enable)
{}

static void ushc_clean_up(struct ushc_data *ushc)
{}

static const struct mmc_host_ops ushc_ops =;

static int ushc_probe(struct usb_interface *intf, const struct usb_device_id *id)
{}

static void ushc_disconnect(struct usb_interface *intf)
{}

static struct usb_device_id ushc_id_table[] =;
MODULE_DEVICE_TABLE(usb, ushc_id_table);

static struct usb_driver ushc_driver =;

module_usb_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();