|
40 | 40 | * [23:16] Location of target Byte in EXT_CSD
|
41 | 41 | * [15:08] Value Byte
|
42 | 42 | * [07:03] Always 0
|
43 |
| - * [02:00] Command Set |
| 43 | + * [02:00] Command Set(Ignored if not used to change the command set) |
44 | 44 | */
|
45 |
| -#define MMCSD_CMD6_BUSWIDTH_RWSHIFT (16) |
46 |
| -# define MMCSD_CMD6_BUSWIDTH_RW ((uint32_t)0xb7 << MMCSD_CMD6_BUSWIDTH_RWSHIFT) /* R/W */ |
47 |
| - |
48 |
| -#define MMCSD_CMD6_WRITE_BYTE_SHIFT (24) |
49 |
| -# define MMCSD_CMD6_MODE_CMD_SET ((uint32_t)0x00 << MMCSD_CMD6_WRITE_BYTE_SHIFT) /* Change the command set */ |
50 |
| -# define MMCSD_CMD6_MODE_SET_BITS ((uint32_t)0x01 << MMCSD_CMD6_WRITE_BYTE_SHIFT) /* Set bits which are 1 in value */ |
51 |
| -# define MMCSD_CMD6_MODE_CLEAR_BITS ((uint32_t)0x02 << MMCSD_CMD6_WRITE_BYTE_SHIFT) /* Clear bits which are 1 in value */ |
52 |
| -# define MMCSD_CMD6_MODE_WRITE_BYTE ((uint32_t)0x03 << MMCSD_CMD6_WRITE_BYTE_SHIFT) /* Set target to value */ |
53 |
| - |
54 |
| -#define MMCSD_CMD6_BUS_WIDTH_SHIFT (8) |
55 |
| -# define MMCSD_CMD6_BUS_WIDTH_1 ((uint32_t)0x00 << MMCSD_CMD6_BUS_WIDTH_SHIFT) /* Card is in 1 bit mode */ |
56 |
| -# define MMCSD_CMD6_BUS_WIDTH_4 ((uint32_t)0x01 << MMCSD_CMD6_BUS_WIDTH_SHIFT) /* Card is in 4 bit mode */ |
57 |
| -# define MMCSD_CMD6_CSD_BUS_WIDTH_8 ((uint32_t)0x02 << MMCSD_CMD6_BUS_WIDTH_SHIFT) /* Card is in 8 bit mode */ |
58 |
| -# define MMCSD_CMD6_DDR_BUS_WIDTH_4 ((uint32_t)0x05 << MMCSD_CMD6_BUS_WIDTH_SHIFT) /* Card is in 4 bit DDR mode */ |
59 |
| -# define MMCSD_CMD6_DDR_BUS_WIDTH_8 ((uint32_t)0x06 << MMCSD_CMD6_BUS_WIDTH_SHIFT) /* Card is in 8 bit DDR mode */ |
| 45 | + |
| 46 | +#define MMC_CMD6_CMDSET_SHIFT (0) |
| 47 | +#define MMC_CMD6_VALUE_SHIFT (8) |
| 48 | +#define MMC_CMD6_INDEX_SHIFT (16) |
| 49 | +#define MMC_CMD6_MODE_SHIFT (24) |
| 50 | + |
| 51 | +#define MMC_CMD6_CMDSET(cmdset) ((uint32_t)(cmdset) << MMC_CMD6_CMDSET_SHIFT) |
| 52 | +#define MMC_CMD6_VALUE(value) ((uint32_t)(value) << MMC_CMD6_VALUE_SHIFT) |
| 53 | +#define MMC_CMD6_INDEX(index) ((uint32_t)(index) << MMC_CMD6_INDEX_SHIFT) |
| 54 | +#define MMC_CMD6_MODE(mode) ((uint32_t)(mode) << MMC_CMD6_MODE_SHIFT) |
| 55 | + |
| 56 | +#define MMC_CMD6_MODE_CMD_SET (0x00) /* Change the command set */ |
| 57 | +#define MMC_CMD6_MODE_SET_BITS (0x01) /* Set bits which are 1 in value */ |
| 58 | +#define MMC_CMD6_MODE_CLEAR_BITS (0x02) /* Clear bits which are 1 in value */ |
| 59 | +#define MMC_CMD6_MODE_WRITE_BYTE (0x03) /* Set target to value */ |
| 60 | + |
| 61 | +#define EXT_CSD_BUS_WIDTH 183 /* WO */ |
| 62 | + |
| 63 | +/* EXT_CSD_BUS_WIDTH */ |
| 64 | +#define EXT_CSD_BUS_WIDTH_1 (0x00) /* Card is in 1 bit mode */ |
| 65 | +#define EXT_CSD_BUS_WIDTH_4 (0x01) /* Card is in 4 bit mode */ |
| 66 | +#define EXT_CSD_BUS_WIDTH_8 (0x02) /* Card is in 8 bit mode */ |
| 67 | +#define EXT_CSD_DDR_BUS_WIDTH_4 (0x05) /* Card is in 4 bit DDR mode */ |
| 68 | +#define EXT_CSD_DDR_BUS_WIDTH_8 (0x06) /* Card is in 8 bit DDR mode */ |
| 69 | + |
| 70 | +#define MMC_CMD6_BUSWIDTH(width) (MMC_CMD6_VALUE(width) | \ |
| 71 | + MMC_CMD6_INDEX(EXT_CSD_BUS_WIDTH) | \ |
| 72 | + MMC_CMD6_MODE(MMC_CMD6_MODE_WRITE_BYTE)) |
60 | 73 |
|
61 | 74 | /* CMD8 Argument:
|
62 | 75 | * [31:12]: Reserved (shall be set to '0')
|
|
0 commit comments