summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMichal Simek <[email protected]>2025-11-10 16:19:56 +0100
committerMichal Simek <[email protected]>2025-12-19 08:25:27 +0100
commit55e097ec88af7d28eb4cdb67000ac8b7a7543e74 (patch)
treebb4dfb8fb05249632557be6f3671b8103af4c1af /drivers
parent7c1e03704830d607935487e3b6c710f063dbe9e8 (diff)
spi: cadence: Remove cdns,is-dma DT property
cdns,is-dma is not documented property that's why setup CQSPI_DMA_MODE quirk to enable DMA mode based on compatible string. And also change compatible string for mini configurations also with recording compatible string in the driver (Compatible string is already the part of existing DT binding). Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/f109829793900e57558d98ed22caf80c1a72b232.1762787994.git.michal.simek@amd.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/spi/cadence_qspi.c20
-rw-r--r--drivers/spi/cadence_qspi.h2
2 files changed, 16 insertions, 6 deletions
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
index 9b45cab9c04..892dc3557a5 100644
--- a/drivers/spi/cadence_qspi.c
+++ b/drivers/spi/cadence_qspi.c
@@ -29,6 +29,7 @@
/* Quirks */
#define CQSPI_DISABLE_STIG_MODE BIT(0)
+#define CQSPI_DMA_MODE BIT(1)
__weak int cadence_qspi_apb_dma_read(struct cadence_spi_priv *priv,
const struct spi_mem_op *op)
@@ -210,7 +211,6 @@ static int cadence_spi_probe(struct udevice *bus)
priv->regbase = plat->regbase;
priv->ahbbase = plat->ahbbase;
- priv->is_dma = plat->is_dma;
priv->is_decoded_cs = plat->is_decoded_cs;
priv->fifo_depth = plat->fifo_depth;
priv->fifo_width = plat->fifo_width;
@@ -227,6 +227,11 @@ static int cadence_spi_probe(struct udevice *bus)
priv->tslch_ns = plat->tslch_ns;
priv->quirks = plat->quirks;
+ if (priv->quirks & CQSPI_DMA_MODE) {
+ priv->is_dma = true;
+ debug("Cadence QSPI: DMA mode enabled\n");
+ }
+
if (IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE))
xilinx_pm_request(PM_REQUEST_NODE, PM_DEV_OSPI,
ZYNQMP_PM_CAPABILITY_ACCESS, ZYNQMP_PM_MAX_QOS,
@@ -412,8 +417,6 @@ static int cadence_spi_of_to_plat(struct udevice *bus)
if (plat->ahbsize >= SZ_8M)
priv->use_dac_mode = true;
- plat->is_dma = dev_read_bool(bus, "cdns,is-dma");
-
/* All other parameters are embedded in the child node */
subnode = cadence_qspi_get_subnode(bus);
if (!ofnode_valid(subnode)) {
@@ -473,6 +476,10 @@ static const struct cqspi_driver_platdata cdns_qspi = {
.quirks = CQSPI_DISABLE_STIG_MODE,
};
+static const struct cqspi_driver_platdata cdns_xilinx_qspi = {
+ .quirks = CQSPI_DMA_MODE,
+};
+
static const struct udevice_id cadence_spi_ids[] = {
{
.compatible = "cdns,qspi-nor",
@@ -482,7 +489,12 @@ static const struct udevice_id cadence_spi_ids[] = {
.compatible = "ti,am654-ospi"
},
{
- .compatible = "amd,versal2-ospi"
+ .compatible = "amd,versal2-ospi",
+ .data = (ulong)&cdns_xilinx_qspi,
+ },
+ {
+ .compatible = "xlnx,versal-ospi-1.0",
+ .data = (ulong)&cdns_xilinx_qspi,
},
{ }
};
diff --git a/drivers/spi/cadence_qspi.h b/drivers/spi/cadence_qspi.h
index 879e7f8dbfb..1e9081c2d17 100644
--- a/drivers/spi/cadence_qspi.h
+++ b/drivers/spi/cadence_qspi.h
@@ -223,8 +223,6 @@ struct cadence_spi_plat {
u32 tchsh_ns;
u32 tslch_ns;
u32 quirks;
-
- bool is_dma;
};
struct cadence_spi_priv {