# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/can/ti,tcan4x5x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments TCAN4x5x CAN Controller

maintainers:
  - Marc Kleine-Budde <mkl@pengutronix.de>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - ti,tcan4552
              - ti,tcan4553
          - const: ti,tcan4x5x
      - const: ti,tcan4x5x

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: The GPIO parent interrupt.

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: cclk

  reset-gpios:
    description: Hardwired output GPIO. If not defined then software reset.
    maxItems: 1

  device-state-gpios:
    description:
      Input GPIO that indicates if the device is in a sleep state or if the
      device is active. Not available with tcan4552/4553.
    maxItems: 1

  device-wake-gpios:
    description:
      Wake up GPIO to wake up the TCAN device.
      Not available with tcan4552/4553.
    maxItems: 1

  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:
      - 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
    minItems: 1

  spi-max-frequency:
    description:
      Must be half or less of "clocks" frequency.
    maximum: 18000000

  ti,nwkrq-voltage-vio:
    type: boolean
    description:
      nWKRQ Pin GPO buffer voltage configuration.
      Set nWKRQ to use VIO voltage rail.
      When not set nWKRQ will use internal voltage rail.

  wakeup-source:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable CAN remote wakeup.

allOf:
  - $ref: can-controller.yaml#
  - $ref: /schemas/spi/spi-peripheral-props.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - ti,tcan4552
              - ti,tcan4553
    then:
      properties:
        device-state-gpios: false
        device-wake-gpios: false

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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        can@0 {
            compatible = "ti,tcan4x5x";
            reg = <0>;
            clocks = <&can0_osc>;
            clock-names = "cclk";
            pinctrl-names = "default";
            pinctrl-0 = <&can0_pins>;
            spi-max-frequency = <10000000>;
            bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
            interrupt-parent = <&gpio1>;
            interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
            device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
            device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
            ti,nwkrq-voltage-vio;
            wakeup-source;
        };
    };
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        can@0 {
            compatible = "ti,tcan4552", "ti,tcan4x5x";
            reg = <0>;
            clocks = <&can0_osc>;
            clock-names = "cclk";
            pinctrl-names = "default";
            pinctrl-0 = <&can0_pins>;
            spi-max-frequency = <10000000>;
            bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
            interrupt-parent = <&gpio1>;
            interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
            reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
            wakeup-source;
        };
    };
