aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorSan Mehat <san@android.com>2008-04-14 15:22:49 -0700
committerColin Cross <ccross@android.com>2011-06-14 09:08:51 -0700
commit9a248205b3a09a8ea2dcdb9cd5bd9b431c278f42 (patch)
treee87994b3e1b090fc266b7c0810f39390516e1c83 /include/linux/mmc
parentae11f09ab60621655cc407e7903ec3373e29b7fc (diff)
downloadkernel_samsung_aries-9a248205b3a09a8ea2dcdb9cd5bd9b431c278f42.zip
kernel_samsung_aries-9a248205b3a09a8ea2dcdb9cd5bd9b431c278f42.tar.gz
kernel_samsung_aries-9a248205b3a09a8ea2dcdb9cd5bd9b431c278f42.tar.bz2
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>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/host.h17
-rw-r--r--include/linux/mmc/sdio_func.h8
2 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 1ee4424..2f8a823 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -281,6 +281,15 @@ struct mmc_host {
struct dentry *debugfs_root;
+#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;
};
@@ -289,6 +298,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;
diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h
index 31baaf8..cce6a3e 100644
--- a/include/linux/mmc/sdio_func.h
+++ b/include/linux/mmc/sdio_func.h
@@ -23,6 +23,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)
*/
struct sdio_func_tuple {