On Tue, Sep 03, 2013 at 10:01:50AM +0100, Hongbo Zhang wrote:OK, I will update the reg description to make it more clear.On 09/02/2013 11:58 PM, Mark Rutland wrote:Ok.Hi,In this patch 1/3 I revise the doc to make it clear we have Elo and
On Fri, Aug 30, 2013 at 12:26:19PM +0100, hongbo.zhang@xxxxxxxxxxxxx wrote:From: Hongbo Zhang <hongbo.zhang@xxxxxxxxxxxxx>I was under the impression EloPlus was the previous revision. Should
Freescale QorIQ T4 and B4 introduce new 8-channel DMA engines, this patch adds
the device tree nodes for them.
Signed-off-by: Hongbo Zhang <hongbo.zhang@xxxxxxxxxxxxx>
---
.../devicetree/bindings/powerpc/fsl/dma.txt | 67 ++++++++++++++++
arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 4 +-
arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi | 82 ++++++++++++++++++++
arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi | 82 ++++++++++++++++++++
arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 4 +-
5 files changed, 235 insertions(+), 4 deletions(-)
create mode 100644 arch/powerpc/boot/dts/fsl/elo3-dma-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/elo3-dma-1.dtsi
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/dma.txt b/Documentation/devicetree/bindings/powerpc/fsl/dma.txt
index ddf17af..332ac77 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/dma.txt
+++ b/Documentation/devicetree/bindings/powerpc/fsl/dma.txt
@@ -126,6 +126,73 @@ Example:
};
};
+** Freescale Elo3 DMA Controller
+ This is EloPlus controller with 8 channels, used in Freescale Txxx and Bxxx
that say Elo3, or is Elo3 considered to be an EloPlus implementation?
EloPlus, and I'm adding another new Elo3. Yes the only difference
between Elo3 and EloPlus is channel numbers(8 channels vs 4 channels),
so we can call "Elo3 is an 8-channel EloPlus"
I think there should at least be a description of which channels eachYes, each is a status register for four channels, you got it -- this+ series chips, such as t1040, t4240, b4860.The example has two reg entries. What both are should be specified. From
+
+Required properties:
+
+- compatible : must include "fsl,elo3-dma"
+- reg : <registers specifier for DMA general status reg>
what you described last time, it sounds like each is a status register
for four channels.
Presumably the first covers the channels at 0x0,0x80,0x100,0x180, and
the second covers the channels at 0x300,0x380,0x400,0x480? If the
registers have specific names in a datasheet, it would be worth
mentioning them.
means my statement works.
Is it necessary to specify all the register names?
I can describe my two registers, but in other cases the reg entryies can
cover tens even hundreds of registers, just a summary is OK I think.
reg entry corresponds to. I see this hasn't been done so far for the
older Elo DMAs, but they only had 4 channels max, and one status reg.
Yes, for this Elo3 DMA IP block, all the 8 channels are always on.Ok.If the specification of the DMA controller allows for more channels, itThis DMA controller doesn't allows for more channels. (Even if it does,
may be worth describing that case now.
it should be another new controller)
Ok, I guess that makes sense.It is used to map the reg values of DMA channels.+- ranges : describes the mapping between the address space of theThis looks odd as a required property, and I'm slightly confused. Is
+ DMA channels and the address space of the DMA controller
this used to map the reg values of the DMA channels, or is it used when
mapping the DMA address space (for which dma-ranges exists in ePAPR and
other bindings).
I see, so this reg represents a channels channel specific registersYes, they are offsets of control registers within dma controller, but+What does this represent? What are valid values?
+- DMA channel nodes:
+ - compatible : must include "fsl,eloplus-dma-channel"
+ - reg : <registers specifier for channel>
In the example below it looks like these are offsets of control
registers within the dma controller.
the contents in these registers are for dma channels.
Physically we have dma controller registers and dma channel registers,
they are in one continuous physical address space, we divide all these
registers into two controller/channel parts, according to contents in
these registers, common status registers for all channels are called dma
controller registers, otherwise channel specific registers are called
dma channel registers.
(which are distinct from the shared status registers). I was confused
initially as to what address space they were in, but that makes sense
with your description of ranges above.
My question here was stupid, thanks for the explanation :)If the reg property may have any value, how do they get mapped to bitsIn fact, each channel has its own status register(and also other
in the status register(s)?
registers), the dma controller status register is just aggregation of
all channel status register. (that seems duplicated somehow, maybe this
is due to hardware compatibility with legacy one, and the device tree
just describes the physical hardware without lie)
I assume that on any El03 DMA, there won't be a case where you can'tMay some channels be unusable for some reason, or will all eightSorry, not get your point clearly, maybe you are clear now because of my
channels be wired on any given Elo3 DMA?
previous explanations.
describe the channel at 0x80, for instance. It will always be present
(but it might not be wired up to anything any therefore be useful)?
This was related to my concerns about the status register description --
if the channels at 0x0,0x80,0x100,0x180 weren't wired, what would get
described in the dt? I guess that would never actually happen because
all 8 channels must always be present in the Elo3 IP block.
Thanks,
Mark.