# 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

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@foss.st.com>
  - Arnaud Pouliquen <arnaud.pouliquen@foss.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:
    minItems: 1
    maxItems: 2

  reset-names:
    items:
      - const: mcu_rst
      - const: hold_boot
    minItems: 1

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

  st,syscfg-tz:
    deprecated: true
    description:
      Reference to the system configuration which holds the RCC trust zone mode
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle of syscon block
          - description: The offset of the trust zone setting register
          - description: The field mask of the trust zone state

  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 communication.
          Unidirectional channel:
            - from local to remote, where ACK from the remote means that communication
              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
    items:
      - items:
          - description: Phandle of syscon block
          - description: The offset of the power setting register
          - description: The field mask of the PDDS selection

  st,syscfg-m4-state:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: |
      Reference to the tamp register which exposes the Cortex-M4 state.
    items:
      - items:
          - description: Phandle of syscon block with the tamp register
          - description: The offset of the tamp register
          - description: The field mask of the Cortex-M4 state

  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.
    items:
      - items:
          - description: Phandle of syscon block with the tamp register
          - description: The offset of the tamp register
          - description: The field mask of the Cortex-M4 resource table address

  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

allOf:
  - if:
      properties:
        reset-names:
          not:
            contains:
              const: hold_boot
    then:
      required:
        - st,syscfg-holdboot
    else:
      properties:
        st,syscfg-holdboot: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/reset/stm32mp1-resets.h>
    m4@10000000 {
      compatible = "st,stm32mp1-m4";
      reg = <0x10000000 0x40000>,
            <0x30000000 0x40000>,
            <0x38000000 0x10000>;
      resets = <&rcc MCU_R>;
      reset-names = "mcu_rst";
      /* Hold boot managed using system config*/
      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
    };
  - |
    #include <dt-bindings/reset/stm32mp1-resets.h>
    m4@10000000 {
      compatible = "st,stm32mp1-m4";
      reg = <0x10000000 0x40000>,
            <0x30000000 0x40000>,
            <0x38000000 0x10000>;
      /* Hold boot managed using SCMI reset controller */
      resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
      reset-names = "mcu_rst", "hold_boot";
      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
    };

...
