Message ID | 1392964986-5207-2-git-send-email-agross@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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.
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]
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.
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 --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"; + };