# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/nuvoton,npcm-vcd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nuvoton NPCM Video Capture/Differentiation Engine

maintainers:
  - Joseph Liu <kwliu@nuvoton.com>
  - Marvin Lin <kflin@nuvoton.com>

description: |
  Video Capture/Differentiation Engine (VCD) present on Nuvoton NPCM SoCs.

properties:
  compatible:
    enum:
      - nuvoton,npcm750-vcd
      - nuvoton,npcm845-vcd

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  resets:
    maxItems: 1

  nuvoton,sysgcr:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle to access GCR (Global Control Register) registers.

  nuvoton,sysgfxi:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle to access GFXI (Graphics Core Information) registers.

  nuvoton,ece:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle to access ECE (Encoding Compression Engine) registers.

  memory-region:
    maxItems: 1
    description:
      CMA pool to use for buffers allocation instead of the default CMA pool.

required:
  - compatible
  - reg
  - interrupts
  - resets
  - nuvoton,sysgcr
  - nuvoton,sysgfxi
  - nuvoton,ece

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/reset/nuvoton,npcm7xx-reset.h>

    vcd: vcd@f0810000 {
        compatible = "nuvoton,npcm750-vcd";
        reg = <0xf0810000 0x10000>;
        interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
        resets = <&rstc NPCM7XX_RESET_IPSRST2 NPCM7XX_RESET_VCD>;
        nuvoton,sysgcr = <&gcr>;
        nuvoton,sysgfxi = <&gfxi>;
        nuvoton,ece = <&ece>;
    };
