mtd: spi-nor: cadence-quadspi: add reset control
Subsystems (2)
PATCH 1/1 mtd: spi-nor: cadence-quadspi: add reset control
Get the reset control for the QSPI controller and bring it out of reset.
Suggested-by Tien-Fong Chee <[email protected]>
Signed-off-by Dinh Nguyen <[email protected]>
--- drivers/mtd/spi-nor/cadence-quadspi.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
drivers/mtd/spi-nor/cadence-quadspi.c +10 -0
@@ -34,6 +34,7 @@#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> +#include <linux/reset.h> #include <linux/sched.h> #include <linux/spi/spi.h> #include <linux/timer.h>
@@ -1336,6 +1337,7 @@ static int cqspi_probe(struct platform_device *pdev)struct cqspi_st *cqspi;struct resource *res;struct resource *res_ahb; +struct reset_control *rstc;const struct cqspi_driver_platdata *ddata;int ret;int irq;
@@ -1362,6 +1364,14 @@ static int cqspi_probe(struct platform_device *pdev)return PTR_ERR (cqspi->clk); } +/* Obtain QSPI reset control */ + rstc =devm_reset_control_get_exclusive (dev,NULL ); +if (!IS_ERR (rstc)) { +reset_control_assert (rstc); +udelay (1 ); +reset_control_deassert (rstc); + } +/* Obtain and remap controller address. */ res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); cqspi->iobase =devm_ioremap_resource (dev, res);
Signature · 1 line
2.20.0
Vignesh Raghavendra
maintainerQuoted 30 lines · Dinh Nguyen
Get the reset control for the QSPI controller and bring it out of reset.
Suggested-by Tien-Fong Chee <[email protected]>Signed-off-by Dinh Nguyen <[email protected]>--- drivers/mtd/spi-nor/cadence-quadspi.c | 10 ++++++++++ 1 file changed, 10 insertions(+)drivers/mtd/spi-nor/cadence-quadspi.c +2
-0@@ -34,6 +34,7 @@#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> +#include <linux/reset.h> #include <linux/sched.h> #include <linux/spi/spi.h> #include <linux/timer.h> @@ -1336,6 +1337,7 @@ static int cqspi_probe(struct platform_device *pdev)struct cqspi_st *cqspi;struct resource *res;struct resource *res_ahb; +struct reset_control *rstc;const struct cqspi_driver_platdata *ddata;int ret;int irq;@@ -1362,6 +1364,14 @@ static int cqspi_probe(struct platform_device *pdev)return PTR_ERR (cqspi->clk);
drivers/mtd/spi-nor/cadence-quadspi.c static int cqspi_probe(struct platform_device *pdev) · line 1374
Quoted 10 lines
drivers/mtd/spi-nor/cadence-quadspi.c +8
-0} +/* Obtain QSPI reset control */ + rstc =devm_reset_control_get_exclusive (dev,NULL ); +if (!IS_ERR (rstc)) { +reset_control_assert (rstc); +udelay (1 ); +reset_control_deassert (rstc); + } +
If reset is optional here why not use devm_reset_control_get_optional_exclusive() and handle error codes (like -EPROBE_DEFER) appropriately instead of ignoring them?
Quoted 4 lines
drivers/mtd/spi-nor/cadence-quadspi.c +0
-0/* Obtain and remap controller address. */ res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); cqspi->iobase =devm_ioremap_resource (dev, res);
Signature · 2 lines
Regards Vignesh