Skip to content

Commit 0920ccd

Browse files
passgatmarckleinebudde
authored andcommitted
ARM: dts: stm32: add CAN support on stm32f746
Add support for bxcan (Basic eXtended CAN controller) to STM32F746. The chip contains three CAN peripherals, CAN1 and CAN2 in dual peripheral configuration and CAN3 in single peripheral configuration: - Dual CAN peripheral configuration: * CAN1: Primary bxCAN for managing the communication between a secondary bxCAN and the 512-byte SRAM memory. * CAN2: Secondary bxCAN with no direct access to the SRAM memory. This means that the two bxCAN cells share the 512-byte SRAM memory and CAN2 can't be used without enabling CAN1. - Single CAN peripheral configuration: * CAN3: Primary bxCAN with dedicated Memory Access Controller unit and 512-byte SRAM memory. ------------------------------------------------------------------------- | features | CAN1 | CAN2 | CAN 3 | ------------------------------------------------------------------------- | SRAM | 512-byte shared between CAN1 & CAN2 | 512-byte | ------------------------------------------------------------------------- | Filters | 26 filters shared between CAN1 & CAN2 | 14 filters | ------------------------------------------------------------------------- Signed-off-by: Dario Binacchi <[email protected]> Link: https://lore.kernel.org/all/[email protected] Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 85a79b9 commit 0920ccd

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

arch/arm/boot/dts/stm32f746.dtsi

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,23 @@
257257
status = "disabled";
258258
};
259259

260+
can3: can@40003400 {
261+
compatible = "st,stm32f4-bxcan";
262+
reg = <0x40003400 0x200>;
263+
interrupts = <104>, <105>, <106>, <107>;
264+
interrupt-names = "tx", "rx0", "rx1", "sce";
265+
resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
266+
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
267+
st,gcan = <&gcan3>;
268+
status = "disabled";
269+
};
270+
271+
gcan3: gcan@40003600 {
272+
compatible = "st,stm32f4-gcan", "syscon";
273+
reg = <0x40003600 0x200>;
274+
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
275+
};
276+
260277
usart2: serial@40004400 {
261278
compatible = "st,stm32f7-uart";
262279
reg = <0x40004400 0x400>;
@@ -337,6 +354,36 @@
337354
status = "disabled";
338355
};
339356

357+
can1: can@40006400 {
358+
compatible = "st,stm32f4-bxcan";
359+
reg = <0x40006400 0x200>;
360+
interrupts = <19>, <20>, <21>, <22>;
361+
interrupt-names = "tx", "rx0", "rx1", "sce";
362+
resets = <&rcc STM32F7_APB1_RESET(CAN1)>;
363+
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
364+
st,can-primary;
365+
st,gcan = <&gcan1>;
366+
status = "disabled";
367+
};
368+
369+
gcan1: gcan@40006600 {
370+
compatible = "st,stm32f4-gcan", "syscon";
371+
reg = <0x40006600 0x200>;
372+
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
373+
};
374+
375+
can2: can@40006800 {
376+
compatible = "st,stm32f4-bxcan";
377+
reg = <0x40006800 0x200>;
378+
interrupts = <63>, <64>, <65>, <66>;
379+
interrupt-names = "tx", "rx0", "rx1", "sce";
380+
resets = <&rcc STM32F7_APB1_RESET(CAN2)>;
381+
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN2)>;
382+
st,can-secondary;
383+
st,gcan = <&gcan1>;
384+
status = "disabled";
385+
};
386+
340387
cec: cec@40006c00 {
341388
compatible = "st,stm32-cec";
342389
reg = <0x40006C00 0x400>;

0 commit comments

Comments
 (0)