This series adds support for HS200 mode to mci-core and sdhci. As the host driver also needs to handle clock setup, pin control and host specific tuning, this series only adds HS200 support to the Arasan SDHCI driver. Tested on: ZynqMP Compile tested: for ZynqMP with/without CONFIG_MCI_TUNING Signed-off-by: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx> --- Changes in v4: - add a fix for arasan dma support patch - Link to v3: https://lore.barebox.org/20240315-v2024-02-0-topic-arasan-hs200-support-v3-0-df268c2f4907@xxxxxxxxxxxxxx Changes in v3: - rebased onto v2024.03.0 - cherry-picked and rebased onto b80c0e1ec64c "mci: arasan: add dma support" - Link to v2: https://lore.barebox.org/20240314-v2024-02-0-topic-arasan-hs200-support-v2-0-0386c27fe653@xxxxxxxxxxxxxx Changes in v2: - added Reviewed-bys - small style fixes - return host->actual_clock in arasan_zynqmp_sampleclk_recalc_rate - return host->actual_clock in arasan_zynqmp_sdcardeclk_recalc_rate - move DT property parsing into IS_ENABLED - port mci_switch_status from linux - remove the #ifdef CONFIG_MCI_TUNING; functions get called in IS_ENABLED context - mci_mmc_select_hs_ddr: set max_dtr to mci->tran_speed; matches the calculation linux does here - move platform_execute_tuning from mci_host -> sdhci - port sdhci_reset_for_reason from linux - Link to v1: https://lore.barebox.org/20240308-v2024-02-0-topic-arasan-hs200-support-v1-0-6d50c90485f3@xxxxxxxxxxxxxx --- Steffen Trumtrar (15): mci: arasan: fix dma support ARM: zynqmp: add sd_dll_reset call zynqmp: firmware: add functions to set tap delay mci: arasan: implement 25MHz quirk for zynqmp include: mci: sync mci_timing with linux mci: arasan: read clk phases from DT mci: core: save the set clock as actual_clock mci: arasan: register sdcard/sampleclk include: mci: add more EXT_CSD_CARD_TYPE_* mci: core: parse more host capabilities from DT mci: mci-core: add HS200 support mci: mci-core: replace value with define mci: sdhci: add tuning support mci: arasan-sdhci: add HS200 tuning support on ZynqMP mci: sdhci: replace sdhci_wait_idle arch/arm/mach-zynqmp/firmware-zynqmp.c | 59 ++++ drivers/mci/Kconfig | 7 + drivers/mci/am654-sdhci.c | 2 +- drivers/mci/arasan-sdhci.c | 529 ++++++++++++++++++++++++++++++++- drivers/mci/atmel-sdhci-common.c | 4 +- drivers/mci/dove-sdhci.c | 2 +- drivers/mci/mci-bcm2835.c | 2 +- drivers/mci/mci-core.c | 297 ++++++++++++++++-- drivers/mci/rockchip-dwcmshc-sdhci.c | 2 +- drivers/mci/sdhci.c | 304 ++++++++++++++++++- drivers/mci/sdhci.h | 30 +- include/mach/zynqmp/firmware-zynqmp.h | 23 ++ include/mci.h | 104 ++++++- 13 files changed, 1321 insertions(+), 44 deletions(-) --- base-commit: ec014c92f8ec31da8a062f6083a0d10dbcfe97ce change-id: 20240308-v2024-02-0-topic-arasan-hs200-support-1bc3fb6b49aa Best regards, -- Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx>