xref: /linux/Documentation/devicetree/bindings/net/can/st,stm32-bxcan.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1e43250c0SDario Binacchi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e43250c0SDario Binacchi%YAML 1.2
3e43250c0SDario Binacchi---
4e43250c0SDario Binacchi$id: http://devicetree.org/schemas/net/can/st,stm32-bxcan.yaml#
5e43250c0SDario Binacchi$schema: http://devicetree.org/meta-schemas/core.yaml#
6e43250c0SDario Binacchi
7e43250c0SDario Binacchititle: STMicroelectronics bxCAN controller
8e43250c0SDario Binacchi
9e43250c0SDario Binacchidescription: STMicroelectronics BxCAN controller for CAN bus
10e43250c0SDario Binacchi
11e43250c0SDario Binacchimaintainers:
12e43250c0SDario Binacchi  - Dario Binacchi <dario.binacchi@amarulasolutions.com>
13e43250c0SDario Binacchi
14e43250c0SDario BinacchiallOf:
15e43250c0SDario Binacchi  - $ref: can-controller.yaml#
16e43250c0SDario Binacchi
17e43250c0SDario Binacchiproperties:
18e43250c0SDario Binacchi  compatible:
19e43250c0SDario Binacchi    enum:
20e43250c0SDario Binacchi      - st,stm32f4-bxcan
21e43250c0SDario Binacchi
22e43250c0SDario Binacchi  st,can-primary:
23e43250c0SDario Binacchi    description:
24*caf78f0fSDario Binacchi      Primary mode of the bxCAN peripheral is only relevant if the chip has
25*caf78f0fSDario Binacchi      two CAN peripherals in dual CAN configuration. In that case they share
26*caf78f0fSDario Binacchi      some of the required logic.
27*caf78f0fSDario Binacchi      Not to be used if the peripheral is in single CAN configuration.
28e43250c0SDario Binacchi      To avoid misunderstandings, it should be noted that ST documentation
29*caf78f0fSDario Binacchi      uses the terms master instead of primary.
30*caf78f0fSDario Binacchi    type: boolean
31*caf78f0fSDario Binacchi
32*caf78f0fSDario Binacchi  st,can-secondary:
33*caf78f0fSDario Binacchi    description:
34*caf78f0fSDario Binacchi      Secondary mode of the bxCAN peripheral is only relevant if the chip
35*caf78f0fSDario Binacchi      has two CAN peripherals in dual CAN configuration. In that case they
36*caf78f0fSDario Binacchi      share some of the required logic.
37*caf78f0fSDario Binacchi      Not to be used if the peripheral is in single CAN configuration.
38*caf78f0fSDario Binacchi      To avoid misunderstandings, it should be noted that ST documentation
39*caf78f0fSDario Binacchi      uses the terms slave instead of secondary.
40e43250c0SDario Binacchi    type: boolean
41e43250c0SDario Binacchi
42e43250c0SDario Binacchi  reg:
43e43250c0SDario Binacchi    maxItems: 1
44e43250c0SDario Binacchi
45e43250c0SDario Binacchi  interrupts:
46e43250c0SDario Binacchi    items:
47e43250c0SDario Binacchi      - description: transmit interrupt
48e43250c0SDario Binacchi      - description: FIFO 0 receive interrupt
49e43250c0SDario Binacchi      - description: FIFO 1 receive interrupt
50e43250c0SDario Binacchi      - description: status change error interrupt
51e43250c0SDario Binacchi
52e43250c0SDario Binacchi  interrupt-names:
53e43250c0SDario Binacchi    items:
54e43250c0SDario Binacchi      - const: tx
55e43250c0SDario Binacchi      - const: rx0
56e43250c0SDario Binacchi      - const: rx1
57e43250c0SDario Binacchi      - const: sce
58e43250c0SDario Binacchi
59e43250c0SDario Binacchi  resets:
60e43250c0SDario Binacchi    maxItems: 1
61e43250c0SDario Binacchi
62e43250c0SDario Binacchi  clocks:
63e43250c0SDario Binacchi    maxItems: 1
64e43250c0SDario Binacchi
65e43250c0SDario Binacchi  st,gcan:
66e43250c0SDario Binacchi    $ref: /schemas/types.yaml#/definitions/phandle-array
67e43250c0SDario Binacchi    description:
68e43250c0SDario Binacchi      The phandle to the gcan node which allows to access the 512-bytes
69e43250c0SDario Binacchi      SRAM memory shared by the two bxCAN cells (CAN1 primary and CAN2
70e43250c0SDario Binacchi      secondary) in dual CAN peripheral configuration.
71e43250c0SDario Binacchi
72e43250c0SDario Binacchirequired:
73e43250c0SDario Binacchi  - compatible
74e43250c0SDario Binacchi  - reg
75e43250c0SDario Binacchi  - interrupts
76e43250c0SDario Binacchi  - resets
77e43250c0SDario Binacchi  - clocks
78e43250c0SDario Binacchi  - st,gcan
79e43250c0SDario Binacchi
80e43250c0SDario BinacchiadditionalProperties: false
81e43250c0SDario Binacchi
82e43250c0SDario Binacchiexamples:
83e43250c0SDario Binacchi  - |
84e43250c0SDario Binacchi    #include <dt-bindings/clock/stm32fx-clock.h>
85e43250c0SDario Binacchi    #include <dt-bindings/mfd/stm32f4-rcc.h>
86e43250c0SDario Binacchi
87e43250c0SDario Binacchi    can1: can@40006400 {
88e43250c0SDario Binacchi        compatible = "st,stm32f4-bxcan";
89e43250c0SDario Binacchi        reg = <0x40006400 0x200>;
90e43250c0SDario Binacchi        interrupts = <19>, <20>, <21>, <22>;
91e43250c0SDario Binacchi        interrupt-names = "tx", "rx0", "rx1", "sce";
92e43250c0SDario Binacchi        resets = <&rcc STM32F4_APB1_RESET(CAN1)>;
93e43250c0SDario Binacchi        clocks = <&rcc 0 STM32F4_APB1_CLOCK(CAN1)>;
94e43250c0SDario Binacchi        st,can-primary;
95e43250c0SDario Binacchi        st,gcan = <&gcan>;
96e43250c0SDario Binacchi    };
97