| #ifndef UAPI_MMC_CORE_H |
| #define UAPI_MMC_CORE_H |
| |
| #define MMC_RSP_PRESENT (1 << 0) |
| #define MMC_RSP_136 (1 << 1) /* 136 bit response */ |
| #define MMC_RSP_CRC (1 << 2) /* expect valid crc */ |
| #define MMC_RSP_BUSY (1 << 3) /* card may send busy */ |
| #define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */ |
| |
| #define MMC_CMD_MASK (3 << 5) /* non-SPI command type */ |
| #define MMC_CMD_AC (0 << 5) |
| #define MMC_CMD_ADTC (1 << 5) |
| #define MMC_CMD_BC (2 << 5) |
| #define MMC_CMD_BCR (3 << 5) |
| |
| #define MMC_RSP_SPI_S1 (1 << 7) /* one status byte */ |
| #define MMC_RSP_SPI_S2 (1 << 8) /* second byte */ |
| #define MMC_RSP_SPI_B4 (1 << 9) /* four data bytes */ |
| #define MMC_RSP_SPI_BUSY (1 << 10) /* card may send busy */ |
| |
| /* |
| * These are the native response types, and correspond to valid bit |
| * patterns of the above flags. One additional valid pattern |
| * is all zeros, which means we don't expect a response. |
| */ |
| #define MMC_RSP_NONE (0) |
| #define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
| #define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|\ |
| MMC_RSP_BUSY) |
| #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) |
| #define MMC_RSP_R3 (MMC_RSP_PRESENT) |
| #define MMC_RSP_R4 (MMC_RSP_PRESENT) |
| #define MMC_RSP_R5 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
| #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
| #define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
| |
| #endif /* UAPI_MMC_CORE_H */ |