1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #ifndef __COMMONLIB_STORAGE_MMC_H__
4 #define __COMMONLIB_STORAGE_MMC_H__
6 #include <commonlib/sd_mmc_ctrlr.h>
8 #define MMC_HS_TIMING 0x00000100
9 #define MMC_HS_52MHZ 0x2
10 #define MMC_HS_200MHZ 0x10
11 #define MMC_HS400 0x40
13 #define SECURE_ERASE 0x80000000
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)
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
24 #define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits in EXT_CSD byte
25 addressed by index, which are
27 #define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target byte to value */
29 #define R1_ILLEGAL_COMMAND (1 << 22)
30 #define R1_APP_CMD (1 << 5)
32 #define MMC_INIT_TIMEOUT_US (1000 * 1000)
33 #define MMC_INIT_TIMEOUT_US_MS 1000
35 int storage_block_setup_media(struct storage_media
*media
,
36 struct sd_mmc_ctrlr
*ctrlr
);
38 #endif /* __COMMONLIB_STORAGE_MMC_H__ */