diff mbox

[v6,1/2] dmaengine: qcom_bam_dma: Add device tree binding

Message ID 1392964986-5207-2-git-send-email-agross@codeaurora.org (mailing list archive)
State New, archived
Headers show

Commit Message

Andy Gross Feb. 21, 2014, 6:43 a.m. UTC
Add device tree binding support for the QCOM BAM DMA driver.

Acked-by: Kumar Gala <galak@codeaurora.org>
Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 .../devicetree/bindings/dma/qcom_bam_dma.txt       |   48 ++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt

Comments

Mark Rutland Feb. 21, 2014, 9:26 a.m. UTC | #1
On Fri, Feb 21, 2014 at 06:43:04AM +0000, Andy Gross wrote:
> Add device tree binding support for the QCOM BAM DMA driver.
> 
> Acked-by: Kumar Gala <galak@codeaurora.org>
> Signed-off-by: Andy Gross <agross@codeaurora.org>
> ---
>  .../devicetree/bindings/dma/qcom_bam_dma.txt       |   48 ++++++++++++++++++++
>  1 file changed, 48 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> 
> diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> new file mode 100644
> index 0000000..86344f1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
> @@ -0,0 +1,48 @@
> +QCOM BAM DMA controller
> +
> +Required properties:
> +- compatible:	Must be "qcom,bam-v1.4.0" for MSM8974 V1
> +		Must be "qcom,bam-v1.4.1" for MSM8974 V2

This looks a bit odd. How about:

- compatible: must contain:
  * "qcom,bam-v1.4.0" for MSM8974 V1
  * "qcom,bam-v1.4.1" for MSM8974 V2

> +- reg: Address range for DMA registers
> +- interrupts: single interrupt for this controller

This device only has a single interrupt? Or there's only one we care
about at the moment?

> +- #dma-cells: must be <1>
> +- clocks: required clock
> +- clock-names: name of clock

Either describe the _exact_ name this binding expects for any clocks
input, or get rid of clock-names. I would prefer the former.

> +- qcom,ee : indicates the active Execution Environment identifier (0-7)
> +
> +Example:
> +
> +	uart-bam: dma@f9984000 = {
> +		compatible = "qcom,bam-v1.4.1";
> +		reg = <0xf9984000 0x15000>;
> +		interrupts = <0 94 0>;
> +		clocks = <&gcc GCC_BAM_DMA_AHB_CLK>;
> +		clock-names = "bam_clk";
> +		#dma-cells = <1>;
> +		qcom,ee = <0>;
> +	};
> +
> +Client:
> +Required properties:
> +- dmas: List of dma channel requests
> +- dma-names: Names of aforementioned requested channels

Do we really need to describe the client binding? Do we not have a
generic DMA binding doc we can refer to?

> +
> +Clients must use the format described in the dma.txt file, using a two cell
> +specifier for each channel.
> +
> +The three cells in order are:
> +  1. A phandle pointing to the DMA controller
> +  2. The channel number

s/three/two/

I think this can go if we refer to a generic document for the client
binding and state in the #dma-cells description that the single dma cell
is the channel number.

Thanks,
Mark.
Andy Gross Feb. 21, 2014, 4:30 p.m. UTC | #2
On Fri, Feb 21, 2014 at 09:26:57AM +0000, Mark Rutland wrote:
> On Fri, Feb 21, 2014 at 06:43:04AM +0000, Andy Gross wrote:
> > Add device tree binding support for the QCOM BAM DMA driver.
> > 
[snip]
> > +Required properties:
> > +- compatible:	Must be "qcom,bam-v1.4.0" for MSM8974 V1
> > +		Must be "qcom,bam-v1.4.1" for MSM8974 V2
> 
> This looks a bit odd. How about:
> 
> - compatible: must contain:
>   * "qcom,bam-v1.4.0" for MSM8974 V1
>   * "qcom,bam-v1.4.1" for MSM8974 V2
> 

Agreed.  I'll fix that.

> > +- reg: Address range for DMA registers
> > +- interrupts: single interrupt for this controller
> 
> This device only has a single interrupt? Or there's only one we care
> about at the moment?
> 

Yes only a single interrupt.  I can remove the s.

> > +- #dma-cells: must be <1>
> > +- clocks: required clock
> > +- clock-names: name of clock
> 
> Either describe the _exact_ name this binding expects for any clocks
> input, or get rid of clock-names. I would prefer the former.

So then I'd use the full name in the driver file.  That's fine.

[snip]
> > +Client:
> > +Required properties:
> > +- dmas: List of dma channel requests
> > +- dma-names: Names of aforementioned requested channels
> 
> Do we really need to describe the client binding? Do we not have a
> generic DMA binding doc we can refer to?
> 

Originally there was more information in the entry.  It was pared down over time
and I didn't go back to referencing the generic doc.  I'll do this and that'll
fix this and your next comment.

[snip]
Mark Rutland Feb. 21, 2014, 5:36 p.m. UTC | #3
On Fri, Feb 21, 2014 at 04:30:53PM +0000, Andy Gross wrote:
> On Fri, Feb 21, 2014 at 09:26:57AM +0000, Mark Rutland wrote:
> > On Fri, Feb 21, 2014 at 06:43:04AM +0000, Andy Gross wrote:
> > > Add device tree binding support for the QCOM BAM DMA driver.
> > > 
> [snip]
> > > +Required properties:
> > > +- compatible:	Must be "qcom,bam-v1.4.0" for MSM8974 V1
> > > +		Must be "qcom,bam-v1.4.1" for MSM8974 V2
> > 
> > This looks a bit odd. How about:
> > 
> > - compatible: must contain:
> >   * "qcom,bam-v1.4.0" for MSM8974 V1
> >   * "qcom,bam-v1.4.1" for MSM8974 V2
> > 
> 
> Agreed.  I'll fix that.
> 
> > > +- reg: Address range for DMA registers
> > > +- interrupts: single interrupt for this controller
> > 
> > This device only has a single interrupt? Or there's only one we care
> > about at the moment?
> > 
> 
> Yes only a single interrupt.  I can remove the s.

Please don't, the interrupts proeprty is standard and shouldn't change.

I was only asking to ensure that all interrupts were described in the
binding, which they are. :)

> 
> > > +- #dma-cells: must be <1>
> > > +- clocks: required clock
> > > +- clock-names: name of clock
> > 
> > Either describe the _exact_ name this binding expects for any clocks
> > input, or get rid of clock-names. I would prefer the former.
> 
> So then I'd use the full name in the driver file.  That's fine.

Yup. 

> 
> [snip]
> > > +Client:
> > > +Required properties:
> > > +- dmas: List of dma channel requests
> > > +- dma-names: Names of aforementioned requested channels
> > 
> > Do we really need to describe the client binding? Do we not have a
> > generic DMA binding doc we can refer to?
> > 
> 
> Originally there was more information in the entry.  It was pared down over time
> and I didn't go back to referencing the generic doc.  I'll do this and that'll
> fix this and your next comment.

Sounds good!

Cheers,
Mark.
Andy Gross Feb. 21, 2014, 7:02 p.m. UTC | #4
On Fri, Feb 21, 2014 at 05:36:47PM +0000, Mark Rutland wrote:
[snip]
> > 
> > Yes only a single interrupt.  I can remove the s.
> 
> Please don't, the interrupts proeprty is standard and shouldn't change.
> 
> I was only asking to ensure that all interrupts were described in the
> binding, which they are. :)
> 

Responding to emails before coffee is bad.....
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
new file mode 100644
index 0000000..86344f1
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
@@ -0,0 +1,48 @@ 
+QCOM BAM DMA controller
+
+Required properties:
+- compatible:	Must be "qcom,bam-v1.4.0" for MSM8974 V1
+		Must be "qcom,bam-v1.4.1" for MSM8974 V2
+- reg: Address range for DMA registers
+- interrupts: single interrupt for this controller
+- #dma-cells: must be <1>
+- clocks: required clock
+- clock-names: name of clock
+- qcom,ee : indicates the active Execution Environment identifier (0-7)
+
+Example:
+
+	uart-bam: dma@f9984000 = {
+		compatible = "qcom,bam-v1.4.1";
+		reg = <0xf9984000 0x15000>;
+		interrupts = <0 94 0>;
+		clocks = <&gcc GCC_BAM_DMA_AHB_CLK>;
+		clock-names = "bam_clk";
+		#dma-cells = <1>;
+		qcom,ee = <0>;
+	};
+
+Client:
+Required properties:
+- dmas: List of dma channel requests
+- dma-names: Names of aforementioned requested channels
+
+Clients must use the format described in the dma.txt file, using a two cell
+specifier for each channel.
+
+The three cells in order are:
+  1. A phandle pointing to the DMA controller
+  2. The channel number
+
+Example:
+	serial@f991e000 {
+		compatible = "qcom,msm-uart";
+		reg = <0xf991e000 0x1000>
+			<0xf9944000 0x19000>;
+		interrupts = <0 108 0>;
+		clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+		clock-names = "core", "iface";
+
+		dmas = <&uart-bam 0>, <&uart-bam 1>;
+		dma-names = "rx", "tx";
+	};