linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
@ 2008-01-22 21:13 Kumar Gala
  2008-01-22 21:30 ` Timur Tabi
  0 siblings, 1 reply; 5+ messages in thread
From: Kumar Gala @ 2008-01-22 21:13 UTC (permalink / raw)
  To: Timur Tabi, Scott Wood; +Cc: linuxppc-dev

Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---

Guys please review and make sure I got all your previous comments fixed
up.  I've added cell-index. and the examples should represent real HW.

 Documentation/powerpc/booting-without-of.txt |  128 ++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index da98154..3584c33 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -2615,6 +2615,134 @@ platforms are moved over to use the flattened-device-tree model.
        - clock-frequency  : The frequency of the input clock, which typically
                             comes from an on-board dedicated oscillator.

+    * Freescale 83xx DMA Controller
+
+    Freescale PowerPC 83xx have on chip general purpose DMA controllers.
+
+    Required properties:
+
+    - compatible        : compatible list, contains 2 entries, first is
+			 "fsl,CHIP-dma", where CHIP is the processor
+			 (mpc8349, mpc8360, etc.) and the second is
+			 "fsl,elo-dma"
+    - reg               : <registers mapping for DMA general status reg>
+    - ranges 		: Should be defined as specified in 1) to describe the
+			  DMA controller channels.
+    - cell-index        : controller index.  0 for controller @ 0x8100
+    - interrupts        : <interrupt mapping for DMA IRQ>
+    - interrupt-parent  : optional, if needed for interrupt mapping
+
+
+    - DMA channel nodes:
+	    - compatible        : compatible list, contains 2 entries, first is
+				 "fsl,CHIP-dma-channel", where CHIP is the processor
+				 (mpc8349, mpc8350, etc.) and the second is
+				 "fsl,elo-dma-channel"
+	    - reg               : <registers mapping for channel>
+	    - cell-index        : dma channel index starts at 0.
+
+    Optional properties:
+	    - interrupts        : <interrupt mapping for DMA channel IRQ>
+				  (on 83xx this is expected to be identical to
+				   the interrupts property of the parent node)
+	    - interrupt-parent  : optional, if needed for interrupt mapping
+
+  Example:
+	dma@82a8 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
+		reg = <82a8 4>;
+		ranges = <0 8100 1a4>;
+		interrupt-parent = <&ipic>;
+		interrupts = <47 8>;
+		cell-index = <0>;
+		dma-channel@0 {
+			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+			cell-index = <0>;
+			reg = <0 80>;
+		};
+		dma-channel@80 {
+			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+			cell-index = <1>;
+			reg = <80 80>;
+		};
+		dma-channel@100 {
+			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+			cell-index = <2>;
+			reg = <100 80>;
+		};
+		dma-channel@180 {
+			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+			cell-index = <3>;
+			reg = <180 80>;
+		};
+	};
+
+   * Freescale 85xx/86xx DMA Controller
+
+    Freescale PowerPC 85xx/86xx have on chip general purpose DMA controllers.
+
+    Required properties:
+
+    - compatible        : compatible list, contains 2 entries, first is
+			 "fsl,CHIP-dma", where CHIP is the processor
+			 (mpc8540, mpc8540, etc.) and the second is
+			 "fsl,eloplus-dma"
+    - reg               : <registers mapping for DMA general status reg>
+    - cell-index        : controller index.  0 for controller @ 0x21000,
+                                             1 for controller @ 0xc000
+    - ranges 		: Should be defined as specified in 1) to describe the
+			  DMA controller channels.
+
+    - DMA channel nodes:
+	    - compatible        : compatible list, contains 2 entries, first is
+				 "fsl,CHIP-dma-channel", where CHIP is the processor
+				 (mpc8540, mpc8560, etc.) and the second is
+				 "fsl,eloplus-dma-channel"
+	    - cell-index        : dma channel index starts at 0.
+	    - reg               : <registers mapping for channel>
+	    - interrupts        : <interrupt mapping for DMA channel IRQ>
+	    - interrupt-parent  : optional, if needed for interrupt mapping
+
+  Example:
+	dma@21300 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
+		reg = <21300 4>;
+		ranges = <0 21100 200>;
+		cell-index = <0>;
+		dma-channel@0 {
+			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
+			reg = <0 80>;
+			cell-index = <0>;
+			interrupt-parent = <&mpic>;
+			interrupts = <14 2>;
+		};
+		dma-channel@80 {
+			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
+			reg = <80 80>;
+			cell-index = <1>;
+			interrupt-parent = <&mpic>;
+			interrupts = <15 2>;
+		};
+		dma-channel@100 {
+			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
+			reg = <100 80>;
+			cell-index = <2>;
+			interrupt-parent = <&mpic>;
+			interrupts = <16 2>;
+		};
+		dma-channel@180 {
+			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
+			reg = <180 80>;
+			cell-index = <3>;
+			interrupt-parent = <&mpic>;
+			interrupts = <17 2>;
+		};
+	};
+

    More devices will be defined as this spec matures.

-- 
1.5.3.7

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

* Re: [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
  2008-01-22 21:13 [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes Kumar Gala
@ 2008-01-22 21:30 ` Timur Tabi
  2008-01-22 21:48   ` Scott Wood
  2008-01-22 22:02   ` Kumar Gala
  0 siblings, 2 replies; 5+ messages in thread
From: Timur Tabi @ 2008-01-22 21:30 UTC (permalink / raw)
  To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev

Kumar Gala wrote:
> Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
> Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> ---
> 
> Guys please review and make sure I got all your previous comments fixed
> up.  I've added cell-index. and the examples should represent real HW.
> 
>  Documentation/powerpc/booting-without-of.txt |  128 ++++++++++++++++++++++++++
>  1 files changed, 128 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
> index da98154..3584c33 100644
> --- a/Documentation/powerpc/booting-without-of.txt
> +++ b/Documentation/powerpc/booting-without-of.txt
> @@ -2615,6 +2615,134 @@ platforms are moved over to use the flattened-device-tree model.
>         - clock-frequency  : The frequency of the input clock, which typically
>                              comes from an on-board dedicated oscillator.
> 
> +    * Freescale 83xx DMA Controller
> +
> +    Freescale PowerPC 83xx have on chip general purpose DMA controllers.
> +
> +    Required properties:
> +
> +    - compatible        : compatible list, contains 2 entries, first is
> +			 "fsl,CHIP-dma", where CHIP is the processor
> +			 (mpc8349, mpc8360, etc.) and the second is
> +			 "fsl,elo-dma"
> +    - reg               : <registers mapping for DMA general status reg>
> +    - ranges 		: Should be defined as specified in 1) to describe the
> +			  DMA controller channels.

What does "Should be defined as specified in 1)" mean?

> +    - cell-index        : controller index.  0 for controller @ 0x8100

This should be more generic.  I believe for each of our SoCs, we designation one 
DMA controller to be "DMA Controller 1", and that one should have a cell-index 
of "0".

> +    - interrupts        : <interrupt mapping for DMA IRQ>
> +    - interrupt-parent  : optional, if needed for interrupt mapping

On 83xx, all DMA channels share the same interrupt?  Couldn't we just specify 
the same IRQ in each channel's node, so that they look the same across 83xx, 
85xx, and 86xx?  My sound driver doesn't use Extended Mode, but it does check 
for "fsl,8610-dma-channel".  I'm thinking that maybe I should change to to look 
for "elo" or "eloplus", but it would be nice if we could make the DMA node for 
an 86xx SoC compatible with a driver that expects "fsl,elo-dma-channel".

-- 
Timur Tabi
Linux kernel developer at Freescale

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

* Re: [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
  2008-01-22 21:30 ` Timur Tabi
@ 2008-01-22 21:48   ` Scott Wood
  2008-01-22 22:00     ` Kumar Gala
  2008-01-22 22:02   ` Kumar Gala
  1 sibling, 1 reply; 5+ messages in thread
From: Scott Wood @ 2008-01-22 21:48 UTC (permalink / raw)
  To: Timur Tabi; +Cc: linuxppc-dev

Timur Tabi wrote:
> On 83xx, all DMA channels share the same interrupt?

Yes.

> Couldn't we just 
> specify the same IRQ in each channel's node, so that they look the same 
> across 83xx, 85xx, and 86xx?

The consensus that I thought we had reached was to let 83xx specify the 
interrupt in the controller node (to make things simple for a driver 
using the shared summary register rather than registering four handlers 
for the same IRQ), but require that it also be in the channel node, and 
that if there is an interrupt in the controller node, that it be the 
same as in all the channels.

> My sound driver doesn't use Extended Mode, 
> but it does check for "fsl,8610-dma-channel".  I'm thinking that maybe I 
> should change to to look for "elo" or "eloplus", but it would be nice if 
> we could make the DMA node for an 86xx SoC compatible with a driver that 
> expects "fsl,elo-dma-channel".

Sure it'd be nice, but it's not possible without going back in time and 
convincing the hardware people to make them 100% compatible.

-Scott

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

* Re: [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
  2008-01-22 21:48   ` Scott Wood
@ 2008-01-22 22:00     ` Kumar Gala
  0 siblings, 0 replies; 5+ messages in thread
From: Kumar Gala @ 2008-01-22 22:00 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Timur Tabi


On Jan 22, 2008, at 3:48 PM, Scott Wood wrote:

> Timur Tabi wrote:
>> On 83xx, all DMA channels share the same interrupt?
>
> Yes.
>
>> Couldn't we just specify the same IRQ in each channel's node, so  
>> that they look the same across 83xx, 85xx, and 86xx?
>
> The consensus that I thought we had reached was to let 83xx specify  
> the interrupt in the controller node (to make things simple for a  
> driver using the shared summary register rather than registering  
> four handlers for the same IRQ), but require that it also be in the  
> channel node, and that if there is an interrupt in the controller  
> node, that it be the same as in all the channels.

This was my understanding.. however we might not be documentation that  
clearly at this point.

>> My sound driver doesn't use Extended Mode, but it does check for  
>> "fsl,8610-dma-channel".  I'm thinking that maybe I should change to  
>> to look for "elo" or "eloplus", but it would be nice if we could  
>> make the DMA node for an 86xx SoC compatible with a driver that  
>> expects "fsl,elo-dma-channel".
>
> Sure it'd be nice, but it's not possible without going back in time  
> and convincing the hardware people to make them 100% compatible.

exactly.  You forget minor things like 83xx reg set is little endian  
and 85xx/86xx is big endian.

- k

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

* Re: [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
  2008-01-22 21:30 ` Timur Tabi
  2008-01-22 21:48   ` Scott Wood
@ 2008-01-22 22:02   ` Kumar Gala
  1 sibling, 0 replies; 5+ messages in thread
From: Kumar Gala @ 2008-01-22 22:02 UTC (permalink / raw)
  To: Timur Tabi; +Cc: Scott Wood, linuxppc-dev


On Jan 22, 2008, at 3:30 PM, Timur Tabi wrote:

> Kumar Gala wrote:
>> Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
>> Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
>> ---
>> Guys please review and make sure I got all your previous comments  
>> fixed
>> up.  I've added cell-index. and the examples should represent real  
>> HW.
>> Documentation/powerpc/booting-without-of.txt |  128 ++++++++++++++++ 
>> ++++++++++
>> 1 files changed, 128 insertions(+), 0 deletions(-)
>> diff --git a/Documentation/powerpc/booting-without-of.txt b/ 
>> Documentation/powerpc/booting-without-of.txt
>> index da98154..3584c33 100644
>> --- a/Documentation/powerpc/booting-without-of.txt
>> +++ b/Documentation/powerpc/booting-without-of.txt
>> @@ -2615,6 +2615,134 @@ platforms are moved over to use the  
>> flattened-device-tree model.
>>        - clock-frequency  : The frequency of the input clock, which  
>> typically
>>                             comes from an on-board dedicated  
>> oscillator.
>> +    * Freescale 83xx DMA Controller
>> +
>> +    Freescale PowerPC 83xx have on chip general purpose DMA  
>> controllers.
>> +
>> +    Required properties:
>> +
>> +    - compatible        : compatible list, contains 2 entries,  
>> first is
>> +			 "fsl,CHIP-dma", where CHIP is the processor
>> +			 (mpc8349, mpc8360, etc.) and the second is
>> +			 "fsl,elo-dma"
>> +    - reg               : <registers mapping for DMA general  
>> status reg>
>> +    - ranges 		: Should be defined as specified in 1) to describe  
>> the
>> +			  DMA controller channels.
>
> What does "Should be defined as specified in 1)" mean?

Its referring to section 1 of the doc on ranges.  Other nodes use this  
description for ranges. (soc, muram)

>> +    - cell-index        : controller index.  0 for controller @  
>> 0x8100
>
> This should be more generic.  I believe for each of our SoCs, we  
> designation one DMA controller to be "DMA Controller 1", and that  
> one should have a cell-index of "0".

Ok, on 83xx that controller is always at offset 0x8100.

- k

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

end of thread, other threads:[~2008-01-22 22:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-22 21:13 [PATCH] [POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes Kumar Gala
2008-01-22 21:30 ` Timur Tabi
2008-01-22 21:48   ` Scott Wood
2008-01-22 22:00     ` Kumar Gala
2008-01-22 22:02   ` Kumar Gala

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