1 #ifndef UAPI_MMC_CORE_H 2 #define UAPI_MMC_CORE_H 3 4 #define MMC_RSP_PRESENT (1 << 0) 5 #define MMC_RSP_136 (1 << 1) /* 136 bit response */ 6 #define MMC_RSP_CRC (1 << 2) /* expect valid crc */ 7 #define MMC_RSP_BUSY (1 << 3) /* card may send busy */ 8 #define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */ 9 10 #define MMC_CMD_MASK (3 << 5) /* non-SPI command type */ 11 #define MMC_CMD_AC (0 << 5) 12 #define MMC_CMD_ADTC (1 << 5) 13 #define MMC_CMD_BC (2 << 5) 14 #define MMC_CMD_BCR (3 << 5) 15 16 #define MMC_RSP_SPI_S1 (1 << 7) /* one status byte */ 17 #define MMC_RSP_SPI_S2 (1 << 8) /* second byte */ 18 #define MMC_RSP_SPI_B4 (1 << 9) /* four data bytes */ 19 #define MMC_RSP_SPI_BUSY (1 << 10) /* card may send busy */ 20 21 /* 22 * These are the native response types, and correspond to valid bit 23 * patterns of the above flags. One additional valid pattern 24 * is all zeros, which means we don't expect a response. 25 */ 26 #define MMC_RSP_NONE (0) 27 #define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) 28 #define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) 29 #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) 30 #define MMC_RSP_R3 (MMC_RSP_PRESENT) 31 #define MMC_RSP_R4 (MMC_RSP_PRESENT) 32 #define MMC_RSP_R5 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) 33 #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) 34 #define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) 35 36 #endif /* UAPI_MMC_CORE_H */ 37