• Adrian Hunter's avatar
    mmc: sdhci: Make signal voltage support explicit · 8cb851a4
    Adrian Hunter authored
    Signal voltage support is not a quirk, it is a capability. According to the
    SDHCI specification, support for 1.8V signaling is determined by the
    presence of one of the capability bits SDHCI_SUPPORT_SDR50,
    SDHCI_SUPPORT_SDR104, or SDHCI_SUPPORT_DDR50. This is complicated by also
    supporting eMMC which has 1.8V modes and 1.2V modes. It would be possible
    to use the transfer mode to determine signal voltage support, except for
    eMMC DDR52 mode which uses the same capability (MMC_CAP_1_8V_DDR) for 1.8V
    signaling and 3V signaling.
    
    In addition, the mmc core will fail over from one signaling voltage to the
    next (refer mmc_power_up()) which means SDHCI really needs to validate
    which voltages are actually supported.
    
    Introduce SDHCI flags for signal voltage support and set them based on the
    supported transfer modes. In general, drivers should prefer to set the
    supported transfer modes correctly rather than change the signal voltage
    capability, except in the case where 3V DDR52 is supported but 1.8V is
    not.
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    8cb851a4
sdhci.c 92.3 KB