# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)

%YAML 1.2
---
$id: "http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Qualcomm Venus video encode and decode accelerators

maintainers:
  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

description: |
  The Venus IP is a video encode and decode accelerator present
  on Qualcomm platforms

properties:
  compatible:
    const: qcom,sdm660-venus

  reg:
    maxItems: 1

  clocks:
    maxItems: 4

  clock-names:
    items:
      - const: core
      - const: iface
      - const: bus
      - const: bus_throttle

  interconnects:
    maxItems: 2

  interconnect-names:
    items:
      - const: cpu-cfg
      - const: video-mem

  interrupts:
    maxItems: 1

  iommus:
    maxItems: 20

  memory-region:
    maxItems: 1

  power-domains:
    maxItems: 1

  video-decoder:
    type: object

    properties:
      compatible:
        const: venus-decoder

      clocks:
        maxItems: 1

      clock-names:
        items:
          - const: vcodec0_core

      power-domains:
        maxItems: 1

    required:
      - compatible
      - clocks
      - clock-names
      - power-domains

    additionalProperties: false

  video-encoder:
    type: object

    properties:
      compatible:
        const: venus-encoder

      clocks:
        maxItems: 1

      clock-names:
        items:
          - const: vcodec0_core

      power-domains:
        maxItems: 1

    required:
      - compatible
      - clocks
      - clock-names
      - power-domains

    additionalProperties: false

  video-firmware:
    type: object
    additionalProperties: false

    description: |
      Firmware subnode is needed when the platform does not
      have TrustZone.

    properties:
      iommus:
        maxItems: 1

    required:
      - iommus

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - iommus
  - memory-region
  - power-domains
  - video-decoder
  - video-encoder

additionalProperties: false

examples:
  - |
        #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
        #include <dt-bindings/interrupt-controller/arm-gic.h>

        video-codec@cc00000 {
                compatible = "qcom,sdm660-venus";
                reg = <0x0cc00000 0xff000>;
                clocks = <&mmcc VIDEO_CORE_CLK>,
                         <&mmcc VIDEO_AHB_CLK>,
                         <&mmcc VIDEO_AXI_CLK>,
                         <&mmcc THROTTLE_VIDEO_AXI_CLK>;
                clock-names = "core", "iface", "bus", "bus_throttle";
                interconnects = <&gnoc 0 &mnoc 13>,
                                <&mnoc 4 &bimc 5>;
                interconnect-names = "cpu-cfg", "video-mem";
                interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
                iommus = <&mmss_smmu 0x400>,
                         <&mmss_smmu 0x401>,
                         <&mmss_smmu 0x40a>,
                         <&mmss_smmu 0x407>,
                         <&mmss_smmu 0x40e>,
                         <&mmss_smmu 0x40f>,
                         <&mmss_smmu 0x408>,
                         <&mmss_smmu 0x409>,
                         <&mmss_smmu 0x40b>,
                         <&mmss_smmu 0x40c>,
                         <&mmss_smmu 0x40d>,
                         <&mmss_smmu 0x410>,
                         <&mmss_smmu 0x421>,
                         <&mmss_smmu 0x428>,
                         <&mmss_smmu 0x429>,
                         <&mmss_smmu 0x42b>,
                         <&mmss_smmu 0x42c>,
                         <&mmss_smmu 0x42d>,
                         <&mmss_smmu 0x411>,
                         <&mmss_smmu 0x431>;
                memory-region = <&venus_region>;
                power-domains = <&mmcc VENUS_GDSC>;

                video-decoder {
                        compatible = "venus-decoder";
                        clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
                        clock-names = "vcodec0_core";
                        power-domains = <&mmcc VENUS_CORE0_GDSC>;
                };

                video-encoder {
                        compatible = "venus-encoder";
                        clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
                        clock-names = "vcodec0_core";
                        power-domains = <&mmcc VENUS_CORE0_GDSC>;
                };
        };
