[PATCH] spi: cadence: Remove cdns,is-dma DT property

Michal Simek michal.simek at amd.com
Wed Nov 26 09:09:59 CET 2025



On 11/10/25 16:19, Michal Simek wrote:
> 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 <michal.simek at amd.com>
> ---
> 
>   arch/arm/dts/versal-mini-ospi.dtsi     |  3 +--
>   arch/arm/dts/versal-net-mini-ospi.dtsi |  3 +--
>   drivers/spi/cadence_qspi.c             | 20 ++++++++++++++++----
>   drivers/spi/cadence_qspi.h             |  2 --
>   4 files changed, 18 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/dts/versal-mini-ospi.dtsi b/arch/arm/dts/versal-mini-ospi.dtsi
> index eec2a08e7c70..8429dc585d51 100644
> --- a/arch/arm/dts/versal-mini-ospi.dtsi
> +++ b/arch/arm/dts/versal-mini-ospi.dtsi
> @@ -29,7 +29,7 @@
>   	};
>   
>   	ospi: spi at f1010000 {
> -		compatible = "cdns,qspi-nor";
> +		compatible = "xlnx,versal-ospi-1.0", "cdns,qspi-nor";
>   		status = "okay";
>   		reg = <0 0xf1010000 0 0x10000 0 0xc0000000 0 0x20000000>;
>   		clock-names = "ref_clk", "pclk";
> @@ -38,7 +38,6 @@
>   		num-cs = <1>;
>   		cdns,fifo-depth = <256>;
>   		cdns,fifo-width = <4>;
> -		cdns,is-dma = <1>;
>   		cdns,trigger-address = <0xc0000000>;
>   		#address-cells = <1>;
>   		#size-cells = <0>;
> diff --git a/arch/arm/dts/versal-net-mini-ospi.dtsi b/arch/arm/dts/versal-net-mini-ospi.dtsi
> index 1c94b352dc97..78404960f2f3 100644
> --- a/arch/arm/dts/versal-net-mini-ospi.dtsi
> +++ b/arch/arm/dts/versal-net-mini-ospi.dtsi
> @@ -43,7 +43,7 @@
>   	};
>   
>   	ospi: spi at f1010000 {
> -		compatible = "cdns,qspi-nor";
> +		compatible = "xlnx,versal-ospi-1.0", "cdns,qspi-nor";
>   		status = "okay";
>   		reg = <0 0xf1010000 0 0x10000>, <0 0xc0000000 0 0x20000000>;
>   		clock-names = "ref_clk", "pclk";
> @@ -52,7 +52,6 @@
>   		num-cs = <1>;
>   		cdns,fifo-depth = <256>;
>   		cdns,fifo-width = <4>;
> -		cdns,is-dma = <1>;
>   		cdns,is-stig-pgm = <1>;
>   		cdns,trigger-address = <0xc0000000>;
>   		#address-cells = <1>;
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> index 9b45cab9c04c..892dc3557a5e 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 879e7f8dbfb8..1e9081c2d17b 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 {

Applied.
M


More information about the U-Boot mailing list