# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: STMicroelectronics STM32 remote processor controller bindings

description:
  This document defines the binding for the remoteproc component that loads and
  boots firmwares on the ST32MP family chipset.

maintainers:
  - Fabien Dessenne <fabien.dessenne@st.com>
  - Arnaud Pouliquen <arnaud.pouliquen@st.com>

properties:
  compatible:
    const: st,stm32mp1-m4

  reg:
    description:
      Address ranges of the RETRAM and MCU SRAM memories used by the remote
      processor.
    maxItems: 3

  resets:
    maxItems: 1

  st,syscfg-holdboot:
    description: remote processor reset hold boot
      - Phandle of syscon block.
      - The offset of the hold boot setting register.
      - The field mask of the hold boot.
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    maxItems: 1

  st,syscfg-tz:
    description:
      Reference to the system configuration which holds the RCC trust zone mode
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    maxItems: 1

  interrupts:
    description: Should contain the WWDG1 watchdog reset interrupt
    maxItems: 1

  wakeup-source: true

  mboxes:
    description:
      This property is required only if the rpmsg/virtio functionality is used.
    items:
      - description: |
          A channel (a) used to communicate through virtqueues with the
          remote proc.
          Bi-directional channel:
            - from local to remote = send message
            - from remote to local = send message ack
      - description: |
          A channel (b) working the opposite direction of channel (a)
      - description: |
          A channel (c) used by the local proc to notify the remote proc that it
          is about to be shut down.
          Unidirectional channel:
            - from local to remote, where ACK from the remote means that it is
              ready for shutdown
      - description: |
          A channel (d) used by the local proc to notify the remote proc that it
          has to stop interprocessor communnication.
          Unidirectional channel:
            - from local to remote, where ACK from the remote means that communnication
              as been stopped on the remote side.
    minItems: 1

  mbox-names:
    items:
      - const: vq0
      - const: vq1
      - const: shutdown
      - const: detach
    minItems: 1

  memory-region:
    description:
      List of phandles to the reserved memory regions associated with the
      remoteproc device. This is variable and describes the memories shared with
      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
      vrings, ...).
      (see ../reserved-memory/reserved-memory.txt)

  st,syscfg-pdds:
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    description: |
      Reference to the system configuration which holds the remote
    maxItems: 1

  st,syscfg-m4-state:
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    description: |
      Reference to the tamp register which exposes the Cortex-M4 state.
    maxItems: 1

  st,syscfg-rsc-tbl:
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    description: |
      Reference to the tamp register which references the Cortex-M4
      resource table address.
    maxItems: 1

  st,auto-boot:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      If defined, when remoteproc is probed, it loads the default firmware and
      starts the remote processor.

required:
  - compatible
  - reg
  - resets
  - st,syscfg-holdboot
  - st,syscfg-tz

additionalProperties: false

examples:
  - |
    #include <dt-bindings/reset/stm32mp1-resets.h>
    m4_rproc: m4@10000000 {
      compatible = "st,stm32mp1-m4";
      reg = <0x10000000 0x40000>,
            <0x30000000 0x40000>,
            <0x38000000 0x10000>;
      resets = <&rcc MCU_R>;
      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
      st,syscfg-tz = <&rcc 0x000 0x1>;
      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
    };

...
