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

title: TI K3 M4F processor subsystems

maintainers:
  - Hari Nagalla <hnagalla@ti.com>
  - Mathieu Poirier <mathieu.poirier@linaro.org>

description: |
  Some K3 family SoCs have Arm Cortex M4F cores. AM64x is a SoC in K3
  family with a M4F core. Typically safety oriented applications may use
  the M4F core in isolation without an IPC. Where as some industrial and
  home automation applications, may use the M4F core as a remote processor
  with IPC communications.

$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#

properties:
  compatible:
    enum:
      - ti,am64-m4fss

  power-domains:
    maxItems: 1

  "#address-cells":
    const: 2

  "#size-cells":
    const: 2

  reg:
    items:
      - description: IRAM internal memory region
      - description: DRAM internal memory region

  reg-names:
    items:
      - const: iram
      - const: dram

  resets:
    maxItems: 1

  firmware-name:
    maxItems: 1
    description: Name of firmware to load for the M4F core

  mboxes:
    description:
      OMAP Mailbox specifier denoting the sub-mailbox, to be used for
      communication with the remote processor. This property should match
      with the sub-mailbox node used in the firmware image.
    maxItems: 1

  memory-region:
    description:
      phandle to the reserved memory nodes to be associated with the
      remoteproc device. Optional memory regions available for firmware
      specific purposes.
      (see reserved-memory/reserved-memory.yaml in dtschema project)
    maxItems: 8
    items:
      - description: regions used for DMA allocations like vrings, vring buffers
                     and memory dedicated to firmware's specific purposes.
    additionalItems: true

required:
  - compatible
  - reg
  - reg-names
  - ti,sci
  - ti,sci-dev-id
  - ti,sci-proc-ids
  - resets
  - firmware-name

unevaluatedProperties: false

examples:
  - |
    reserved-memory {
        #address-cells = <2>;
        #size-cells = <2>;

        mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
            compatible = "shared-dma-pool";
            reg = <0x00 0x9cb00000 0x00 0x100000>;
            no-map;
        };

        mcu_m4fss_memory_region: m4f-memory@9cc00000 {
            compatible = "shared-dma-pool";
            reg = <0x00 0x9cc00000 0x00 0xe00000>;
            no-map;
        };
    };

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        mailbox0_cluster0: mailbox-0 {
            #mbox-cells = <1>;
        };

        remoteproc@5000000 {
            compatible = "ti,am64-m4fss";
            reg = <0x00 0x5000000 0x00 0x30000>,
                  <0x00 0x5040000 0x00 0x10000>;
            reg-names = "iram", "dram";
            resets = <&k3_reset 9 1>;
            firmware-name = "am62-mcu-m4f0_0-fw";
            mboxes = <&mailbox0_cluster0>, <&mbox_m4_0>;
            memory-region = <&mcu_m4fss_dma_memory_region>,
                            <&mcu_m4fss_memory_region>;
            ti,sci = <&dmsc>;
            ti,sci-dev-id = <9>;
            ti,sci-proc-ids = <0x18 0xff>;
         };
    };
