Re: [PATCH v2 09/11] mmc: sdhci: iproc: Add custom set_power() callback for bcm2711

From: Adrian Hunter
Date: Mon Mar 09 2020 - 03:29:53 EST


On 6/03/20 7:44 pm, Nicolas Saenz Julienne wrote:
> The controller needs a valid bus voltage in its power register
> regardless of whether an external regulator is taking care of the power
> supply.
>
> The sdhci core already provides a helper function for this,
> sdhci_set_power_and_bus_voltage(), so create a bcm2711 specific 'struct
> sdhci_ops' which makes use of it.
>
> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>

Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

> ---
> drivers/mmc/host/sdhci-iproc.c | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
> index f4f5f0a70cda..225603148d7d 100644
> --- a/drivers/mmc/host/sdhci-iproc.c
> +++ b/drivers/mmc/host/sdhci-iproc.c
> @@ -261,9 +261,24 @@ static const struct sdhci_iproc_data bcm2835_data = {
> .mmc_caps = 0x00000000,
> };
>
> +static const struct sdhci_ops sdhci_iproc_bcm2711_ops = {
> + .read_l = sdhci_iproc_readl,
> + .read_w = sdhci_iproc_readw,
> + .read_b = sdhci_iproc_readb,
> + .write_l = sdhci_iproc_writel,
> + .write_w = sdhci_iproc_writew,
> + .write_b = sdhci_iproc_writeb,
> + .set_clock = sdhci_set_clock,
> + .set_power = sdhci_set_power_and_bus_voltage,
> + .get_max_clock = sdhci_iproc_get_max_clock,
> + .set_bus_width = sdhci_set_bus_width,
> + .reset = sdhci_reset,
> + .set_uhs_signaling = sdhci_set_uhs_signaling,
> +};
> +
> static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = {
> .quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
> - .ops = &sdhci_iproc_32only_ops,
> + .ops = &sdhci_iproc_bcm2711_ops,
> };
>
> static const struct sdhci_iproc_data bcm2711_data = {
>