summaryrefslogtreecommitdiff
path: root/components/drivers/sdio/mmcsd_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'components/drivers/sdio/mmcsd_host.h')
-rw-r--r--components/drivers/sdio/mmcsd_host.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/components/drivers/sdio/mmcsd_host.h b/components/drivers/sdio/mmcsd_host.h
index 37ee0bceb0..9cbbb51a76 100644
--- a/components/drivers/sdio/mmcsd_host.h
+++ b/components/drivers/sdio/mmcsd_host.h
@@ -59,6 +59,7 @@ struct rt_mmcsd_host_ops {
void (*request)(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req);
void (*set_iocfg)(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg);
rt_int32_t (*get_card_status)(struct rt_mmcsd_host *host);
+ void (*enable_sdio_irq)(struct rt_mmcsd_host *host, rt_int32_t en);
};
struct rt_mmcsd_host {
@@ -91,10 +92,22 @@ struct rt_mmcsd_host {
#define MMCSD_MUTBLKWRITE (1 << 2)
#define MMCSD_HOST_IS_SPI (1 << 3)
#define controller_is_spi(host) (host->flags & MMCSD_HOST_IS_SPI)
+#define MMCSD_SUP_SDIO_IRQ (1 << 4) /* support signal pending SDIO IRQs */
+#define MMCSD_SUP_HIGHSPEED (1 << 5) /* support high speed */
+
+ rt_uint32_t max_seg_size; /* maximum size of one dma segment */
+ rt_uint32_t max_dma_segs; /* maximum number of dma segments in one request */
+ rt_uint32_t max_blk_size; /* maximum block size */
+ rt_uint32_t max_blk_count; /* maximum block count */
+
rt_uint32_t spi_use_crc;
struct rt_semaphore bus_lock;
struct rt_semaphore sem_ack;
+ rt_uint32_t sdio_irq_num;
+ struct rt_semaphore *sdio_irq_sem;
+ struct rt_thread *sdio_irq_thread;
+
void *private_data;
};