| /* |
| * Copyright (C) 2008 Analog Device Inc. |
| * |
| * See file CREDITS for list of people who contributed to this |
| * project. |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License as |
| * published by the Free Software Foundation; either version 2 of |
| * the License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
| * MA 02111-1307 USA |
| */ |
| #ifndef __BLACKFIN_SDH_H__ |
| #define __BLACKFIN_SDH_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) |
| #define ILLEGAL_COMMAND (1 << 22) |
| #define APP_CMD (1 << 5) |
| |
| #endif |