1 # SPDX-License-Identifier: GPL-2.0
4 $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Bosch MCAN controller
9 description: Bosch MCAN controller for CAN bus
12 - Chandrasekar Ramakrishnan <rcsekar@samsung.com>
15 - $ref: can-controller.yaml#
23 - description: M_CAN registers map
24 - description: message RAM
33 - description: interrupt line0
34 - description: interrupt line1
45 - description: peripheral clock
46 - description: bus clock
55 Message RAM configuration data.
56 Multiple M_CAN instances can share the same Message RAM
57 and each element(e.g Rx FIFO or Tx Buffer and etc) number
58 in Message RAM is also configurable, so this property is
59 telling driver how the shared or private Message RAM are
60 used by this M_CAN controller.
62 The format should be as follows:
63 <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
64 The 'offset' is an address offset of the Message RAM where
65 the following elements start from. This is usually set to
66 0x0 if you're using a private Message RAM. The remain cells
67 are used to specify how many elements are used for each FIFO/Buffer.
69 M_CAN includes the following elements according to user manual:
70 11-bit Filter 0-128 elements / 0-128 words
71 29-bit Filter 0-64 elements / 0-128 words
72 Rx FIFO 0 0-64 elements / 0-1152 words
73 Rx FIFO 1 0-64 elements / 0-1152 words
74 Rx Buffers 0-64 elements / 0-1152 words
75 Tx Event FIFO 0-32 elements / 0-64 words
76 Tx Buffers 0-32 elements / 0-576 words
78 Please refer to 2.4.1 Message RAM Configuration in Bosch
79 M_CAN user manual for details.
80 $ref: /schemas/types.yaml#/definitions/int32-array
82 - description: The 'offset' is an address offset of the Message RAM where
83 the following elements start from. This is usually set to 0x0 if
84 you're using a private Message RAM.
86 - description: 11-bit Filter 0-128 elements / 0-128 words
89 - description: 29-bit Filter 0-64 elements / 0-128 words
92 - description: Rx FIFO 0 0-64 elements / 0-1152 words
95 - description: Rx FIFO 1 0-64 elements / 0-1152 words
98 - description: Rx Buffers 0-64 elements / 0-1152 words
101 - description: Tx Event FIFO 0-32 elements / 0-64 words
104 - description: Tx Buffers 0-32 elements / 0-576 words
111 Power domain provider node and an args specifier containing
112 the can device id value.
116 $ref: can-transceiver.yaml#
129 unevaluatedProperties: false
133 // Example with interrupts
134 #include <dt-bindings/clock/imx6sx-clock.h>
136 compatible = "bosch,m_can";
137 reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
138 reg-names = "m_can", "message_ram";
139 interrupts = <0 114 0x04>, <0 114 0x04>;
140 interrupt-names = "int0", "int1";
141 clocks = <&clks IMX6SX_CLK_CANFD>,
142 <&clks IMX6SX_CLK_CANFD>;
143 clock-names = "hclk", "cclk";
144 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
147 max-bitrate = <5000000>;
152 // Example with timer polling
153 #include <dt-bindings/clock/imx6sx-clock.h>
155 compatible = "bosch,m_can";
156 reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
157 reg-names = "m_can", "message_ram";
158 clocks = <&clks IMX6SX_CLK_CANFD>,
159 <&clks IMX6SX_CLK_CANFD>;
160 clock-names = "hclk", "cclk";
161 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
164 max-bitrate = <5000000>;