# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Bosch MCAN controller Bindings

description: Bosch MCAN controller for CAN bus

maintainers:
  -  Sriram Dash <sriram.dash@samsung.com>

properties:
  compatible:
    const: bosch,m_can

  reg:
    items:
      - description: M_CAN registers map
      - description: message RAM

  reg-names:
    items:
      - const: m_can
      - const: message_ram

  interrupts:
    items:
      - description: interrupt line0
      - description: interrupt line1
    minItems: 1
    maxItems: 2

  interrupt-names:
    items:
      - const: int0
      - const: int1
    minItems: 1
    maxItems: 2

  clocks:
    items:
      - description: peripheral clock
      - description: bus clock

  clock-names:
    items:
      - const: hclk
      - const: cclk

  bosch,mram-cfg:
    description: |
                 Message RAM configuration data.
                 Multiple M_CAN instances can share the same Message RAM
                 and each element(e.g Rx FIFO or Tx Buffer and etc) number
                 in Message RAM is also configurable, so this property is
                 telling driver how the shared or private Message RAM are
                 used by this M_CAN controller.

                 The format should be as follows:
                 <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
                 The 'offset' is an address offset of the Message RAM where
                 the following elements start from. This is usually set to
                 0x0 if you're using a private Message RAM. The remain cells
                 are used to specify how many elements are used for each FIFO/Buffer.

                 M_CAN includes the following elements according to user manual:
                 11-bit Filter	0-128 elements / 0-128 words
                 29-bit Filter	0-64 elements / 0-128 words
                 Rx FIFO 0	0-64 elements / 0-1152 words
                 Rx FIFO 1	0-64 elements / 0-1152 words
                 Rx Buffers	0-64 elements / 0-1152 words
                 Tx Event FIFO	0-32 elements / 0-64 words
                 Tx Buffers	0-32 elements / 0-576 words

                 Please refer to 2.4.1 Message RAM Configuration in Bosch
                 M_CAN user manual for details.
    allOf:
      - $ref: /schemas/types.yaml#/definitions/int32-array
      - items:
         items:
           - description: The 'offset' is an address offset of the Message RAM
                          where the following elements start from. This is usually
                          set to 0x0 if you're using a private Message RAM.
             default: 0
           - description: 11-bit Filter 0-128 elements / 0-128 words
             minimum: 0
             maximum: 128
           - description: 29-bit Filter 0-64 elements / 0-128 words
             minimum: 0
             maximum: 64
           - description: Rx FIFO 0 0-64 elements / 0-1152 words
             minimum: 0
             maximum: 64
           - description: Rx FIFO 1 0-64 elements / 0-1152 words
             minimum: 0
             maximum: 64
           - description: Rx Buffers 0-64 elements / 0-1152 words
             minimum: 0
             maximum: 64
           - description: Tx Event FIFO 0-32 elements / 0-64 words
             minimum: 0
             maximum: 32
           - description: Tx Buffers 0-32 elements / 0-576 words
             minimum: 0
             maximum: 32
        maxItems: 1

  can-transceiver:
    $ref: can-transceiver.yaml#

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - bosch,mram-cfg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx6sx-clock.h>
    can@20e8000 {
      compatible = "bosch,m_can";
      reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
      reg-names = "m_can", "message_ram";
      interrupts = <0 114 0x04>, <0 114 0x04>;
      interrupt-names = "int0", "int1";
      clocks = <&clks IMX6SX_CLK_CANFD>,
               <&clks IMX6SX_CLK_CANFD>;
      clock-names = "hclk", "cclk";
      bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;

      can-transceiver {
        max-bitrate = <5000000>;
      };
    };

...
