📄 sdcard.h
字号:
/*
* extdrv/interface/spi_sd/sdcard.h for Linux .
*
* History:
* 2006-4-11 create this file
*/
#ifndef __SDCARD_H__
#define __SDCARD_H__
#define SD_WORKQUEUE_NAME "sd_workqueue_name"
#define KERNEL_SECTOR_SIZE 512
#define MAXNUM 1024
#define SSPDELAYW 50
#define SSPDELAYR 10
#define CONFIG_SDCARD_DEBUG
#ifdef CONFIG_SDCARD_DEBUG
#define DBG(x...) printk( x) /* KERN_DEBUG */
#else
#define DBG(x...) do { } while (0)
#endif
struct sd_device
{
unsigned long size;
spinlock_t lock;
#ifdef CONFIG_SSP_DMA
char * readbuf;
char * writebuf;
#else
char readbuf[MAXNUM*KERNEL_SECTOR_SIZE],writebuf[MAXNUM*KERNEL_SECTOR_SIZE];
#endif
unsigned int mapreadbufaddr,mapwritebufaddr;
unsigned int raddr,waddr;
unsigned int roffset,woffset;
unsigned int rblock_num,wblock_num;
unsigned int readlist[MAXNUM][2];
unsigned int readlist_offset;
struct gendisk *gd;
wait_queue_head_t wq;
wait_queue_head_t dma_wq;
unsigned int media_change;
unsigned int users;
unsigned int sd_error;
unsigned int sd_online;
int major_num;
};
#ifdef CONFIG_SSP_DMA
extern unsigned int sdcard_read(unsigned int addr,unsigned int off,unsigned int block_num);
#else
extern unsigned int sdcard_read(unsigned int addr,unsigned char *buf,unsigned int block_num);
#endif
#ifdef CONFIG_SSP_DMA
extern unsigned int sdcard_write(unsigned int addr,unsigned int off,unsigned int block_num);
#else
extern unsigned int sdcard_write(unsigned int addr,unsigned char *buf,unsigned int block_num);
#endif
extern unsigned int sdcard_init(void);
extern void sdcard_exit(void);
extern unsigned int sdcard_csd_read(void);
extern unsigned int sdcard_cid_read(void);
extern void sdcard_repower(void);
extern unsigned char sdcard_read_byte(void);
extern unsigned char sdcard_write_byte(unsigned char byte);
#ifdef CONFIG_SSP_DMA
extern int sd_dmac_ssp_init(unsigned int *readbuf,unsigned int *writebuf);;
extern void sd_dmac_ssp_exit(void);
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -