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 = { >