2012-08-02 16:16:29 +08:00
|
|
|
Coherency fabric
|
|
|
|
----------------
|
2014-04-14 21:47:06 +08:00
|
|
|
Available on Marvell SOCs: Armada 370, Armada 375, Armada 38x and Armada XP
|
2012-08-02 16:16:29 +08:00
|
|
|
|
|
|
|
Required properties:
|
|
|
|
|
2014-04-14 21:46:59 +08:00
|
|
|
- compatible: the possible values are:
|
|
|
|
|
|
|
|
* "marvell,coherency-fabric", to be used for the coherency fabric of
|
|
|
|
the Armada 370 and Armada XP.
|
2012-10-13 01:20:36 +08:00
|
|
|
|
ARM: mvebu: add Armada 375 support to the coherency code
The Armada 375, like the Armada 370 and Armada XP, has a coherency
unit. However, unlike the coherency unit of 370/XP which does both CPU
and I/O coherency, the one on Armada 735 only does I/O
coherency. Therefore, instead of having two sets of registers (the
first one being used mainly to register each CPU in the coherency
fabric, the second one being used for the I/O coherency barrier), it
has only one set of register (for the I/O coherency barrier).
This commit adds a new "marvell,armada-375-coherency-fabric"
compatible string for this variant of the coherency fabric. The custom
DMA operations, and the way of triggering an I/O barrier is the same
as Armada 370/XP, so the code changes are minimal. However, the
set_cpu_coherent() function is not needed on Armada 375 and will not
work.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397483228-25625-7-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-04-14 21:47:04 +08:00
|
|
|
* "marvell,armada-375-coherency-fabric", for the Armada 375 coherency
|
|
|
|
fabric.
|
|
|
|
|
2014-04-14 21:47:06 +08:00
|
|
|
* "marvell,armada-380-coherency-fabric", for the Armada 38x coherency
|
|
|
|
fabric.
|
|
|
|
|
2012-10-13 01:20:36 +08:00
|
|
|
- reg: Should contain coherency fabric registers location and
|
ARM: mvebu: add Armada 375 support to the coherency code
The Armada 375, like the Armada 370 and Armada XP, has a coherency
unit. However, unlike the coherency unit of 370/XP which does both CPU
and I/O coherency, the one on Armada 735 only does I/O
coherency. Therefore, instead of having two sets of registers (the
first one being used mainly to register each CPU in the coherency
fabric, the second one being used for the I/O coherency barrier), it
has only one set of register (for the I/O coherency barrier).
This commit adds a new "marvell,armada-375-coherency-fabric"
compatible string for this variant of the coherency fabric. The custom
DMA operations, and the way of triggering an I/O barrier is the same
as Armada 370/XP, so the code changes are minimal. However, the
set_cpu_coherent() function is not needed on Armada 375 and will not
work.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397483228-25625-7-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-04-14 21:47:04 +08:00
|
|
|
length.
|
|
|
|
|
|
|
|
* For "marvell,coherency-fabric", the first pair for the coherency
|
|
|
|
fabric registers, second pair for the per-CPU fabric registers.
|
|
|
|
|
|
|
|
* For "marvell,armada-375-coherency-fabric", only one pair is needed
|
|
|
|
for the per-CPU fabric registers.
|
2012-08-02 16:16:29 +08:00
|
|
|
|
2014-04-14 21:47:06 +08:00
|
|
|
* For "marvell,armada-380-coherency-fabric", only one pair is needed
|
|
|
|
for the per-CPU fabric registers.
|
ARM: mvebu: add Armada 375 support to the coherency code
The Armada 375, like the Armada 370 and Armada XP, has a coherency
unit. However, unlike the coherency unit of 370/XP which does both CPU
and I/O coherency, the one on Armada 735 only does I/O
coherency. Therefore, instead of having two sets of registers (the
first one being used mainly to register each CPU in the coherency
fabric, the second one being used for the I/O coherency barrier), it
has only one set of register (for the I/O coherency barrier).
This commit adds a new "marvell,armada-375-coherency-fabric"
compatible string for this variant of the coherency fabric. The custom
DMA operations, and the way of triggering an I/O barrier is the same
as Armada 370/XP, so the code changes are minimal. However, the
set_cpu_coherent() function is not needed on Armada 375 and will not
work.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397483228-25625-7-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-04-14 21:47:04 +08:00
|
|
|
|
|
|
|
Examples:
|
2012-08-02 16:16:29 +08:00
|
|
|
|
|
|
|
coherency-fabric@d0020200 {
|
|
|
|
compatible = "marvell,coherency-fabric";
|
2012-10-13 01:20:36 +08:00
|
|
|
reg = <0xd0020200 0xb0>,
|
|
|
|
<0xd0021810 0x1c>;
|
|
|
|
|
2012-08-02 16:16:29 +08:00
|
|
|
};
|
|
|
|
|
ARM: mvebu: add Armada 375 support to the coherency code
The Armada 375, like the Armada 370 and Armada XP, has a coherency
unit. However, unlike the coherency unit of 370/XP which does both CPU
and I/O coherency, the one on Armada 735 only does I/O
coherency. Therefore, instead of having two sets of registers (the
first one being used mainly to register each CPU in the coherency
fabric, the second one being used for the I/O coherency barrier), it
has only one set of register (for the I/O coherency barrier).
This commit adds a new "marvell,armada-375-coherency-fabric"
compatible string for this variant of the coherency fabric. The custom
DMA operations, and the way of triggering an I/O barrier is the same
as Armada 370/XP, so the code changes are minimal. However, the
set_cpu_coherent() function is not needed on Armada 375 and will not
work.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397483228-25625-7-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-04-14 21:47:04 +08:00
|
|
|
coherency-fabric@21810 {
|
|
|
|
compatible = "marvell,armada-375-coherency-fabric";
|
|
|
|
reg = <0x21810 0x1c>;
|
|
|
|
};
|
|
|
|
|