mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
mmc: add HS400 support
Add HS400 support. Selecting HS400 needs first select HS200 according to spec, so use a dedicated function for HS400. Add HS400 related macros. Remove the restriction of only using the low 6 bits of EXT_CSD_CARD_TYPE, using all the 8 bits. Signed-off-by: Peng Fan <peng.fan@nxp.com> Cc: Jaehoon Chung <jh80.chung@samsung.com> Cc: Jean-Jacques Hiblot <jjhiblot@ti.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Kishon Vijay Abraham I <kishon@ti.com> Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Marek Vasut <marex@denx.de> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
@@ -64,6 +64,7 @@
|
||||
#define MMC_MODE_HS_52MHz MMC_CAP(MMC_HS_52)
|
||||
#define MMC_MODE_DDR_52MHz MMC_CAP(MMC_DDR_52)
|
||||
#define MMC_MODE_HS200 MMC_CAP(MMC_HS_200)
|
||||
#define MMC_MODE_HS400 MMC_CAP(MMC_HS_400)
|
||||
|
||||
#define MMC_MODE_8BIT BIT(30)
|
||||
#define MMC_MODE_4BIT BIT(29)
|
||||
@@ -248,6 +249,10 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx)
|
||||
/* SDR mode @1.2V I/O */
|
||||
#define EXT_CSD_CARD_TYPE_HS200 (EXT_CSD_CARD_TYPE_HS200_1_8V | \
|
||||
EXT_CSD_CARD_TYPE_HS200_1_2V)
|
||||
#define EXT_CSD_CARD_TYPE_HS400_1_8V BIT(6)
|
||||
#define EXT_CSD_CARD_TYPE_HS400_1_2V BIT(7)
|
||||
#define EXT_CSD_CARD_TYPE_HS400 (EXT_CSD_CARD_TYPE_HS400_1_8V | \
|
||||
EXT_CSD_CARD_TYPE_HS400_1_2V)
|
||||
|
||||
#define EXT_CSD_BUS_WIDTH_1 0 /* Card is in 1 bit mode */
|
||||
#define EXT_CSD_BUS_WIDTH_4 1 /* Card is in 4 bit mode */
|
||||
@@ -259,6 +264,7 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx)
|
||||
#define EXT_CSD_TIMING_LEGACY 0 /* no high speed */
|
||||
#define EXT_CSD_TIMING_HS 1 /* HS */
|
||||
#define EXT_CSD_TIMING_HS200 2 /* HS200 */
|
||||
#define EXT_CSD_TIMING_HS400 3 /* HS400 */
|
||||
|
||||
#define EXT_CSD_BOOT_ACK_ENABLE (1 << 6)
|
||||
#define EXT_CSD_BOOT_PARTITION_ENABLE (1 << 3)
|
||||
@@ -519,6 +525,7 @@ enum bus_mode {
|
||||
UHS_DDR50,
|
||||
UHS_SDR104,
|
||||
MMC_HS_200,
|
||||
MMC_HS_400,
|
||||
MMC_MODES_END
|
||||
};
|
||||
|
||||
@@ -532,6 +539,10 @@ static inline bool mmc_is_mode_ddr(enum bus_mode mode)
|
||||
#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT)
|
||||
else if (mode == UHS_DDR50)
|
||||
return true;
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
|
||||
else if (mode == MMC_HS_400)
|
||||
return true;
|
||||
#endif
|
||||
else
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user