# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dsp/mediatek,mt8186-dsp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek mt8186 DSP core

maintainers:
  - Tinghan Shen <tinghan.shen@mediatek.com>

description: |
  MediaTek mt8186 SoC contains a DSP core used for
  advanced pre- and post- audio processing.

properties:
  compatible:
    const: mediatek,mt8186-dsp

  reg:
    items:
      - description: Address and size of the DSP config registers
      - description: Address and size of the DSP SRAM
      - description: Address and size of the DSP secure registers
      - description: Address and size of the DSP bus registers

  reg-names:
    items:
      - const: cfg
      - const: sram
      - const: sec
      - const: bus

  clocks:
    items:
      - description: mux for audio dsp clock
      - description: mux for audio dsp local bus

  clock-names:
    items:
      - const: audiodsp
      - const: adsp_bus

  power-domains:
    maxItems: 1

  mboxes:
    items:
      - description: mailbox for receiving audio DSP requests.
      - description: mailbox for transmitting requests to audio DSP.

  mbox-names:
    items:
      - const: rx
      - const: tx

  memory-region:
    items:
      - description: dma buffer between host and DSP.
      - description: DSP system memory.

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - power-domains
  - mbox-names
  - mboxes

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/mt8186-clk.h>
    dsp@10680000 {
        compatible = "mediatek,mt8186-dsp";
        reg = <0x10680000 0x2000>,
              <0x10800000 0x100000>,
              <0x1068b000 0x100>,
              <0x1068f000 0x1000>;
        reg-names = "cfg", "sram", "sec", "bus";
        clocks = <&topckgen CLK_TOP_AUDIODSP>,
                 <&topckgen CLK_TOP_ADSP_BUS>;
        clock-names = "audiodsp",
                      "adsp_bus";
        power-domains = <&spm 6>;
        mbox-names = "rx", "tx";
        mboxes = <&adsp_mailbox0>, <&adsp_mailbox1>;
    };
