[PATCH 2/2] mmc: sdhci-of-aspeed: Add ast2700 support
Ryan Chen
ryan_chen at aspeedtech.com
Sat Mar 14 12:21:03 AEDT 2026
> Subject: RE: [PATCH 2/2] mmc: sdhci-of-aspeed: Add ast2700 support
>
> > Subject: Re: [PATCH 2/2] mmc: sdhci-of-aspeed: Add ast2700 support
> >
> > On Fr, 2026-03-13 at 13:27 +0800, Ryan Chen wrote:
> > > Add support for the AST2700 SOC in the sd controller driver. AST2700
> > > sd controller requires an reset line, so hook up the optional reset
> > > control and deassert it during probe.
> > >
> > > Signed-off-by: Ryan Chen <ryan_chen at aspeedtech.com>
> > > ---
> > > drivers/mmc/host/sdhci-of-aspeed.c | 11 +++++++++++
> > > 1 file changed, 11 insertions(+)
> > >
> > > diff --git a/drivers/mmc/host/sdhci-of-aspeed.c
> > > b/drivers/mmc/host/sdhci-of-aspeed.c
> > > index ca97b01996b1..91c36245e506 100644
> > > --- a/drivers/mmc/host/sdhci-of-aspeed.c
> > > +++ b/drivers/mmc/host/sdhci-of-aspeed.c
> > > @@ -520,6 +520,7 @@ static int aspeed_sdc_probe(struct
> > > platform_device
> > > *pdev)
> > >
> > > {
> > > struct device_node *parent, *child;
> > > + struct reset_control *reset;
> > > struct aspeed_sdc *sdc;
> > > int ret;
> > >
> > > @@ -529,6 +530,15 @@ static int aspeed_sdc_probe(struct
> > > platform_device *pdev)
> > >
> > > spin_lock_init(&sdc->lock);
> > >
> > > + reset = reset_control_get_optional_exclusive(&pdev->dev, NULL);
> >
> > This is missing a reset_control_put() in aspeed_sdc_remove(). Or use
> > devm_reset_control_get_optional_exclusive().
> >
> > Is it ok to assert this reset control in _remove()? If so, you could
> > use devm_reset_control_get_optional_exclusive_deasserted().
> >
> Thanks the guidance.
> I will update use
> sdc->rst = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL);
> if (IS_ERR(sdc->rst))
> return dev_err_probe(&pdev->dev, PTR_ERR(sdc->rst),
> "unable to acquire reset\n");
>
Sorry, I review the devm_reset_control_get_optional_exclusive_deasserted
I will modify with following in probe.
sdc->rst = devm_reset_control_get_optional_exclusive_deasserted(&pdev->dev,
NULL);
if (IS_ERR(sdc->rst))
return dev_err_probe(&pdev->dev, PTR_ERR(sdc->rst),
"unable to acquire reset\n");
And add reset_control_assert(sdc->rst); in remove.
More information about the openbmc
mailing list