Re: [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset
Adrian Hunter <[email protected]>
| Newsgroups | org.ozlabs.lists.openbmc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc,org.ozlabs.lists.linux-aspeed |
|---|---|
| Organization | Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki |
| Message-ID | <[email protected]> |
On 23/03/2026 04:07, Ryan Chen wrote: > Get the optional reset line for the ASPEED SD controller during probe by > using devm_reset_control_get_optional_exclusive_deasserted(). > > This allows platforms such as AST2700, which require the SD controller > to be taken out of reset before use, to work with the existing driver. > > Signed-off-by: Ryan Chen <[email protected]> No longer applies to 'next' branch of: git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git Fix that and add: Acked-by: Adrian Hunter <[email protected]> > --- > Changes in v2: > - use devm_reset_control_get_optional_exclusive_deasserted replace > reset_control_get_optional_exclusive. > - add include reset.h > --- > drivers/mmc/host/sdhci-of-aspeed.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-of-aspeed.c b/drivers/mmc/host/sdhci-of-aspeed.c > index ca97b01996b1..8f638ffb55ae 100644 > --- a/drivers/mmc/host/sdhci-of-aspeed.c > +++ b/drivers/mmc/host/sdhci-of-aspeed.c > @@ -13,6 +13,7 @@ > #include <linux/of.h> > #include <linux/of_platform.h> > #include <linux/platform_device.h> > +#include <linux/reset.h> > #include <linux/spinlock.h> > > #include "sdhci-pltfm.h" > @@ -520,6 +521,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 +531,10 @@ static int aspeed_sdc_probe(struct platform_device *pdev) > > spin_lock_init(&sdc->lock); > > + reset = devm_reset_control_get_optional_exclusive_deasserted(&pdev->dev, NULL); > + if (IS_ERR(reset)) > + return dev_err_probe(&pdev->dev, PTR_ERR(reset), "unable to acquire reset\n"); > + > sdc->clk = devm_clk_get(&pdev->dev, NULL); > if (IS_ERR(sdc->clk)) > return PTR_ERR(sdc->clk); >