spi: atmel-quadspi: add support for named peripheral clock
Naming clocks is a good practice. Keep supporting unnamed peripheral clock, to be backward compatible with old DTs. While here, rename clk to pclk, to indicate that it is a peripheral clock. Suggested-by: Boris Brezillon <bbrezillon@kernel.org> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Reviewed-by: Boris Brezillon <bbrezillon@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
18f075145e
commit
bd7905e2fe
|
@ -137,7 +137,7 @@
|
||||||
struct atmel_qspi {
|
struct atmel_qspi {
|
||||||
void __iomem *regs;
|
void __iomem *regs;
|
||||||
void __iomem *mem;
|
void __iomem *mem;
|
||||||
struct clk *clk;
|
struct clk *pclk;
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
u32 pending;
|
u32 pending;
|
||||||
u32 mr;
|
u32 mr;
|
||||||
|
@ -341,7 +341,7 @@ static int atmel_qspi_setup(struct spi_device *spi)
|
||||||
if (!spi->max_speed_hz)
|
if (!spi->max_speed_hz)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
src_rate = clk_get_rate(aq->clk);
|
src_rate = clk_get_rate(aq->pclk);
|
||||||
if (!src_rate)
|
if (!src_rate)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@ -433,15 +433,18 @@ static int atmel_qspi_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the peripheral clock */
|
/* Get the peripheral clock */
|
||||||
aq->clk = devm_clk_get(&pdev->dev, NULL);
|
aq->pclk = devm_clk_get(&pdev->dev, "pclk");
|
||||||
if (IS_ERR(aq->clk)) {
|
if (IS_ERR(aq->pclk))
|
||||||
|
aq->pclk = devm_clk_get(&pdev->dev, NULL);
|
||||||
|
|
||||||
|
if (IS_ERR(aq->pclk)) {
|
||||||
dev_err(&pdev->dev, "missing peripheral clock\n");
|
dev_err(&pdev->dev, "missing peripheral clock\n");
|
||||||
err = PTR_ERR(aq->clk);
|
err = PTR_ERR(aq->pclk);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable the peripheral clock */
|
/* Enable the peripheral clock */
|
||||||
err = clk_prepare_enable(aq->clk);
|
err = clk_prepare_enable(aq->pclk);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&pdev->dev, "failed to enable the peripheral clock\n");
|
dev_err(&pdev->dev, "failed to enable the peripheral clock\n");
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -452,25 +455,25 @@ static int atmel_qspi_probe(struct platform_device *pdev)
|
||||||
if (irq < 0) {
|
if (irq < 0) {
|
||||||
dev_err(&pdev->dev, "missing IRQ\n");
|
dev_err(&pdev->dev, "missing IRQ\n");
|
||||||
err = irq;
|
err = irq;
|
||||||
goto disable_clk;
|
goto disable_pclk;
|
||||||
}
|
}
|
||||||
err = devm_request_irq(&pdev->dev, irq, atmel_qspi_interrupt,
|
err = devm_request_irq(&pdev->dev, irq, atmel_qspi_interrupt,
|
||||||
0, dev_name(&pdev->dev), aq);
|
0, dev_name(&pdev->dev), aq);
|
||||||
if (err)
|
if (err)
|
||||||
goto disable_clk;
|
goto disable_pclk;
|
||||||
|
|
||||||
err = atmel_qspi_init(aq);
|
err = atmel_qspi_init(aq);
|
||||||
if (err)
|
if (err)
|
||||||
goto disable_clk;
|
goto disable_pclk;
|
||||||
|
|
||||||
err = spi_register_controller(ctrl);
|
err = spi_register_controller(ctrl);
|
||||||
if (err)
|
if (err)
|
||||||
goto disable_clk;
|
goto disable_pclk;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
disable_clk:
|
disable_pclk:
|
||||||
clk_disable_unprepare(aq->clk);
|
clk_disable_unprepare(aq->pclk);
|
||||||
exit:
|
exit:
|
||||||
spi_controller_put(ctrl);
|
spi_controller_put(ctrl);
|
||||||
|
|
||||||
|
@ -484,7 +487,7 @@ static int atmel_qspi_remove(struct platform_device *pdev)
|
||||||
|
|
||||||
spi_unregister_controller(ctrl);
|
spi_unregister_controller(ctrl);
|
||||||
writel_relaxed(QSPI_CR_QSPIDIS, aq->regs + QSPI_CR);
|
writel_relaxed(QSPI_CR_QSPIDIS, aq->regs + QSPI_CR);
|
||||||
clk_disable_unprepare(aq->clk);
|
clk_disable_unprepare(aq->pclk);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,7 +495,7 @@ static int __maybe_unused atmel_qspi_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
struct atmel_qspi *aq = dev_get_drvdata(dev);
|
struct atmel_qspi *aq = dev_get_drvdata(dev);
|
||||||
|
|
||||||
clk_disable_unprepare(aq->clk);
|
clk_disable_unprepare(aq->pclk);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -501,7 +504,7 @@ static int __maybe_unused atmel_qspi_resume(struct device *dev)
|
||||||
{
|
{
|
||||||
struct atmel_qspi *aq = dev_get_drvdata(dev);
|
struct atmel_qspi *aq = dev_get_drvdata(dev);
|
||||||
|
|
||||||
clk_prepare_enable(aq->clk);
|
clk_prepare_enable(aq->pclk);
|
||||||
|
|
||||||
return atmel_qspi_init(aq);
|
return atmel_qspi_init(aq);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue