diff options
Diffstat (limited to 'components/drivers/sdio/mmcsd_host.h')
| -rw-r--r-- | components/drivers/sdio/mmcsd_host.h | 13 |
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; }; |
