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

title: Ingenic Video Processing Unit

description:
  Inside the Video Processing Unit (VPU) of the recent JZ47xx SoCs from
  Ingenic is a second Xburst MIPS CPU very similar to the main core.
  This document describes the devicetree bindings for this auxiliary
  processor.

maintainers:
  - Paul Cercueil <paul@crapouillou.net>

properties:
  compatible:
    const: ingenic,jz4770-vpu-rproc

  reg:
    items:
      - description: aux registers
      - description: tcsm0 registers
      - description: tcsm1 registers
      - description: sram registers

  reg-names:
    items:
      - const: aux
      - const: tcsm0
      - const: tcsm1
      - const: sram

  clocks:
    items:
      - description: aux clock
      - description: vpu clock

  clock-names:
    items:
      - const: aux
      - const: vpu

  interrupts:
    maxItems: 1

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/ingenic,jz4770-cgu.h>

    vpu: video-decoder@132a0000 {
      compatible = "ingenic,jz4770-vpu-rproc";

      reg = <0x132a0000 0x20>, /* AUX */
            <0x132b0000 0x4000>, /* TCSM0 */
            <0x132c0000 0xc000>, /* TCSM1 */
            <0x132f0000 0x7000>; /* SRAM */
      reg-names = "aux", "tcsm0", "tcsm1", "sram";

      clocks = <&cgu JZ4770_CLK_AUX>, <&cgu JZ4770_CLK_VPU>;
      clock-names = "aux", "vpu";

      interrupt-parent = <&cpuintc>;
      interrupts = <3>;
    };