]> Pileus Git - ~andy/linux/blobdiff - include/linux/mmc/host.h
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[~andy/linux] / include / linux / mmc / host.h
index 6716bd12eccd3e58a2e9773caea9a9a4d4ef536f..1ee4424462ebcf98f2e81082b65c7211d64a248e 100644 (file)
@@ -66,6 +66,7 @@ struct mmc_ios {
 
 #define MMC_SIGNAL_VOLTAGE_330 0
 #define MMC_SIGNAL_VOLTAGE_180 1
+#define MMC_SIGNAL_VOLTAGE_120 2
 
        unsigned char   drv_type;               /* driver type (A, B, C, D) */
 
@@ -209,6 +210,7 @@ struct mmc_host {
 #define MMC_CAP_MAX_CURRENT_400        (1 << 27)       /* Host max current limit is 400mA */
 #define MMC_CAP_MAX_CURRENT_600        (1 << 28)       /* Host max current limit is 600mA */
 #define MMC_CAP_MAX_CURRENT_800        (1 << 29)       /* Host max current limit is 800mA */
+#define MMC_CAP_CMD23          (1 << 30)       /* CMD23 supported. */
 
        mmc_pm_flag_t           pm_caps;        /* supported pm features */
 
@@ -219,6 +221,7 @@ struct mmc_host {
        struct work_struct      clk_gate_work; /* delayed clock gate */
        unsigned int            clk_old;        /* old clock value cache */
        spinlock_t              clk_lock;       /* lock for clk fields */
+       struct mutex            clk_gate_mutex; /* mutex for clock gating */
 #endif
 
        /* host specific block data */
@@ -365,5 +368,10 @@ static inline int mmc_card_wake_sdio_irq(struct mmc_host *host)
 {
        return host->pm_flags & MMC_PM_WAKE_SDIO_IRQ;
 }
+
+static inline int mmc_host_cmd23(struct mmc_host *host)
+{
+       return host->caps & MMC_CAP_CMD23;
+}
 #endif