Patrick Georgi | ac95903 | 2020-05-05 22:49:26 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
Lee Leahy | eef40eb | 2017-03-23 10:54:57 -0700 | [diff] [blame] | 2 | |
Lee Leahy | 48dbc66 | 2017-05-08 16:56:03 -0700 | [diff] [blame] | 3 | #ifndef __COMMONLIB_STORAGE_MMC_H__ |
| 4 | #define __COMMONLIB_STORAGE_MMC_H__ |
Lee Leahy | eef40eb | 2017-03-23 10:54:57 -0700 | [diff] [blame] | 5 | |
Lee Leahy | 48dbc66 | 2017-05-08 16:56:03 -0700 | [diff] [blame] | 6 | #include <commonlib/sd_mmc_ctrlr.h> |
Lee Leahy | eef40eb | 2017-03-23 10:54:57 -0700 | [diff] [blame] | 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 | |
Lee Leahy | 48dbc66 | 2017-05-08 16:56:03 -0700 | [diff] [blame] | 38 | #endif /* __COMMONLIB_STORAGE_MMC_H__ */ |