dmaengine.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema
@ 2022-09-14 14:04 Christian Marangi
  2022-09-14 14:04 ` [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm Christian Marangi
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Christian Marangi @ 2022-09-14 14:04 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Vinod Koul,
	Rob Herring, Krzysztof Kozlowski, Christian Marangi,
	linux-arm-msm, dmaengine, devicetree, linux-kernel

Rework the qcom,adm Documentation to yaml schema.
This is not a pure conversion since originally the driver has changed
implementation for the #dma-cells and was wrong from the start.
Also the driver now handles the common DMA clients implementation with
the first cell that denotes the channel number and nothing else since
the client will have to provide the crci information via other means.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
 .../devicetree/bindings/dma/qcom,adm.yaml     | 96 +++++++++++++++++++
 .../devicetree/bindings/dma/qcom_adm.txt      | 61 ------------
 2 files changed, 96 insertions(+), 61 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/qcom,adm.yaml
 delete mode 100644 Documentation/devicetree/bindings/dma/qcom_adm.txt

diff --git a/Documentation/devicetree/bindings/dma/qcom,adm.yaml b/Documentation/devicetree/bindings/dma/qcom,adm.yaml
new file mode 100644
index 000000000000..6c08245bf5d5
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/qcom,adm.yaml
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/qcom,adm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm ADM DMA Controller
+
+maintainers:
+  - Christian Marangi <ansuelsmth@gmail.com>
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+  QCOM ADM DMA controller provides DMA capabilities for
+  peripheral buses such as NAND and SPI.
+
+properties:
+  compatible:
+    const: qcom,adm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#dma-cells":
+    const: 1
+
+  clocks:
+    items:
+      - description: phandle to the core clock
+      - description: phandle to the iface clock
+
+  clock-names:
+    items:
+      - const: core
+      - const: iface
+
+  resets:
+    items:
+      - description: phandle to the clk reset
+      - description: phandle to the c0 reset
+      - description: phandle to the c1 reset
+      - description: phandle to the c2 reset
+
+  reset-names:
+    items:
+      - const: clk
+      - const: c0
+      - const: c1
+      - const: c2
+
+  qcom,ee:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: indicates the security domain identifier used in the secure world.
+    minimum: 0
+    maximum: 255
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#dma-cells"
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - qcom,ee
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq806x.h>
+    #include <dt-bindings/reset/qcom,gcc-ipq806x.h>
+
+    adm_dma: dma-controller@18300000 {
+        compatible = "qcom,adm";
+        reg = <0x18300000 0x100000>;
+        interrupts = <0 170 0>;
+        #dma-cells = <1>;
+
+        clocks = <&gcc ADM0_CLK>,
+                  <&gcc ADM0_PBUS_CLK>;
+        clock-names = "core", "iface";
+
+        resets = <&gcc ADM0_RESET>,
+                  <&gcc ADM0_C0_RESET>,
+                  <&gcc ADM0_C1_RESET>,
+                  <&gcc ADM0_C2_RESET>;
+        reset-names = "clk", "c0", "c1", "c2";
+        qcom,ee = <0>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/dma/qcom_adm.txt b/Documentation/devicetree/bindings/dma/qcom_adm.txt
deleted file mode 100644
index 9d3b2f917b7b..000000000000
--- a/Documentation/devicetree/bindings/dma/qcom_adm.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-QCOM ADM DMA Controller
-
-Required properties:
-- compatible: must contain "qcom,adm" for IPQ/APQ8064 and MSM8960
-- reg: Address range for DMA registers
-- interrupts: Should contain one interrupt shared by all channels
-- #dma-cells: must be <2>.  First cell denotes the channel number.  Second cell
-  denotes CRCI (client rate control interface) flow control assignment.
-- clocks: Should contain the core clock and interface clock.
-- clock-names: Must contain "core" for the core clock and "iface" for the
-  interface clock.
-- resets: Must contain an entry for each entry in reset names.
-- reset-names: Must include the following entries:
-  - clk
-  - c0
-  - c1
-  - c2
-- qcom,ee: indicates the security domain identifier used in the secure world.
-
-Example:
-		adm_dma: dma@18300000 {
-			compatible = "qcom,adm";
-			reg = <0x18300000 0x100000>;
-			interrupts = <0 170 0>;
-			#dma-cells = <2>;
-
-			clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>;
-			clock-names = "core", "iface";
-
-			resets = <&gcc ADM0_RESET>,
-				<&gcc ADM0_C0_RESET>,
-				<&gcc ADM0_C1_RESET>,
-				<&gcc ADM0_C2_RESET>;
-			reset-names = "clk", "c0", "c1", "c2";
-			qcom,ee = <0>;
-		};
-
-DMA clients must use the format descripted in the dma.txt file, using a three
-cell specifier for each channel.
-
-Each dmas request consists of 3 cells:
- 1. phandle pointing to the DMA controller
- 2. channel number
- 3. CRCI assignment, if applicable.  If no CRCI flow control is required, use 0.
-    The CRCI is used for flow control.  It identifies the peripheral device that
-    is the source/destination for the transferred data.
-
-Example:
-
-	spi4: spi@1a280000 {
-		spi-max-frequency = <50000000>;
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 0>;
-
-		dmas = <&adm_dma 6 9>,
-			<&adm_dma 5 10>;
-		dma-names = "rx", "tx";
-	};
-- 
2.37.2


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

* [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm
  2022-09-14 14:04 [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Christian Marangi
@ 2022-09-14 14:04 ` Christian Marangi
  2022-09-16 18:53   ` Rob Herring
  2022-09-14 16:47 ` [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Rob Herring
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Christian Marangi @ 2022-09-14 14:04 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Vinod Koul,
	Rob Herring, Krzysztof Kozlowski, Christian Marangi,
	linux-arm-msm, dmaengine, devicetree, linux-kernel

qcom,adm require an additional reset for the pbus line. Add this missing
reset to match the current implementation on ipq806x.dtsi.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
 Documentation/devicetree/bindings/dma/qcom,adm.yaml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/dma/qcom,adm.yaml b/Documentation/devicetree/bindings/dma/qcom,adm.yaml
index 6c08245bf5d5..6a9d7bc74aff 100644
--- a/Documentation/devicetree/bindings/dma/qcom,adm.yaml
+++ b/Documentation/devicetree/bindings/dma/qcom,adm.yaml
@@ -40,6 +40,7 @@ properties:
   resets:
     items:
       - description: phandle to the clk reset
+      - description: phandle to the pbus reset
       - description: phandle to the c0 reset
       - description: phandle to the c1 reset
       - description: phandle to the c2 reset
@@ -47,6 +48,7 @@ properties:
   reset-names:
     items:
       - const: clk
+      - const: pbus
       - const: c0
       - const: c1
       - const: c2
@@ -86,10 +88,11 @@ examples:
         clock-names = "core", "iface";
 
         resets = <&gcc ADM0_RESET>,
+                  <&gcc ADM0_PBUS_RESET>,
                   <&gcc ADM0_C0_RESET>,
                   <&gcc ADM0_C1_RESET>,
                   <&gcc ADM0_C2_RESET>;
-        reset-names = "clk", "c0", "c1", "c2";
+        reset-names = "clk", "pbus", "c0", "c1", "c2";
         qcom,ee = <0>;
     };
 
-- 
2.37.2


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

* Re: [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema
  2022-09-14 14:04 [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Christian Marangi
  2022-09-14 14:04 ` [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm Christian Marangi
@ 2022-09-14 16:47 ` Rob Herring
  2022-09-14 16:57   ` Christian Marangi
  2022-09-16 18:53 ` Rob Herring
  2022-09-29 16:32 ` Vinod Koul
  3 siblings, 1 reply; 7+ messages in thread
From: Rob Herring @ 2022-09-14 16:47 UTC (permalink / raw)
  To: Christian Marangi
  Cc: dmaengine, Andy Gross, Konrad Dybcio, linux-arm-msm, Rob Herring,
	Krzysztof Kozlowski, linux-kernel, Vinod Koul, devicetree,
	Bjorn Andersson

On Wed, 14 Sep 2022 16:04:25 +0200, Christian Marangi wrote:
> Rework the qcom,adm Documentation to yaml schema.
> This is not a pure conversion since originally the driver has changed
> implementation for the #dma-cells and was wrong from the start.
> Also the driver now handles the common DMA clients implementation with
> the first cell that denotes the channel number and nothing else since
> the client will have to provide the crci information via other means.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../devicetree/bindings/dma/qcom,adm.yaml     | 96 +++++++++++++++++++
>  .../devicetree/bindings/dma/qcom_adm.txt      | 61 ------------
>  2 files changed, 96 insertions(+), 61 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/dma/qcom,adm.yaml
>  delete mode 100644 Documentation/devicetree/bindings/dma/qcom_adm.txt
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


dma-controller@18300000: reset-names:1: 'c0' was expected
	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb

dma-controller@18300000: reset-names:2: 'c1' was expected
	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb

dma-controller@18300000: reset-names:3: 'c2' was expected
	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb

dma-controller@18300000: reset-names: ['clk', 'pbus', 'c0', 'c1', 'c2'] is too long
	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb

dma-controller@18300000: resets: [[12, 13], [12, 12], [12, 11], [12, 10], [12, 9]] is too long
	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb


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

* Re: [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema
  2022-09-14 16:47 ` [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Rob Herring
@ 2022-09-14 16:57   ` Christian Marangi
  0 siblings, 0 replies; 7+ messages in thread
From: Christian Marangi @ 2022-09-14 16:57 UTC (permalink / raw)
  To: Rob Herring
  Cc: dmaengine, Andy Gross, Konrad Dybcio, linux-arm-msm, Rob Herring,
	Krzysztof Kozlowski, linux-kernel, Vinod Koul, devicetree,
	Bjorn Andersson

On Wed, Sep 14, 2022 at 11:47:10AM -0500, Rob Herring wrote:
> On Wed, 14 Sep 2022 16:04:25 +0200, Christian Marangi wrote:
> > Rework the qcom,adm Documentation to yaml schema.
> > This is not a pure conversion since originally the driver has changed
> > implementation for the #dma-cells and was wrong from the start.
> > Also the driver now handles the common DMA clients implementation with
> > the first cell that denotes the channel number and nothing else since
> > the client will have to provide the crci information via other means.
> > 
> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > ---
> >  .../devicetree/bindings/dma/qcom,adm.yaml     | 96 +++++++++++++++++++
> >  .../devicetree/bindings/dma/qcom_adm.txt      | 61 ------------
> >  2 files changed, 96 insertions(+), 61 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/dma/qcom,adm.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/dma/qcom_adm.txt
> > 
> 
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
> 
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
> 
> Full log is available here: https://patchwork.ozlabs.org/patch/
> 
> 
> dma-controller@18300000: reset-names:1: 'c0' was expected
> 	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
> 	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb
> 
> dma-controller@18300000: reset-names:2: 'c1' was expected
> 	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
> 	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb
> 
> dma-controller@18300000: reset-names:3: 'c2' was expected
> 	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
> 	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb
> 
> dma-controller@18300000: reset-names: ['clk', 'pbus', 'c0', 'c1', 'c2'] is too long
> 	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
> 	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb
> 
> dma-controller@18300000: resets: [[12, 13], [12, 12], [12, 11], [12, 10], [12, 9]] is too long
> 	arch/arm/boot/dts/qcom-ipq8064-ap148.dtb
> 	arch/arm/boot/dts/qcom-ipq8064-rb3011.dtb
> 

Hi,
I fixed these warning on the second commit of this series.

-- 
	Ansuel

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

* Re: [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema
  2022-09-14 14:04 [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Christian Marangi
  2022-09-14 14:04 ` [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm Christian Marangi
  2022-09-14 16:47 ` [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Rob Herring
@ 2022-09-16 18:53 ` Rob Herring
  2022-09-29 16:32 ` Vinod Koul
  3 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2022-09-16 18:53 UTC (permalink / raw)
  To: Christian Marangi
  Cc: Vinod Koul, Bjorn Andersson, Konrad Dybcio, Krzysztof Kozlowski,
	linux-kernel, dmaengine, Andy Gross, linux-arm-msm, Rob Herring,
	devicetree

On Wed, 14 Sep 2022 16:04:25 +0200, Christian Marangi wrote:
> Rework the qcom,adm Documentation to yaml schema.
> This is not a pure conversion since originally the driver has changed
> implementation for the #dma-cells and was wrong from the start.
> Also the driver now handles the common DMA clients implementation with
> the first cell that denotes the channel number and nothing else since
> the client will have to provide the crci information via other means.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../devicetree/bindings/dma/qcom,adm.yaml     | 96 +++++++++++++++++++
>  .../devicetree/bindings/dma/qcom_adm.txt      | 61 ------------
>  2 files changed, 96 insertions(+), 61 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/dma/qcom,adm.yaml
>  delete mode 100644 Documentation/devicetree/bindings/dma/qcom_adm.txt
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm
  2022-09-14 14:04 ` [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm Christian Marangi
@ 2022-09-16 18:53   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2022-09-16 18:53 UTC (permalink / raw)
  To: Christian Marangi
  Cc: Krzysztof Kozlowski, Rob Herring, linux-kernel, Andy Gross,
	dmaengine, devicetree, Vinod Koul, linux-arm-msm,
	Bjorn Andersson, Konrad Dybcio

On Wed, 14 Sep 2022 16:04:26 +0200, Christian Marangi wrote:
> qcom,adm require an additional reset for the pbus line. Add this missing
> reset to match the current implementation on ipq806x.dtsi.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  Documentation/devicetree/bindings/dma/qcom,adm.yaml | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema
  2022-09-14 14:04 [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Christian Marangi
                   ` (2 preceding siblings ...)
  2022-09-16 18:53 ` Rob Herring
@ 2022-09-29 16:32 ` Vinod Koul
  3 siblings, 0 replies; 7+ messages in thread
From: Vinod Koul @ 2022-09-29 16:32 UTC (permalink / raw)
  To: Christian Marangi
  Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, linux-arm-msm, dmaengine, devicetree,
	linux-kernel

On 14-09-22, 16:04, Christian Marangi wrote:
> Rework the qcom,adm Documentation to yaml schema.
> This is not a pure conversion since originally the driver has changed
> implementation for the #dma-cells and was wrong from the start.
> Also the driver now handles the common DMA clients implementation with
> the first cell that denotes the channel number and nothing else since
> the client will have to provide the crci information via other means.

Applied, thanks

-- 
~Vinod

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

end of thread, other threads:[~2022-09-29 16:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-14 14:04 [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Christian Marangi
2022-09-14 14:04 ` [PATCH v3 2/2] dt-bindings: dma: add additional pbus reset to qcom,adm Christian Marangi
2022-09-16 18:53   ` Rob Herring
2022-09-14 16:47 ` [PATCH v3 1/2] dt-bindings: dma: rework qcom,adm Documentation to yaml schema Rob Herring
2022-09-14 16:57   ` Christian Marangi
2022-09-16 18:53 ` Rob Herring
2022-09-29 16:32 ` Vinod Koul

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).