# 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.
    $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>;
      };
    };

...
