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