[PATCH 01/10] mci: sdhci: define VDD_180 and shrink UHS_MASK to bits 0..2
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon May 18 01:58:58 PDT 2026
On 5/11/26 2:07 PM, Sascha Hauer wrote:
> Per SDHCI 3.0+, HOST_CONTROL2's UHS Mode Select is bits 0..2 (3 bits)
> and bit 3 is the 1.8 V Signaling Enable. The current SDHCI_CTRL_UHS_MASK
> of GENMASK(3, 0) is one bit too wide and clears 1.8 V signaling every
> time sdhci_set_uhs_signaling() runs.
>
> Shrink the mask to GENMASK(2, 0) and add SDHCI_CTRL_VDD_180 = BIT(3) so
> controllers that need to drive 1.8 V on I/O for HS200/HS400/UHS modes
> can OR the bit in without it being clobbered on the next set_clock().
>
> No functional change for controllers where VDD_180 was unused (most
> in-tree drivers do not touch it; voltage switching there is either
> fixed by board wiring or handled by an external regulator).
>
> Assisted-by: Claude Opus 4.7 <noreply at anthropic.com>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
Reviewed-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> drivers/mci/imx-esdhc-common.c | 2 --
> drivers/mci/sdhci.h | 3 ++-
> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mci/imx-esdhc-common.c b/drivers/mci/imx-esdhc-common.c
> index 050621d7fb..eb6a71915f 100644
> --- a/drivers/mci/imx-esdhc-common.c
> +++ b/drivers/mci/imx-esdhc-common.c
> @@ -12,8 +12,6 @@
>
> #define ESDHC_CTRL_D3CD 0x08
>
> -#define SDHCI_CTRL_VDD_180 0x0008
> -
> #define ESDHC_MIX_CTRL 0x48
> #define ESDHC_MIX_CTRL_DDREN (1 << 3)
> #define ESDHC_MIX_CTRL_AC23EN (1 << 7)
> diff --git a/drivers/mci/sdhci.h b/drivers/mci/sdhci.h
> index 8d21febd7a..a04eb5b7ed 100644
> --- a/drivers/mci/sdhci.h
> +++ b/drivers/mci/sdhci.h
> @@ -132,13 +132,14 @@
> #define SDHCI_SIGNAL_ENABLE 0x38
> #define SDHCI_ACMD12_ERR__HOST_CONTROL2 0x3C
> #define SDHCI_HOST_CONTROL2 0x3E
> -#define SDHCI_CTRL_UHS_MASK GENMASK(3, 0)
> +#define SDHCI_CTRL_UHS_MASK GENMASK(2, 0)
> #define SDHCI_CTRL_UHS_SDR12 0x0
> #define SDHCI_CTRL_UHS_SDR25 0x1
> #define SDHCI_CTRL_UHS_SDR50 0x2
> #define SDHCI_CTRL_UHS_SDR104 0x3
> #define SDHCI_CTRL_UHS_DDR50 0x4
> #define SDHCI_CTRL_HS400 0x5 /* Non-standard */
> +#define SDHCI_CTRL_VDD_180 BIT(3)
> #define SDHCI_CTRL_DRV_TYPE_MASK GENMASK(5, 4)
> #define SDHCI_CTRL_DRV_TYPE_B 0x0000
> #define SDHCI_CTRL_DRV_TYPE_A 0x0010
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list