diff mbox series

ARM: dts: at91: sama5d2: fix CAN message ram offset and size

Message ID 20201203091949.9015-1-nicolas.ferre@microchip.com (mailing list archive)
State New, archived
Headers show
Series ARM: dts: at91: sama5d2: fix CAN message ram offset and size | expand

Commit Message

Nicolas Ferre Dec. 3, 2020, 9:19 a.m. UTC
From: Nicolas Ferre <nicolas.ferre@microchip.com>

CAN0 and CAN1 instances share the same message ram configured
at 0x210000 on sama5d2 Linux systems.
According to current configuration of CAN0, we need 0x1c00 bytes
so that the CAN1 don't overlap its message ram:
64 x RX FIFO0 elements => 64 x 72 bytes
32 x TXE (TX Event FIFO) elements => 32 x 8 bytes
32 x TXB (TX Buffer) elements => 32 x 72 bytes
So a total of 7168 bytes (0x1C00).

Fix offset to match this needed size.
Make the CAN0 message ram ioremap match exactly this size so that is
easily understandable.  Adapt CAN1 size accordingly.

Reported-by: Dan Sneddon <dan.sneddon@microchip.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Tested-by: Cristian Birsan <cristian.birsan@microchip.com>
Fixes: bc6d5d7666b7 ("ARM: dts: at91: sama5d2: add m_can nodes")
Cc: stable@vger.kernel.org # v4.13+
---
 arch/arm/boot/dts/sama5d2.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Alexandre Belloni Dec. 3, 2020, 7:47 p.m. UTC | #1
On Thu, 3 Dec 2020 10:19:49 +0100, nicolas.ferre@microchip.com wrote:
> CAN0 and CAN1 instances share the same message ram configured
> at 0x210000 on sama5d2 Linux systems.
> According to current configuration of CAN0, we need 0x1c00 bytes
> so that the CAN1 don't overlap its message ram:
> 64 x RX FIFO0 elements => 64 x 72 bytes
> 32 x TXE (TX Event FIFO) elements => 32 x 8 bytes
> 32 x TXB (TX Buffer) elements => 32 x 72 bytes
> So a total of 7168 bytes (0x1C00).
> 
> [...]

Applied, thanks!

[1/1] ARM: dts: at91: sama5d2: fix CAN message ram offset and size
      commit: bee3d7266dc3658d40c3d36074873b1299591f11

Best regards,
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 2ddc85dff8ce..8f3c40e5b7ca 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -724,7 +724,7 @@  AT91_XDMAC_DT_PERID(31))>,
 
 			can0: can@f8054000 {
 				compatible = "bosch,m_can";
-				reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
+				reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1130,7 +1130,7 @@  AT91_XDMAC_DT_PERID(33))>,
 
 			can1: can@fc050000 {
 				compatible = "bosch,m_can";
-				reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
+				reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1140,7 +1140,7 @@  can1: can@fc050000 {
 				assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
 				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
 				assigned-clock-rates = <40000000>;
-				bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
+				bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
 				status = "disabled";
 			};