⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd_datatype.h

📁 linux 2.6下的sd卡驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
    apMCI_DATA_STREAMING =0x01        /*Data sent without CRC checking (NOT RECOMMENDED)*/} apMCI_eDataBlocking;/* * Description: * Bit offsets and masks for Data registers */#define bsMCI_DATA_LENGTH      ( (unsigned long) 0)#define bwMCI_DATA_LENGTH      ( (unsigned long) 16)#define bsMCI_DATA_ENABLE      ( (unsigned long) 0)#define bwMCI_DATA_ENABLE      ( (unsigned long) 1)#define bsMCI_DATA_DIRECTION   ( (unsigned long) 1)#define bwMCI_DATA_DIRECTION   ( (unsigned long) 1)#define bsMCI_DATA_MODE        ( (unsigned long) 2)#define bwMCI_DATA_MODE        ( (unsigned long) 1)#define bsMCI_DATA_DMA_ENABLE  ( (unsigned long) 3)#define bwMCI_DATA_DMA_ENABLE  ( (unsigned long) 1)#define bsMCI_DATA_BLOCKSIZE   ( (unsigned long) 4)#define bwMCI_DATA_BLOCKSIZE   ( (unsigned long) 4)#define MCI_DATA_WRITE         ( (unsigned long) 0)#define MCI_FIFO_UWORDS        ( (unsigned long) 16)#define MCI_FIFO_BYTES         ( MCI_FIFO_UWORDS * 4 )/* * Description: * Bit offsets and masks in CID register */#define bsMCI_CID_MID          120         /*Manufacturer ID*/#define bwMCI_CID_MID            8         /*Manufacturer ID*/#define bsMCI_CID_OID          104         /*Application ID*/#define bwMCI_CID_OID           16         /*Application ID*/#define bsMCI_SD_CID_PNM_H      96         /*Product Name upper one ASCII chars*/#define bwMCI_SD_CID_PNM_H       8         /*Product Name*/#define bsMCI_SD_CID_PNM_L      64         /*Product Name lower four ASCII chars*/#define bwMCI_SD_CID_PNM_L      32         /*Product Name*/#define bsMCI_SD_CID_PRV        56         /*Product Revision*/#define bwMCI_SD_CID_PRV         8         /*Product Revision*/#define bsMCI_SD_CID_PSN        24         /*Product Serial Number*/#define bwMCI_SD_CID_PSN        32         /*Product Serial Number*/#define bsMCI_SD_CID_MDT         8         /*Manufacturing Date*/#define bwMCI_SD_CID_MDT        12         /*Manufacturing Date*/#define bsMCI_CID_PNM_H         88         /*Product Name upper two ASCII chars*/#define bwMCI_CID_PNM_H         16         /*Product Name*/#define bsMCI_CID_PNM_L         56         /*Product Name lower four ASCII chars*/#define bwMCI_CID_PNM_L         32         /*Product Name*/#define bsMCI_CID_PRV           48         /*Product Revision*/#define bwMCI_CID_PRV            8         /*Product Revision*/#define bsMCI_CID_PSN           16         /*Product Serial Number*/#define bwMCI_CID_PSN           32         /*Product Serial Number*/#define bsMCI_CID_MDT            8         /*Manufacturing Date*/#define bwMCI_CID_MDT            8         /*Manufacturing Date*//* * Description: * Options for command sending */#define MCI_CMDOPT_PENDING     1      /*waits for a CmdPend signal before sending*/#define MCI_CMDOPT_IMMEDIATE   2     /*enables the command state engine*/#define MCI_CMDOPT_IGNORE_CRC  4     /*ignores CRC errors as response will not be used*/#define MCI_CMDOPT_IGNORE_TIMEOUT  8 /*ignores timeout errors*//* * Description: * Block size for all App Commands */#define MCI_APPCMD_BLOCK_SIZE 512/* * Description: * Generic constant for accessing all bits in a 32 bit word */#define apBITS_ALL 0xFFFFFFFF/* * Description: * Build a mask for the specified bits * * Implementation: * __bws - a width/shift pair. *  * Returns  a mask with the bits to be addressed set and all others cleared *  */#define apBIT_MASK(__bws) ((unsigned long)(((bw ## __bws)==32)?0xFFFFFFFF:((1U << (bw ## __bws)) - 1)) << (bs ## __bws))/* * Description: * Clear the specified bits * * Implementation: * __datum - the word of data to be modified * __bws - a width/shift pair. *  */#define apBIT_CLEAR(__datum, __bws) ((__datum) = ((__datum) & ~((unsigned long) apBIT_MASK(__bws))))/* * Description: * Access the specified bits from a word of data as an integer value * * Implementation: * __datum - the word of data to be accessed * __bws - a width/shift pair. *  * Returns  The relevant bits masked from the data word shifted to bit zero *  */#define apBIT_GET(__datum, __bws) ((unsigned long)(((__datum) & ((unsigned long) apBIT_MASK(__bws))) >> (bs ## __bws)))/* * Description: * Place the specified value into the specified bits of a word of data * * Implementation: * __datum - the word of data to be accessed * __bws - a width/shift pair. * __val - the data value to be shifted into the specified bits. *  */#define apBIT_SET(__datum, __bws, __val) ((__datum) = ((unsigned long) (__datum) & (unsigned long)~(apBIT_MASK(__bws))) | \                                        ((unsigned long) ((unsigned long)(__val) << (unsigned long)(bs ## __bws)) & (apBIT_MASK(__bws))))/* * Description: * Bit offsets and masks in CID register */#define bsMCI_CID_MID          120         /*Manufacturer ID*/#define bwMCI_CID_MID            8         /*Manufacturer ID*/#define bsMCI_CID_OID          104         /*Application ID*/#define bwMCI_CID_OID           16         /*Application ID*/#define bsMCI_SD_CID_PNM_H      96         /*Product Name upper one ASCII chars*/#define bwMCI_SD_CID_PNM_H       8         /*Product Name*/#define bsMCI_SD_CID_PNM_L      64         /*Product Name lower four ASCII chars*/#define bwMCI_SD_CID_PNM_L      32         /*Product Name*/#define bsMCI_SD_CID_PRV        56         /*Product Revision*/#define bwMCI_SD_CID_PRV         8         /*Product Revision*/#define bsMCI_SD_CID_PSN        24         /*Product Serial Number*/#define bwMCI_SD_CID_PSN        32         /*Product Serial Number*/#define bsMCI_SD_CID_MDT         8         /*Manufacturing Date*/#define bwMCI_SD_CID_MDT        12         /*Manufacturing Date*/#define bsMCI_CID_PNM_H         88         /*Product Name upper two ASCII chars*/#define bwMCI_CID_PNM_H         16         /*Product Name*/#define bsMCI_CID_PNM_L         56         /*Product Name lower four ASCII chars*/#define bwMCI_CID_PNM_L         32         /*Product Name*/#define bsMCI_CID_PRV           48         /*Product Revision*/#define bwMCI_CID_PRV            8         /*Product Revision*/#define bsMCI_CID_PSN           16         /*Product Serial Number*/#define bwMCI_CID_PSN           32         /*Product Serial Number*/#define bsMCI_CID_MDT            8         /*Manufacturing Date*/#define bwMCI_CID_MDT            8         /*Manufacturing Date*//* * Description: * Bit offsets and masks in Card Specific Data  */#define bsMCI_CSD_STRUCTURE        126      /*CSD structure*/       #define bwMCI_CSD_STRUCTURE          2      /*CSD structure*/#define bsMCI_CSD_SPEC_VERS        122      /*System specification version*/       #define bwMCI_CSD_SPEC_VERS          4      /*System specification version*/#define bsMCI_CSD_TAACHI           115      /*asynch data access time*/       #define bwMCI_CSD_TAACHI             4      /*asynch data access time*/#define bsMCI_CSD_TAACLO           112      /*asynch data access time*/       #define bwMCI_CSD_TAACLO             3      /*asynch data access time*/#define bsMCI_CSD_NSAC             104      /*clocked data access time*/       #define bwMCI_CSD_NSAC               8      /*clocked data access time*/   #define bsMCI_CSD_MAXTRANHI         99      /*maximum transfer speed (high bits)*/       #define bwMCI_CSD_MAXTRANHI          4      /*maximum transfer speed (high bits)*/#define bsMCI_CSD_MAXTRANLO         96      /*maximum transfer speed (low bits)*/       #define bwMCI_CSD_MAXTRANLO          3      /*maximum transfer speed (low bits)*/#define bsMCI_CSD_CCC               84      /*card command classes supported*/    #define bwMCI_CSD_CCC               12      /*card command classes supported*/#define bsMCI_CSD_RDBL              80      /*read block length*/       #define bwMCI_CSD_RDBL               4      /*read block length*/#define bsMCI_CSD_RDBLP             79      /*read block partial allowed*/       #define bwMCI_CSD_RDBLP              1      /*read block partial allowed*/#define bsMCI_CSD_WTBLMIS           78      /*read block misalign allowed*/       #define bwMCI_CSD_WTBLMIS            1      /*read block misalign allowed*/#define bsMCI_CSD_RDBLMIS           77      /*read block misalign allowed*/       #define bwMCI_CSD_RDBLMIS            1      /*read block misalign allowed*/#define bsMCI_CSD_DSR_IMP           76      /*DSR implimented*/#define bwMCI_CSD_DSR_IMP            1      /*DSR implimented*/#define bsMCI_CSD_CSIZE             62      /*card size*/       #define bwMCI_CSD_CSIZE             12      /*card size*/  #define bsMCI_CSD_CMULT             47      /*card multiplier*/       #define bwMCI_CSD_CMULT              3      /*card multiplier*/  #define bsMCI_CSD_ERASE_SECT        42      /*size of erase sector*/    #define bwMCI_CSD_ERASE_SECT         5      /*size of erase sector*/    #define bsMCI_CSD_ERASE_SECT_SD     39      /*size of erase sector for SD*/    #define bwMCI_CSD_ERASE_SECT_SD      7      /*size of erase sector for SD*/    #define bsMCI_CSD_ERASE_GRP         37      /*size of erase group*/    #define bwMCI_CSD_ERASE_GRP          5      /*size of erase group*/    #define bsMCI_CSD_WP_GRP_SIZE       32      /*write protect group size*/    #define bwMCI_CSD_WP_GRP_SIZE        5      /*write protect group size*/    #define bsMCI_CSD_WP_GRP_ENABLE     31      /*write protect group enable*/    #define bwMCI_CSD_WP_GRP_ENABLE      1      /*write protect group enable*/    #define bsMCI_CSD_ERASE_GRP_SIZE11  42      /* CSD v1.1 */#define bwMCI_CSD_ERASE_GRP_SIZE11   5#define bsMCI_CSD_ERASE_GRP_MULT11  37 #define bwMCI_CSD_ERASE_GRP_MULT11   5#define bsMCI_CSD_WP_GRP_SIZE11     32#define bwMCI_CSD_WP_GRP_SIZE11      5#define bsMCI_CSD_R2W               26      /*Read/Write factor*/       #define bwMCI_CSD_R2W                3      /*Read/Write factor*/   #define bsMCI_CSD_WTBL              22      /*write block length*/       #define bwMCI_CSD_WTBL               4      /*write block length*/#define bsMCI_CSD_WTBLP             21      /*write block partial allowed*/       #define bwMCI_CSD_WTBLP              1      /*write block partial allowed*/#define bsMCI_CSD_FILE_FORMAT_GRP   15      /*file format group*/    #define bwMCI_CSD_FILE_FORMAT_GRP    1      /*file format group*/#define bsMCI_CSD_COPY              14      /*copy flag (OTP)*/    #define bwMCI_CSD_COPY               1      /*copy flag (OTP)*/    #define bsMCI_CSD_PERM_WP           13      /*permanent write protect*/    #define bwMCI_CSD_PERM_WP            1      /*permanent write protect*/    #define bsMCI_CSD_TEMP_WP           12      /*temporary write protect*/    #define bwMCI_CSD_TEMP_WP            1      /*temporary write protect*/    #define bsMCI_CSD_FILE_FORMAT       10      /*file format*/    #define bwMCI_CSD_FILE_FORMAT        2      /*file format*/#define bsMCI_CSD_CAN_ERASE          5      /*card supports erase commands (bit within MCI_CCC)*/    #define bwMCI_CSD_CAN_ERASE          1      /*card supports erase commands*/#define bsMCI_CSD_ERASE_SINGLE_BLOCK_ENABLE 46#define bwMCI_CSD_ERASE_SINGLE_BLOCK_ENABLE 1#define bsMCI_CSD_C_SIZE_MULT 47#define bwMCI_CSD_C_SIZE_MULT 2#define bsMCI_CSD_VDD_W_CURR_MAX 50#define bwMCI_CSD_VDD_W_CURR_MAX 3#define bsMCI_CSD_VDD_W_CURR_MIN 53#define bwMCI_CSD_VDD_W_CURR_MIN 3#define bsMCI_CSD_VDD_R_CURR_MAX 56#define bwMCI_CSD_VDD_R_CURR_MAX 3#define bsMCI_CSD_VDD_R_CURR_MIN 59#define bwMCI_CSD_VDD_R_CURR_MIN 3#define bsMCI_CSD_CRC 1#define bwMCI_CSD_CRC 7/* * Description: * Decoded fields for card-specific data */typedef struct apMCI_xDecodedCSD{    unsigned char csd_structure;                          /* version number of CSD structure (should always be 1) */    unsigned long data_read_access_time_1_tns            /* first part of read access time, in tenths-of-nanoseconds (e.g. 500 means 50ns) */;    unsigned long data_read_access_time_2_in_clk_cycles; /* second part of read access time, in card bus clock cycles */    unsigned long max_data_transfer_rate_khz;            /* maximum frequency of card's data line(s) in kHz */    unsigned long card_command_classes;                  /* bit pattern of the command classes that this card supports */    unsigned long max_read_data_block_length;            /* in bytes */    BOOL partial_blocks_for_read_allowed;    BOOL write_block_misalignment;    BOOL read_block_misalignment;    BOOL dsr_implemented;    unsigned long device_size;                           /* not very meaningful on its own... */    unsigned char max_read_current_min;                   /* encoded as per Physical Layer Spec */    unsigned char max_read_current_max;                   /* encoded as per Physical Layer Spec */    unsigned char max_write_current_min;                  /* encoded as per Physical Layer Spec */    unsigned char max_write_current_max;                  /* encoded as per Physical Layer Spec */    unsigned long device_size_multiplier;                /* not very meaningful on its own... */    BOOL erase_single_block_enable;    unsigned long erase_sector_size;                     /* in blocks (of max_write_data_block_length) */    unsigned long write_protect_group_size;              /* in erase sectors */    BOOL write_protect_group_enable;    unsigned long write_speed_factor;                    /* how many times slower is write, compared to read? */    unsigned long max_write_data_block_length;           /* in bytes */    BOOL partial_blocks_for_write_allowed;    unsigned char file_format_group;                      /* encoded as per Physical Layer Spec */    BOOL copy_flag;    BOOL permanent_write_protection;    BOOL temporary_write_protection;    unsigned char file_format;                            /* encoded as per Physical Layer Spec */    unsigned char crc;                                    /* not checked */    /* Calculated field */    unsigned long CardSize;                                /*card size in bytes*/} apMCI_sDecodedCSD;/* * Description: * Decoded fields for card identification data */typedef struct apMCI_xDecodedCID{    unsigned long MID;                /*Manufacturer ID*/    unsigned long OID;                /*Application ID*/    unsigned char PNM[7];             /*Product Name*/    unsigned long PRV;                /*Product Revision*/    unsigned long PSN;                /*Product serial number*/    unsigned long MDT;                /*Product manufacturing date*/ }  apMCI_sDecodedCID;#define bsMCI_CLOCK_CLKDIV     ( (unsigned long) 0)#define bwMCI_CLOCK_CLKDIV     ( (unsigned long) 8)#define bsMCI_CLOCK_MODE       ( (unsigned long) 8)#define bwMCI_CLOCK_MODE       ( (unsigned long) 2)#define bsMCI_CLOCK_PWRSAVE	   ( (unsigned long) 9)#define bwMCI_CLOCK_PWRSAVE	   ( (unsigned long) 1)	#define bsMCI_CLOCK_BYPASS     ( (unsigned long) 10)#define bwMCI_CLOCK_BYPASS     ( (unsigned long) 1)#define bsMCI_CLOCK_WIDE       ( (unsigned long) 11)#define bwMCI_CLOCK_WIDE       ( (unsigned long) 1)// In test mode, we get these data#define MCI_CLOCK_DIV_FASTEST  7            /*fastest speed allowed (ref clock /7)*/#define MCI_CLOCK_DIV_SLOWEST  511          /*slowest speed allowed (ref clock /511)*///#pragma pack()#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -