[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 Linux-aspeed mailing list