[PATCH 0/4] mmc: sdhci-esdhc-imx: add 1-bit bus width support

ziniu.wang_1@nxp.com posted 4 patches 1 month, 2 weeks ago
There is a newer version of this series
drivers/mmc/core/host.c            | 19 ++++++++++++++-----
drivers/mmc/host/sdhci-esdhc-imx.c |  6 +-----
drivers/mmc/host/sdhci-pltfm.c     |  7 -------
3 files changed, 15 insertions(+), 17 deletions(-)
[PATCH 0/4] mmc: sdhci-esdhc-imx: add 1-bit bus width support
Posted by ziniu.wang_1@nxp.com 1 month, 2 weeks ago
From: Luke Wang <ziniu.wang_1@nxp.com>

This series adds 1-bit bus width support for sdhci-esdhc-imx driver.

Currently sdhci-esdhc-imx doesn't support 1-bit width because it
doesn't call sdhci_get_property() to parse "bus-width = <1>" and
set SDHCI_QUIRK_FORCE_1_BIT_DATA quirk.

After adding sdhci_get_property(), another issue is exposed:
mmc_select_hs200() returns 0 without switching when 1-bit bus is
used, causing mmc_select_timing() to skip mmc_select_hs(). This
leaves eMMC in legacy mode (26MHz) instead of High Speed (52MHz).

Fix by dropping incompatible UHS/DDR/HS200/HS400 caps in
mmc_validate_host_caps() for 1-bit width, and clean up duplicate
code now handled by common framework.

Luke Wang (4):
  mmc: core: fix timing selection for 1-bit bus width
  mmc: sdhci-esdhc-imx: add 1-bit bus width support
  mmc: sdhci-esdhc-imx: remove duplicate HS400 bus width validation
  mmc: sdhci-pltfm: remove duplicate DTS property parsing

 drivers/mmc/core/host.c            | 19 ++++++++++++++-----
 drivers/mmc/host/sdhci-esdhc-imx.c |  6 +-----
 drivers/mmc/host/sdhci-pltfm.c     |  7 -------
 3 files changed, 15 insertions(+), 17 deletions(-)

-- 
2.34.1
Re: [PATCH 0/4] mmc: sdhci-esdhc-imx: add 1-bit bus width support
Posted by Adrian Hunter 1 month, 2 weeks ago
On 02/03/2026 10:00, ziniu.wang_1@nxp.com wrote:
> From: Luke Wang <ziniu.wang_1@nxp.com>
> 
> This series adds 1-bit bus width support for sdhci-esdhc-imx driver.
> 
> Currently sdhci-esdhc-imx doesn't support 1-bit width because it
> doesn't call sdhci_get_property() to parse "bus-width = <1>" and
> set SDHCI_QUIRK_FORCE_1_BIT_DATA quirk.
> 
> After adding sdhci_get_property(), another issue is exposed:
> mmc_select_hs200() returns 0 without switching when 1-bit bus is
> used, causing mmc_select_timing() to skip mmc_select_hs(). This
> leaves eMMC in legacy mode (26MHz) instead of High Speed (52MHz).

How do you end up with incompatible caps?  If sdhci is adding
them, then maybe stop that instead of removing them later?

> 
> Fix by dropping incompatible UHS/DDR/HS200/HS400 caps in
> mmc_validate_host_caps() for 1-bit width, and clean up duplicate
> code now handled by common framework.
> 
> Luke Wang (4):
>   mmc: core: fix timing selection for 1-bit bus width
>   mmc: sdhci-esdhc-imx: add 1-bit bus width support
>   mmc: sdhci-esdhc-imx: remove duplicate HS400 bus width validation
>   mmc: sdhci-pltfm: remove duplicate DTS property parsing
> 
>  drivers/mmc/core/host.c            | 19 ++++++++++++++-----
>  drivers/mmc/host/sdhci-esdhc-imx.c |  6 +-----
>  drivers/mmc/host/sdhci-pltfm.c     |  7 -------
>  3 files changed, 15 insertions(+), 17 deletions(-)
>