1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3 #ifndef __COMMONLIB_STORAGE_MMC_H__ 4 #define __COMMONLIB_STORAGE_MMC_H__ 5 6 #include <commonlib/sd_mmc_ctrlr.h> 7 8 #define MMC_HS_TIMING 0x00000100 9 #define MMC_HS_52MHZ 0x2 10 #define MMC_HS_200MHZ 0x10 11 #define MMC_HS400 0x40 12 13 #define SECURE_ERASE 0x80000000 14 15 #define MMC_STATUS_MASK (~0x0206BF7F) 16 #define MMC_STATUS_RDY_FOR_DATA (1 << 8) 17 #define MMC_STATUS_CURR_STATE (0xf << 9) 18 #define MMC_STATUS_ERROR (1 << 19) 19 20 #define MMC_SWITCH_MODE_CMD_SET 0x00 /* Change the command set */ 21 #define MMC_SWITCH_MODE_SET_BITS 0x01 /* Set bits in EXT_CSD byte 22 addressed by index which are 23 1 in value field */ 24 #define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits in EXT_CSD byte 25 addressed by index, which are 26 1 in value field */ 27 #define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target byte to value */ 28 29 #define R1_ILLEGAL_COMMAND (1 << 22) 30 #define R1_APP_CMD (1 << 5) 31 32 #define MMC_INIT_TIMEOUT_US (1000 * 1000) 33 #define MMC_INIT_TIMEOUT_US_MS 1000 34 35 int storage_block_setup_media(struct storage_media *media, 36 struct sd_mmc_ctrlr *ctrlr); 37 38 #endif /* __COMMONLIB_STORAGE_MMC_H__ */ 39