diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2008-09-04 15:01:57 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2008-09-04 15:01:57 +1000 |
commit | c808058b6d0f2fffa465fbd17fdd906adb1c77d8 (patch) | |
tree | e6eb0ca8d1a39c29333152eb5b14aad790127e92 /include | |
parent | 763da5bcc6b794d14be162ace0f6059f9dd5a0df (diff) | |
parent | 9e3a5af7bba6573a215d74ea83c3909df9b4c701 (diff) |
Merge commit 'mmc/next'
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mmc/sdio_func.h | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h index 07bee4a0d457..f1c5a39bc6e8 100644 --- a/include/linux/mmc/sdio_func.h +++ b/include/linux/mmc/sdio_func.h @@ -109,19 +109,33 @@ extern int sdio_register_driver(struct sdio_driver *); extern void sdio_unregister_driver(struct sdio_driver *); /* - * SDIO I/O operations + * Host lock management (you need to hold this lock before calling + * any other function below) */ + extern void sdio_claim_host(struct sdio_func *func); extern void sdio_release_host(struct sdio_func *func); +/* + * General function management + */ + extern int sdio_enable_func(struct sdio_func *func); extern int sdio_disable_func(struct sdio_func *func); extern int sdio_set_block_size(struct sdio_func *func, unsigned blksz); +/* + * Interrupt control + */ + extern int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler); extern int sdio_release_irq(struct sdio_func *func); +/* + * Register access functions + */ + extern unsigned int sdio_align_size(struct sdio_func *func, unsigned int sz); extern u8 sdio_readb(struct sdio_func *func, unsigned int addr, int *err_ret); @@ -150,5 +164,30 @@ extern unsigned char sdio_f0_readb(struct sdio_func *func, extern void sdio_f0_writeb(struct sdio_func *func, unsigned char b, unsigned int addr, int *err_ret); +/* + * Low-level I/O functions for hardware that doesn't properly abstract + * the register space. Don't use these unless you absolutely have to. + */ + +extern int sdio_read_bytes(struct sdio_func *func, void *dst, + unsigned int addr, int bytes); +extern int sdio_read_bytes_noincr(struct sdio_func *func, void *dst, + unsigned int addr, int bytes); + +extern int sdio_read_blocks(struct sdio_func *func, void *dst, + unsigned int addr, int blocks); +extern int sdio_read_blocks_noincr(struct sdio_func *func, void *dst, + unsigned int addr, int blocks); + +extern int sdio_write_bytes(struct sdio_func *func, unsigned int addr, + void *src, int bytes); +extern int sdio_write_bytes_noincr(struct sdio_func *func, unsigned int addr, + void *src, int bytes); + +extern int sdio_write_blocks(struct sdio_func *func, unsigned int addr, + void *src, int blocks); +extern int sdio_write_blocks_noincr(struct sdio_func *func, unsigned int addr, + void *src, int blocks); + #endif |