mmc: Add concept of an 'embedded' SDIO device.
This is required to support chips which use SDIO for signaling/ communication but do not implement the various card enumeration registers as required for full SD / SDIO cards. mmc: sdio: Fix bug where we're freeing the CIS tables we never allocated when using EMBEDDED_SDIO mmc: Add max_blksize to embedded SDIO data Signed-off-by: San Mehat <san@google.com>
This commit is contained in:
@@ -319,6 +319,15 @@ struct mmc_host {
|
||||
|
||||
unsigned int actual_clock; /* Actual HC clock rate */
|
||||
|
||||
#ifdef CONFIG_MMC_EMBEDDED_SDIO
|
||||
struct {
|
||||
struct sdio_cis *cis;
|
||||
struct sdio_cccr *cccr;
|
||||
struct sdio_embedded_func *funcs;
|
||||
int num_funcs;
|
||||
} embedded_sdio_data;
|
||||
#endif
|
||||
|
||||
unsigned long private[0] ____cacheline_aligned;
|
||||
};
|
||||
|
||||
@@ -327,6 +336,14 @@ extern int mmc_add_host(struct mmc_host *);
|
||||
extern void mmc_remove_host(struct mmc_host *);
|
||||
extern void mmc_free_host(struct mmc_host *);
|
||||
|
||||
#ifdef CONFIG_MMC_EMBEDDED_SDIO
|
||||
extern void mmc_set_embedded_sdio_data(struct mmc_host *host,
|
||||
struct sdio_cis *cis,
|
||||
struct sdio_cccr *cccr,
|
||||
struct sdio_embedded_func *funcs,
|
||||
int num_funcs);
|
||||
#endif
|
||||
|
||||
static inline void *mmc_priv(struct mmc_host *host)
|
||||
{
|
||||
return (void *)host->private;
|
||||
|
||||
@@ -22,6 +22,14 @@ struct sdio_func;
|
||||
|
||||
typedef void (sdio_irq_handler_t)(struct sdio_func *);
|
||||
|
||||
/*
|
||||
* Structure used to hold embedded SDIO device data from platform layer
|
||||
*/
|
||||
struct sdio_embedded_func {
|
||||
uint8_t f_class;
|
||||
uint32_t f_maxblksize;
|
||||
};
|
||||
|
||||
/*
|
||||
* SDIO function CIS tuple (unknown to the core)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user