On Wed, 22 Dec 2021 at 04:07, Michael Wu <michael@xxxxxxxxxxxxxxxxx> wrote: > > Because some platform has no regulator, only use discrete devices > to supply power,For this situation, to use sd/mmc card, we add ocr manually > > Signed-off-by: Michael Wu <michael@xxxxxxxxxxxxxxxxx> > --- > drivers/mmc/host/sunxi-mmc.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c > index 2702736a1c57..afeefead6501 100644 > --- a/drivers/mmc/host/sunxi-mmc.c > +++ b/drivers/mmc/host/sunxi-mmc.c > @@ -1300,6 +1300,14 @@ static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host, > if (ret) > return ret; > > + /** > + * Some platforms has no regulator. Discrete devices are used instead. > + * To support sd/mmc card, we need to add ocr manually. > + */ > + if (!host->mmc->ocr_avail) > + host->mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; > + Rather than doing this, I suggest you hook up a fixed vmmc regulator in the DTS. Nevertheless, it seems reasonable to check that the ocr_avail gets set up correctly. And if it doesn't, perhaps we should print a warning and return an error code. > + > host->reg_base = devm_platform_ioremap_resource(pdev, 0); > if (IS_ERR(host->reg_base)) > return PTR_ERR(host->reg_base); Kind regards Uffe