]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
spi: cadence-qspi: Fix requesting of APB and AHB clocks on JH7110
authorMark Brown <broonie@kernel.org>
Sat, 7 Mar 2026 09:50:35 +0000 (09:50 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 10 Mar 2026 14:32:38 +0000 (14:32 +0000)
The move of the AHB and APB clocks from a JH7110 specific quirk to the
main clock init dropped the specification of the clock names to request
for the AHB and APB clocks, resulting in the clock framework requesting
a clock with a NULL name three times.  On most platforms where the
clocks are physically the same or some are always on this makes no
difference but the reason we had the specific quirk for JH7110 is that
it does actually have separate, controllable clocks.  Update the new
code to request the AHB and APB clocks by name to restore the original
behaviour on JH7110.

Fixes: 324ecc7788c2 ("spi: cadence-qspi: Kill cqspi_jh7110_clk_init")
Reported-by: Ron Economos <re@w6rz.net>
Closes: https://lore.kernel.org/r/a3ca5e9b-7446-497e-8df2-7ef2b42a02e9@w6rz.net
Tested-by: Ron Economos <re@w6rz.net>
Link: https://patch.msgid.link/20260307-spi-cadence-qspi-fix-jh7110-v1-1-c9f37b8c58b1@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://patch.msgid.link/20260307-spi-cadence-qspi-fix-jh7110-v1-1-c9f37b8c58b1@kernel.org
drivers/spi/spi-cadence-quadspi.c

index 649ff55333f05062bc6b8e81d75e07f695e89834..5fb0cb07c110cc1ddfdf5fdb497b8ad7aa0cf3b7 100644 (file)
@@ -76,6 +76,11 @@ struct cqspi_flash_pdata {
        u8              cs;
 };
 
+static const struct clk_bulk_data cqspi_clks[CLK_QSPI_NUM] = {
+       [CLK_QSPI_APB] = { .id = "apb" },
+       [CLK_QSPI_AHB] = { .id = "ahb" },
+};
+
 struct cqspi_st {
        struct platform_device  *pdev;
        struct spi_controller   *host;
@@ -1823,6 +1828,7 @@ static int cqspi_probe(struct platform_device *pdev)
        }
 
        /* Obtain QSPI clocks. */
+       memcpy(&cqspi->clks, &cqspi_clks, sizeof(cqspi->clks));
        ret = devm_clk_bulk_get_optional(dev, CLK_QSPI_NUM, cqspi->clks);
        if (ret)
                return dev_err_probe(dev, ret, "Failed to get clocks\n");