1824674b5SBenjamin Gaignard# SPDX-License-Identifier: GPL-2.0
2824674b5SBenjamin Gaignard%YAML 1.2
3824674b5SBenjamin Gaignard---
4824674b5SBenjamin Gaignard$id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
5824674b5SBenjamin Gaignard$schema: http://devicetree.org/meta-schemas/core.yaml#
6824674b5SBenjamin Gaignard
7824674b5SBenjamin Gaignardtitle: Bosch MCAN controller Bindings
8824674b5SBenjamin Gaignard
9824674b5SBenjamin Gaignarddescription: Bosch MCAN controller for CAN bus
10824674b5SBenjamin Gaignard
11824674b5SBenjamin Gaignardmaintainers:
12edd056a1SMarc Kleine-Budde  - Chandrasekar Ramakrishnan <rcsekar@samsung.com>
13824674b5SBenjamin Gaignard
14*58212e03SMarc Kleine-BuddeallOf:
15*58212e03SMarc Kleine-Budde  - $ref: can-controller.yaml#
16*58212e03SMarc Kleine-Budde
17824674b5SBenjamin Gaignardproperties:
18824674b5SBenjamin Gaignard  compatible:
19824674b5SBenjamin Gaignard    const: bosch,m_can
20824674b5SBenjamin Gaignard
21824674b5SBenjamin Gaignard  reg:
22824674b5SBenjamin Gaignard    items:
23824674b5SBenjamin Gaignard      - description: M_CAN registers map
24824674b5SBenjamin Gaignard      - description: message RAM
25824674b5SBenjamin Gaignard
26824674b5SBenjamin Gaignard  reg-names:
27824674b5SBenjamin Gaignard    items:
28824674b5SBenjamin Gaignard      - const: m_can
29824674b5SBenjamin Gaignard      - const: message_ram
30824674b5SBenjamin Gaignard
31824674b5SBenjamin Gaignard  interrupts:
32824674b5SBenjamin Gaignard    items:
33824674b5SBenjamin Gaignard      - description: interrupt line0
34824674b5SBenjamin Gaignard      - description: interrupt line1
35824674b5SBenjamin Gaignard    minItems: 1
36824674b5SBenjamin Gaignard
37824674b5SBenjamin Gaignard  interrupt-names:
38824674b5SBenjamin Gaignard    items:
39824674b5SBenjamin Gaignard      - const: int0
40824674b5SBenjamin Gaignard      - const: int1
41824674b5SBenjamin Gaignard    minItems: 1
42824674b5SBenjamin Gaignard
43824674b5SBenjamin Gaignard  clocks:
44824674b5SBenjamin Gaignard    items:
45824674b5SBenjamin Gaignard      - description: peripheral clock
46824674b5SBenjamin Gaignard      - description: bus clock
47824674b5SBenjamin Gaignard
48824674b5SBenjamin Gaignard  clock-names:
49824674b5SBenjamin Gaignard    items:
50824674b5SBenjamin Gaignard      - const: hclk
51824674b5SBenjamin Gaignard      - const: cclk
52824674b5SBenjamin Gaignard
53824674b5SBenjamin Gaignard  bosch,mram-cfg:
54824674b5SBenjamin Gaignard    description: |
55824674b5SBenjamin Gaignard      Message RAM configuration data.
56824674b5SBenjamin Gaignard      Multiple M_CAN instances can share the same Message RAM
57824674b5SBenjamin Gaignard      and each element(e.g Rx FIFO or Tx Buffer and etc) number
58824674b5SBenjamin Gaignard      in Message RAM is also configurable, so this property is
59824674b5SBenjamin Gaignard      telling driver how the shared or private Message RAM are
60824674b5SBenjamin Gaignard      used by this M_CAN controller.
61824674b5SBenjamin Gaignard
62824674b5SBenjamin Gaignard      The format should be as follows:
63824674b5SBenjamin Gaignard      <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
64824674b5SBenjamin Gaignard      The 'offset' is an address offset of the Message RAM where
65824674b5SBenjamin Gaignard      the following elements start from. This is usually set to
66824674b5SBenjamin Gaignard      0x0 if you're using a private Message RAM. The remain cells
67824674b5SBenjamin Gaignard      are used to specify how many elements are used for each FIFO/Buffer.
68824674b5SBenjamin Gaignard
69824674b5SBenjamin Gaignard      M_CAN includes the following elements according to user manual:
70824674b5SBenjamin Gaignard      11-bit Filter	0-128 elements / 0-128 words
71824674b5SBenjamin Gaignard      29-bit Filter	0-64 elements / 0-128 words
72824674b5SBenjamin Gaignard      Rx FIFO 0		0-64 elements / 0-1152 words
73824674b5SBenjamin Gaignard      Rx FIFO 1		0-64 elements / 0-1152 words
74824674b5SBenjamin Gaignard      Rx Buffers	0-64 elements / 0-1152 words
75824674b5SBenjamin Gaignard      Tx Event FIFO	0-32 elements / 0-64 words
76824674b5SBenjamin Gaignard      Tx Buffers	0-32 elements / 0-576 words
77824674b5SBenjamin Gaignard
78824674b5SBenjamin Gaignard      Please refer to 2.4.1 Message RAM Configuration in Bosch
79824674b5SBenjamin Gaignard      M_CAN user manual for details.
803d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/int32-array
81824674b5SBenjamin Gaignard    items:
823d21a460SRob Herring      - description: The 'offset' is an address offset of the Message RAM where
833d21a460SRob Herring          the following elements start from. This is usually set to 0x0 if
843d21a460SRob Herring          you're using a private Message RAM.
85824674b5SBenjamin Gaignard        default: 0
86824674b5SBenjamin Gaignard      - description: 11-bit Filter 0-128 elements / 0-128 words
87824674b5SBenjamin Gaignard        minimum: 0
88824674b5SBenjamin Gaignard        maximum: 128
89824674b5SBenjamin Gaignard      - description: 29-bit Filter 0-64 elements / 0-128 words
90824674b5SBenjamin Gaignard        minimum: 0
91824674b5SBenjamin Gaignard        maximum: 64
92824674b5SBenjamin Gaignard      - description: Rx FIFO 0 0-64 elements / 0-1152 words
93824674b5SBenjamin Gaignard        minimum: 0
94824674b5SBenjamin Gaignard        maximum: 64
95824674b5SBenjamin Gaignard      - description: Rx FIFO 1 0-64 elements / 0-1152 words
96824674b5SBenjamin Gaignard        minimum: 0
97824674b5SBenjamin Gaignard        maximum: 64
98824674b5SBenjamin Gaignard      - description: Rx Buffers 0-64 elements / 0-1152 words
99824674b5SBenjamin Gaignard        minimum: 0
100824674b5SBenjamin Gaignard        maximum: 64
101824674b5SBenjamin Gaignard      - description: Tx Event FIFO 0-32 elements / 0-64 words
102824674b5SBenjamin Gaignard        minimum: 0
103824674b5SBenjamin Gaignard        maximum: 32
104824674b5SBenjamin Gaignard      - description: Tx Buffers 0-32 elements / 0-576 words
105824674b5SBenjamin Gaignard        minimum: 0
106824674b5SBenjamin Gaignard        maximum: 32
107824674b5SBenjamin Gaignard
108d85165b2SAswath Govindraju  power-domains:
109d85165b2SAswath Govindraju    description:
110d85165b2SAswath Govindraju      Power domain provider node and an args specifier containing
111d85165b2SAswath Govindraju      the can device id value.
112d85165b2SAswath Govindraju    maxItems: 1
113d85165b2SAswath Govindraju
114824674b5SBenjamin Gaignard  can-transceiver:
115824674b5SBenjamin Gaignard    $ref: can-transceiver.yaml#
116824674b5SBenjamin Gaignard
1179c0e7ccdSFaiz Abbas  phys:
1189c0e7ccdSFaiz Abbas    maxItems: 1
1199c0e7ccdSFaiz Abbas
120824674b5SBenjamin Gaignardrequired:
121824674b5SBenjamin Gaignard  - compatible
122824674b5SBenjamin Gaignard  - reg
123824674b5SBenjamin Gaignard  - reg-names
124824674b5SBenjamin Gaignard  - interrupts
125824674b5SBenjamin Gaignard  - interrupt-names
126824674b5SBenjamin Gaignard  - clocks
127824674b5SBenjamin Gaignard  - clock-names
128824674b5SBenjamin Gaignard  - bosch,mram-cfg
129824674b5SBenjamin Gaignard
130824674b5SBenjamin GaignardadditionalProperties: false
131824674b5SBenjamin Gaignard
132824674b5SBenjamin Gaignardexamples:
133824674b5SBenjamin Gaignard  - |
134824674b5SBenjamin Gaignard    #include <dt-bindings/clock/imx6sx-clock.h>
135824674b5SBenjamin Gaignard    can@20e8000 {
136824674b5SBenjamin Gaignard      compatible = "bosch,m_can";
137824674b5SBenjamin Gaignard      reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
138824674b5SBenjamin Gaignard      reg-names = "m_can", "message_ram";
139824674b5SBenjamin Gaignard      interrupts = <0 114 0x04>, <0 114 0x04>;
140824674b5SBenjamin Gaignard      interrupt-names = "int0", "int1";
141824674b5SBenjamin Gaignard      clocks = <&clks IMX6SX_CLK_CANFD>,
142824674b5SBenjamin Gaignard               <&clks IMX6SX_CLK_CANFD>;
143824674b5SBenjamin Gaignard      clock-names = "hclk", "cclk";
144824674b5SBenjamin Gaignard      bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
145824674b5SBenjamin Gaignard
146824674b5SBenjamin Gaignard      can-transceiver {
147824674b5SBenjamin Gaignard        max-bitrate = <5000000>;
148824674b5SBenjamin Gaignard      };
149824674b5SBenjamin Gaignard    };
150824674b5SBenjamin Gaignard
151824674b5SBenjamin Gaignard...
152