Commit 8f16292d authored by Miquel Raynal's avatar Miquel Raynal Committed by Mark Brown

spi: zynq-qspi: Do the actual hardware initialization later in the probe

Supporting more than one CS will need some tweaking of the linear
configuration register which is (rightfully) initialized in the
hardware initialization helper. The extra initialization needs the
knowledge of the actual number of CS, which is retrieved by reading
the value of the num-cs DT property.

As the initialization helper is called pretty early and might be
called much later in the probe without side effect, let's delay it a
bit so that the number of CS will be available when running this
helper. This way, adding support for multiple CS lines in a next patch
will be eased.
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20191108140744.1734-7-miquel.raynal@bootlin.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent dffaf743
...@@ -657,9 +657,6 @@ static int zynq_qspi_probe(struct platform_device *pdev) ...@@ -657,9 +657,6 @@ static int zynq_qspi_probe(struct platform_device *pdev)
goto clk_dis_pclk; goto clk_dis_pclk;
} }
/* QSPI controller initializations */
zynq_qspi_init_hw(xqspi);
xqspi->irq = platform_get_irq(pdev, 0); xqspi->irq = platform_get_irq(pdev, 0);
if (xqspi->irq <= 0) { if (xqspi->irq <= 0) {
ret = -ENXIO; ret = -ENXIO;
...@@ -690,6 +687,10 @@ static int zynq_qspi_probe(struct platform_device *pdev) ...@@ -690,6 +687,10 @@ static int zynq_qspi_probe(struct platform_device *pdev)
ctlr->setup = zynq_qspi_setup_op; ctlr->setup = zynq_qspi_setup_op;
ctlr->max_speed_hz = clk_get_rate(xqspi->refclk) / 2; ctlr->max_speed_hz = clk_get_rate(xqspi->refclk) / 2;
ctlr->dev.of_node = np; ctlr->dev.of_node = np;
/* QSPI controller initializations */
zynq_qspi_init_hw(xqspi);
ret = devm_spi_register_controller(&pdev->dev, ctlr); ret = devm_spi_register_controller(&pdev->dev, ctlr);
if (ret) { if (ret) {
dev_err(&pdev->dev, "spi_register_master failed\n"); dev_err(&pdev->dev, "spi_register_master failed\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment