# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# # Copyright 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/mediatek/devapc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek Device Access Permission Control driver

description: |
  MediaTek bus fabric provides TrustZone security support and data
  protection to prevent slaves from being accessed by unexpected masters.
  The security violation is logged and sent to the processor for further
  analysis and countermeasures.

maintainers:
  - Neal Liu <neal.liu@mediatek.com>

properties:
  compatible:
    enum:
      - mediatek,mt6779-devapc
      - mediatek,mt8186-devapc

  reg:
    description: The base address of devapc register bank
    maxItems: 1

  interrupts:
    description: A single interrupt specifier
    maxItems: 1

  clocks:
    description: Contains module clock source and clock names
    maxItems: 1

  clock-names:
    description: Names of the clocks list in clocks property
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/mt6779-clk.h>

    devapc: devapc@10207000 {
      compatible = "mediatek,mt6779-devapc";
      reg = <0x10207000 0x1000>;
      interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_LOW>;
      clocks = <&infracfg_ao CLK_INFRA_DEVICE_APC>;
      clock-names = "devapc-infra-clock";
    };