# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/amlogic,meson-mx-ao-arc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic Meson AO ARC Remote Processor

description:
  Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs embed an ARC core
  controller for always-on operations, typically used for managing
  system suspend. Meson6 and older use a ARC core based on the ARCv1
  ISA, while Meson8, Meson8b and Meson8m2 use an ARC EM4 (ARCv2 ISA)
  core.

maintainers:
  - Martin Blumenstingl <martin.blumenstingl@googlemail.com>

properties:
  compatible:
    items:
      - enum:
          - amlogic,meson8-ao-arc
          - amlogic,meson8b-ao-arc
      - const: amlogic,meson-mx-ao-arc

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      The name of the firmware which should be loaded for this remote
      processor.

  reg:
    description:
      Address ranges of the remap and CPU control addresses for the
      remote processor.
    minItems: 2

  reg-names:
    items:
      - const: remap
      - const: cpu

  resets:
    minItems: 1

  clocks:
    minItems: 1

  sram:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandles to a reserved SRAM region which is used as the memory of
      the ARC core. The region should be defined as child nodes of the
      AHB SRAM node as per the generic bindings in
      Documentation/devicetree/bindings/sram/sram.yaml

  amlogic,secbus2:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      A phandle to the SECBUS2 region which contains some configuration
      bits of this remote processor

required:
  - compatible
  - reg
  - reg-names
  - resets
  - clocks
  - sram
  - amlogic,secbus2

additionalProperties: false

examples:
  - |
    remoteproc@1c {
      compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc";
      reg = <0x1c 0x8>, <0x38 0x8>;
      reg-names = "remap", "cpu";
      resets = <&media_cpu_reset>;
      clocks = <&media_cpu_clock>;
      sram = <&ahb_sram_ao_arc>;
      amlogic,secbus2 = <&secbus2>;
    };

...