[PATCH v2 00/30] mci: imx-esdhc: add HS200 support

Ahmad Fatoum a.fatoum at pengutronix.de
Wed May 7 01:21:39 PDT 2025


On my i.MX8MP board this increases sequential read nearly from
72 MiB/s to 131 MiB/s.

I also got HS400ES running, but it gives me occasional CRC errors, so
this series only concerns itself with HS200 for now.

v1 -> v2:
  - use correct speed comparison in commit message. v1 had KASAN
  and DMA_API_DEBUG enabled..
  - define and use new sdhci_compute_timeout helper (Sascha)
  - remove superfluous comment about clearing bits (Sascha)
  - always populate delay settings in boarddata (Sascha)
  - reduce number of Linux SDHCI quirks mentioned in commit
    message to 51 (Sascha)

Ahmad Fatoum (30):
  mci: sdhci: fix SDHCI_TRNS_AUTO_CMD12 definition
  mci: move most recent I/O settings into mci_host::ios
  mci: use struct mci_host::ios inside mci_set_ios
  mci: tuning: fix fallback to DDR52
  mci: sdhci: unmap DMA buffers on timeout
  mci: add MMC_CAP_UHS constants
  mci: rename MMC_CAP_MMC_x_yV_DDR to MMC_CAP_x_yV_DDR as in Linux
  mci: compare host and card caps for supported speeds
  mci: print HS200 capabilities in devinfo
  mci: respect no-1-8-v OF property
  mci: sdhci: add support for struct mci_data::timeout_ns
  mci: imx-esdhc: use unsigned types where appropriate
  mci: imx-esdhc: implement esdhc_poll using sdhci_read32_poll_timeout
  mci: imx-esdhc: drop one extra read of SDHCI_INT_STATUS
  mci: sdhci: add cmd parameter to sdhci_transfer_*
  mci: arasan: introduce mmc_op_tuning helper
  mci: imx-esdhc: flesh out register description
  mci: imx-esdhc: add support for delay/tuning properties in DT
  mci: add mci_set_timing helper
  mci: imx-esdhc: add support for setting drive strength
  mci: sdhci: move SDHCI_MAKE_BLKSZ definition to header
  mci: imx-esdhc: select different pinctrl state depending on frequency
  mci: core: retry MMC_CMD_SET_BLOCKLEN up to 4 times
  mci: imx-esdhc: don't reconfigure clock unless required
  mci: sdhci: fix sdhci_transfer_data MMC_SEND_TUNING compatibility
  mci: core: implement mmc_send_tuning
  mci: imx-esdhc: set burst_length_enable
  mci: imx-esdhc: fixup quirks in standard SDHCI registers
  mci: sdhci: support Linux SDHCI_QUIRK2_BROKEN_HS200 flag
  mci: imx-esdhc: implement HS200 support

 drivers/mci/am654-sdhci.c            |  15 +-
 drivers/mci/arasan-sdhci.c           |  26 ++-
 drivers/mci/atmel-sdhci-common.c     |   2 +-
 drivers/mci/atmel_mci.c              |   4 +-
 drivers/mci/dwcmshc-sdhci.c          |   8 +-
 drivers/mci/imx-esdhc-common.c       | 334 +++++++++++++++++++++-----
 drivers/mci/imx-esdhc.c              | 335 +++++++++++++++++++++++++--
 drivers/mci/imx-esdhc.h              |  96 +++++++-
 drivers/mci/mci-bcm2835.c            |   2 +-
 drivers/mci/mci-core.c               | 331 +++++++++++++++++++-------
 drivers/mci/mmci.c                   |  18 +-
 drivers/mci/rockchip-dwcmshc-sdhci.c |  11 +-
 drivers/mci/sdhci.c                  | 151 +++++++++---
 drivers/mci/sdhci.h                  |  49 +++-
 drivers/mci/stm32_sdmmc2.c           |  16 +-
 include/mci.h                        |  47 +++-
 16 files changed, 1187 insertions(+), 258 deletions(-)

-- 
2.39.5




More information about the barebox mailing list