devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Add Agilex5 AXI DMA support
@ 2025-12-08  1:57 Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5 Khairul Anuar Romli
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Khairul Anuar Romli @ 2025-12-08  1:57 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Eugeniy Paltsev, Vinod Koul, dmaengine, devicetree, linux-kernel,
	Khairul Anuar Romli

This series introduces support for Agilex5 SoC in the Synopsys DesignWare
AXI DMA binding and updates the device tree to use the platform-specific
compatible string.

The Agilex5 only has 40-bit DMA addressable bit instead of 64-bit. Hence,
this specific addition will enable driver to handle this limitation.

---
Notes:
This patch series is applied on socfpga maintainer's tree
https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git/log/?h=socfpga_dts_for_v6.19

Changes in v2:
	- Add dma-ranges property.
	- Add address-cells and size-cells due to warning when dma-ranges
	  is define without address-cells and size-cells present. Also
	  prevent kernel panic if address-cells and size-cells are not
	  defined.
	- Add driver support to handle defined properties and set the DMA
	  BIT MASK according to value from DT.
	- Rename "arm64: dts: agilex5: Use platform-specific compatible for
          AXI DMA" to "arm64: dts: intel: agilex5: Add dma-ranges and
          address cells to dma node"

This changes is validated on:
	- intel/socfpga_agilex5_socdk.dtb
	- snps,dw-axi-dmac.yaml
	- snps,dw-axi-dmac.yaml intel/socfpga_agilex5_socdk.dtb
	- Agilex5 devkit
---
Khairul Anuar Romli (4):
  dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5
  dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells
  arm64: dts: intel: agilex5: Add dma-ranges and address cells to dma
    node
  dma: dw-axi-dmac: Add support for Agilex5 and dynamic bus width

 .../bindings/dma/snps,dw-axi-dmac.yaml        | 33 ++++++++--
 .../arm64/boot/dts/intel/socfpga_agilex5.dtsi | 12 +++-
 .../dma/dw-axi-dmac/dw-axi-dmac-platform.c    | 63 ++++++++++++++++++-
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h         |  1 +
 4 files changed, 101 insertions(+), 8 deletions(-)

-- 
2.43.7


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5
  2025-12-08  1:57 [PATCH v2 0/4] Add Agilex5 AXI DMA support Khairul Anuar Romli
@ 2025-12-08  1:57 ` Khairul Anuar Romli
  2025-12-09 21:21   ` Rob Herring
  2025-12-08  1:57 ` [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells Khairul Anuar Romli
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Khairul Anuar Romli @ 2025-12-08  1:57 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Eugeniy Paltsev, Vinod Koul, dmaengine, devicetree, linux-kernel,
	Khairul Anuar Romli

The address bus on Agilex5 is limited to 40 bits. When SMMU is enable this
will cause address truncation and translation faults. Hence introducing
"altr,agilex5-axi-dma" to enable platform specific configuration to
configure the dma addressable bit mask.

Add a fallback capability for the compatible property to allow driver to
probe and initialize with a newly added compatible string without requiring
additional entry in the driver.

Add dma-ranges to the binding schema to allow specifying DMA address
mapping between the controller and its parent bus.

Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
---
Changes in v2:
	- Add dma-ranges
---
 .../bindings/dma/snps,dw-axi-dmac.yaml        | 23 +++++++++++++++----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
index a393a33c8908..1a1800d9b544 100644
--- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
+++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
@@ -17,11 +17,15 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - snps,axi-dma-1.01a
-      - intel,kmb-axi-dma
-      - starfive,jh7110-axi-dma
-      - starfive,jh8100-axi-dma
+    oneOf:
+      - enum:
+          - snps,axi-dma-1.01a
+          - intel,kmb-axi-dma
+          - starfive,jh7110-axi-dma
+          - starfive,jh8100-axi-dma
+      - items:
+          - const: altr,agilex5-axi-dma
+          - const: snps,axi-dma-1.01a
 
   reg:
     minItems: 1
@@ -104,6 +108,15 @@ properties:
     minimum: 1
     maximum: 256
 
+  dma-ranges:
+    description: |
+      Describe memory addresses translation between the DMA address and the
+      CPU address. Each memory region, is declared with 3-6 32-bit cells
+      parameters:
+        - param 1: device base address
+        - param 2: physical base address
+        - param 3: size of the memory region.
+
 required:
   - compatible
   - reg
-- 
2.43.7


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells
  2025-12-08  1:57 [PATCH v2 0/4] Add Agilex5 AXI DMA support Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5 Khairul Anuar Romli
@ 2025-12-08  1:57 ` Khairul Anuar Romli
  2025-12-09 21:26   ` Rob Herring
  2025-12-08  1:57 ` [PATCH v2 3/4] arm64: dts: intel: agilex5: Add dma-ranges, address and size cells to dma node Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 4/4] dma: dw-axi-dmac: Add support for Agilex5 and dynamic bus width Khairul Anuar Romli
  3 siblings, 1 reply; 7+ messages in thread
From: Khairul Anuar Romli @ 2025-12-08  1:57 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Eugeniy Paltsev, Vinod Koul, dmaengine, devicetree, linux-kernel,
	Khairul Anuar Romli

Add '#address-cells' and '#size-cells' to resolved the dt-schema build
build issue when dma-ranges is presence. Without address-cells and
size-cells presence in DT, kernel panic is observed due to of_base driver
treats address-cells as two and size-cells as one.

Defining these cells explicitly ensures the binding correctly documents the
necessary structure for nodes that describe the DMA-accessible memory
space.

The supported enumeration for both properties is [1, 2], accommodating both
32-bit and 64-bit address/size representations.

Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
---
Changes in v2:
	- Add address-cells and size-cells patch into the series
---
 .../devicetree/bindings/dma/snps,dw-axi-dmac.yaml      | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
index 1a1800d9b544..2b542ff9a6cd 100644
--- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
+++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
@@ -33,6 +33,16 @@ properties:
       - description: Address range of the DMAC registers
       - description: Address range of the DMAC APB registers
 
+  '#address-cells':
+    description: The number of cells used to represent physical base address
+      in the host address space.
+    enum: [1, 2]
+
+  '#size-cells':
+    description: The number of cells used to represent the size of an address
+      range in the host address space.
+    enum: [1, 2]
+
   reg-names:
     items:
       - const: axidma_ctrl_regs
-- 
2.43.7


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] arm64: dts: intel: agilex5: Add dma-ranges, address and size cells to dma node
  2025-12-08  1:57 [PATCH v2 0/4] Add Agilex5 AXI DMA support Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5 Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells Khairul Anuar Romli
@ 2025-12-08  1:57 ` Khairul Anuar Romli
  2025-12-08  1:57 ` [PATCH v2 4/4] dma: dw-axi-dmac: Add support for Agilex5 and dynamic bus width Khairul Anuar Romli
  3 siblings, 0 replies; 7+ messages in thread
From: Khairul Anuar Romli @ 2025-12-08  1:57 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Eugeniy Paltsev, Vinod Koul, dmaengine, devicetree, linux-kernel,
	Khairul Anuar Romli

Update the compatible string for the DMA controller nodes in the Agilex5
device tree from the generic "snps,axi-dma-1.01a" to the platform-specific
"altr,agilex5-axi-dma". Add fallback capability to ensure driver is able
to initialize properly.

This change enables the use of platform-specific features and constraints
in the driver, such as setting a 40-bit DMA addressable mask through
dma-ranges, which is required for Agilex5. It also aligns with the updated
device tree bindings and driver support for this compatible string.

Address-cells and size-cells are also defined along with dma-ranges to
ensure of_base driver does not causing kernel panic during boot up.

Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
---
Changes in v2:
	- Rename the from add platform specific to add dma-ranges, address
	  and size cells.
	- Define address-cells and size-cells for dmac0 and dmac1
	- Add dma-ranges for agilex5 for 40-bit
---
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
index 06f98667499b..1983869274e7 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
@@ -336,8 +336,11 @@ ocram: sram@0 {
 		};
 
 		dmac0: dma-controller@10db0000 {
-			compatible = "snps,axi-dma-1.01a";
+			compatible = "altr,agilex5-axi-dma",
+				     "snps,axi-dma-1.01a";
 			reg = <0x10db0000 0x500>;
+			#address-cells = <1>;
+			#size-cells = <2>;
 			clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
 				 <&clkmgr AGILEX5_L4_MP_CLK>;
 			clock-names = "core-clk", "cfgr-clk";
@@ -351,11 +354,15 @@ dmac0: dma-controller@10db0000 {
 			snps,priority = <0 1 2 3>;
 			snps,axi-max-burst-len = <8>;
 			iommus = <&smmu 8>;
+			dma-ranges = <0x00 0x00 0x00000100 0x00000000>;
 		};
 
 		dmac1: dma-controller@10dc0000 {
-			compatible = "snps,axi-dma-1.01a";
+			compatible = "altr,agilex5-axi-dma",
+				     "snps,axi-dma-1.01a";
 			reg = <0x10dc0000 0x500>;
+			#address-cells = <1>;
+			#size-cells = <2>;
 			clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
 				 <&clkmgr AGILEX5_L4_MP_CLK>;
 			clock-names = "core-clk", "cfgr-clk";
@@ -369,6 +376,7 @@ dmac1: dma-controller@10dc0000 {
 			snps,priority = <0 1 2 3>;
 			snps,axi-max-burst-len = <8>;
 			iommus = <&smmu 9>;
+			dma-ranges = <0x00 0x00 0x00000100 0x00000000>;
 		};
 
 		rst: rstmgr@10d11000 {
-- 
2.43.7


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] dma: dw-axi-dmac: Add support for Agilex5 and dynamic bus width
  2025-12-08  1:57 [PATCH v2 0/4] Add Agilex5 AXI DMA support Khairul Anuar Romli
                   ` (2 preceding siblings ...)
  2025-12-08  1:57 ` [PATCH v2 3/4] arm64: dts: intel: agilex5: Add dma-ranges, address and size cells to dma node Khairul Anuar Romli
@ 2025-12-08  1:57 ` Khairul Anuar Romli
  3 siblings, 0 replies; 7+ messages in thread
From: Khairul Anuar Romli @ 2025-12-08  1:57 UTC (permalink / raw)
  To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Eugeniy Paltsev, Vinod Koul, dmaengine, devicetree, linux-kernel,
	Khairul Anuar Romli

Add device tree compatible string support for the Altera Agilex5 AXI DMA
controller.

Introduces logic to parse the "dma-ranges" property and calculate the
actual number of addressable bits (bus width) for the DMA engine. This
calculated value is then used to set the coherent mask via
'dma_set_mask_and_coherent()', allowing the driver to correctly handle
devices with bus widths less than 64 bits. The addressable bits default to
64 if 'dma-ranges' is not specified or cannot be parsed.

Introduce 'addressable_bits' to 'struct axi_dma_chip' to store this value.

Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
---
Changes in v2:
	- Add driver implementation to set the DMA BIT MAST to 40 based on
	  dma-ranges defined in DT.
	- Add glue for driver and DT.
---
 .../dma/dw-axi-dmac/dw-axi-dmac-platform.c    | 63 ++++++++++++++++++-
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h         |  1 +
 2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
index b23536645ff7..165481b4dde1 100644
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -271,7 +271,9 @@ static void axi_dma_hw_init(struct axi_dma_chip *chip)
 		axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL);
 		axi_chan_disable(&chip->dw->chan[i]);
 	}
-	ret = dma_set_mask_and_coherent(chip->dev, DMA_BIT_MASK(64));
+
+	dev_dbg(chip->dev, "Adressable bus width: %u\n", chip->addressable_bits);
+	ret = dma_set_mask_and_coherent(chip->dev, DMA_BIT_MASK(chip->addressable_bits));
 	if (ret)
 		dev_warn(chip->dev, "Unable to set coherent mask\n");
 }
@@ -1461,13 +1463,23 @@ static int axi_req_irqs(struct platform_device *pdev, struct axi_dma_chip *chip)
 	return 0;
 }
 
+/* Forward declaration (no size required) */
+static const struct of_device_id dw_dma_of_id_table[];
+
 static int dw_probe(struct platform_device *pdev)
 {
 	struct axi_dma_chip *chip;
 	struct dw_axi_dma *dw;
 	struct dw_axi_dma_hcfg *hdata;
 	struct reset_control *resets;
+	const struct of_device_id *match;
 	unsigned int flags;
+	unsigned int addressable_bits = 64;
+	unsigned int len_bytes;
+	unsigned int num_cells;
+	const __be32 *prop;
+	u64 bus_width;
+	u32 *cells;
 	u32 i;
 	int ret;
 
@@ -1483,9 +1495,56 @@ static int dw_probe(struct platform_device *pdev)
 	if (!hdata)
 		return -ENOMEM;
 
+	match = of_match_node(dw_dma_of_id_table, pdev->dev.of_node);
+	if (!match) {
+		dev_err(&pdev->dev, "Unsupported AXI DMA device\n");
+		return -ENODEV;
+	}
+
+	prop = of_get_property(pdev->dev.of_node, "dma-ranges", &len_bytes);
+	if (prop) {
+		num_cells = len_bytes / sizeof(__be32);
+		cells = kcalloc(num_cells, sizeof(*cells), GFP_KERNEL);
+		if (!cells)
+			return -ENOMEM;
+
+		ret = of_property_read_u32(pdev->dev.of_node, "#address-cells", &i);
+		if (ret) {
+			dev_err(&pdev->dev, "missing #address-cells property\n");
+			return ret;
+		}
+
+		ret = of_property_read_u32(pdev->dev.of_node, "#size-cells", &i);
+		if (ret) {
+			dev_err(&pdev->dev, "missing #size-cells property\n");
+			return ret;
+		}
+
+		if (!of_property_read_u32_array(pdev->dev.of_node,
+						"dma-ranges", cells, num_cells)) {
+			dev_dbg(&pdev->dev, "dma-ranges numbe of cells: %u\n", num_cells);
+			// Check if size-cells is 2 cells.
+			if (i == 2 && num_cells > 3) {
+				// Combine size cells into 64-bit length
+				dev_dbg(&pdev->dev, "size-cells MSB: %u\n", cells[num_cells - 2]);
+				dev_dbg(&pdev->dev, "size-cells LSB: %u\n", cells[num_cells - 1]);
+				bus_width = ((u64)cells[num_cells - 2] << 32) |
+cells[num_cells - 1];
+			}
+
+			// Count number of bits in bus_width
+			if (bus_width)
+				addressable_bits = fls64(bus_width) - 1;
+
+			dev_dbg(&pdev->dev, "Bus width: %u bits (length: 0x%llx)\n",
+				addressable_bits, bus_width);
+		}
+	}
+
 	chip->dw = dw;
 	chip->dev = &pdev->dev;
 	chip->dw->hdata = hdata;
+	chip->addressable_bits = addressable_bits;
 
 	chip->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(chip->regs))
@@ -1669,6 +1728,8 @@ static const struct of_device_id dw_dma_of_id_table[] = {
 	}, {
 		.compatible = "starfive,jh8100-axi-dma",
 		.data = (void *)AXI_DMA_FLAG_HAS_RESETS,
+	}, {
+		.compatible = "altr,agilex5-axi-dma"
 	},
 	{}
 };
diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h
index b842e6a8d90d..f8152f8b3798 100644
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h
@@ -71,6 +71,7 @@ struct axi_dma_chip {
 	struct clk		*core_clk;
 	struct clk		*cfgr_clk;
 	struct dw_axi_dma	*dw;
+	u32			addressable_bits;
 };
 
 /* LLI == Linked List Item */
-- 
2.43.7


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5
  2025-12-08  1:57 ` [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5 Khairul Anuar Romli
@ 2025-12-09 21:21   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2025-12-09 21:21 UTC (permalink / raw)
  To: Khairul Anuar Romli
  Cc: Dinh Nguyen, Krzysztof Kozlowski, Conor Dooley, Eugeniy Paltsev,
	Vinod Koul, dmaengine, devicetree, linux-kernel

On Mon, Dec 08, 2025 at 09:57:42AM +0800, Khairul Anuar Romli wrote:
> The address bus on Agilex5 is limited to 40 bits. When SMMU is enable this
> will cause address truncation and translation faults. Hence introducing
> "altr,agilex5-axi-dma" to enable platform specific configuration to
> configure the dma addressable bit mask.
> 
> Add a fallback capability for the compatible property to allow driver to
> probe and initialize with a newly added compatible string without requiring
> additional entry in the driver.
> 
> Add dma-ranges to the binding schema to allow specifying DMA address
> mapping between the controller and its parent bus.
> 
> Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
> ---
> Changes in v2:
> 	- Add dma-ranges
> ---
>  .../bindings/dma/snps,dw-axi-dmac.yaml        | 23 +++++++++++++++----
>  1 file changed, 18 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> index a393a33c8908..1a1800d9b544 100644
> --- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> +++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> @@ -17,11 +17,15 @@ allOf:
>  
>  properties:
>    compatible:
> -    enum:
> -      - snps,axi-dma-1.01a
> -      - intel,kmb-axi-dma
> -      - starfive,jh7110-axi-dma
> -      - starfive,jh8100-axi-dma
> +    oneOf:
> +      - enum:
> +          - snps,axi-dma-1.01a
> +          - intel,kmb-axi-dma
> +          - starfive,jh7110-axi-dma
> +          - starfive,jh8100-axi-dma
> +      - items:
> +          - const: altr,agilex5-axi-dma
> +          - const: snps,axi-dma-1.01a
>  
>    reg:
>      minItems: 1
> @@ -104,6 +108,15 @@ properties:
>      minimum: 1
>      maximum: 256
>  
> +  dma-ranges:
> +    description: |
> +      Describe memory addresses translation between the DMA address and the
> +      CPU address. Each memory region, is declared with 3-6 32-bit cells
> +      parameters:
> +        - param 1: device base address
> +        - param 2: physical base address
> +        - param 3: size of the memory region.

No need to generically describe dma-ranges. Just 'dma-ranges: true' 
unless you define constaints on the number of entries or want to put 
some description about why it is needed here.

> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.43.7
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells
  2025-12-08  1:57 ` [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells Khairul Anuar Romli
@ 2025-12-09 21:26   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2025-12-09 21:26 UTC (permalink / raw)
  To: Khairul Anuar Romli
  Cc: Dinh Nguyen, Krzysztof Kozlowski, Conor Dooley, Eugeniy Paltsev,
	Vinod Koul, dmaengine, devicetree, linux-kernel

On Mon, Dec 08, 2025 at 09:57:43AM +0800, Khairul Anuar Romli wrote:
> Add '#address-cells' and '#size-cells' to resolved the dt-schema build
> build issue when dma-ranges is presence. Without address-cells and
> size-cells presence in DT, kernel panic is observed due to of_base driver
> treats address-cells as two and size-cells as one.

Why are you fixing a problem the previous patch created?

Thinking about this some more, really 'dma-ranges' is supposed to be in 
a bus node, not the device node. So you should probably move the dma 
controllers down a level adding another simple-bus node with dma-ranges. 
Then you only need to add the new compatible.

> 
> Defining these cells explicitly ensures the binding correctly documents the
> necessary structure for nodes that describe the DMA-accessible memory
> space.
> 
> The supported enumeration for both properties is [1, 2], accommodating both
> 32-bit and 64-bit address/size representations.
> 
> Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
> ---
> Changes in v2:
> 	- Add address-cells and size-cells patch into the series
> ---
>  .../devicetree/bindings/dma/snps,dw-axi-dmac.yaml      | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> index 1a1800d9b544..2b542ff9a6cd 100644
> --- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> +++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> @@ -33,6 +33,16 @@ properties:
>        - description: Address range of the DMAC registers
>        - description: Address range of the DMAC APB registers
>  
> +  '#address-cells':
> +    description: The number of cells used to represent physical base address
> +      in the host address space.
> +    enum: [1, 2]
> +
> +  '#size-cells':
> +    description: The number of cells used to represent the size of an address
> +      range in the host address space.
> +    enum: [1, 2]
> +
>    reg-names:
>      items:
>        - const: axidma_ctrl_regs
> -- 
> 2.43.7
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-12-09 21:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-08  1:57 [PATCH v2 0/4] Add Agilex5 AXI DMA support Khairul Anuar Romli
2025-12-08  1:57 ` [PATCH v2 1/4] dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5 Khairul Anuar Romli
2025-12-09 21:21   ` Rob Herring
2025-12-08  1:57 ` [PATCH v2 2/4] dt-bindings: dma: snps,dw-axi-dmac: Add #address-cells and #size-cells Khairul Anuar Romli
2025-12-09 21:26   ` Rob Herring
2025-12-08  1:57 ` [PATCH v2 3/4] arm64: dts: intel: agilex5: Add dma-ranges, address and size cells to dma node Khairul Anuar Romli
2025-12-08  1:57 ` [PATCH v2 4/4] dma: dw-axi-dmac: Add support for Agilex5 and dynamic bus width Khairul Anuar Romli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).