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

%YAML 1.2
---
$id: "http://devicetree.org/schemas/media/qcom,sc7280-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>

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

properties:
  compatible:
    const: qcom,sc7280-venus

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  power-domains:
    minItems: 2
    maxItems: 3

  power-domain-names:
    minItems: 2
    maxItems: 3
    items:
      - const: venus
      - const: vcodec0
      - const: cx

  clocks:
    maxItems: 5

  clock-names:
    items:
      - const: core
      - const: bus
      - const: iface
      - const: vcodec_core
      - const: vcodec_bus

  iommus:
    maxItems: 2

  memory-region:
    maxItems: 1

  interconnects:
    maxItems: 2

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

  video-decoder:
    type: object

    properties:
      compatible:
        const: venus-decoder

    required:
      - compatible

    additionalProperties: false

  video-encoder:
    type: object

    properties:
      compatible:
        const: venus-encoder

    required:
      - compatible

    additionalProperties: false

  video-firmware:
    type: object

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

    properties:
      iommus:
        maxItems: 1

    required:
      - iommus

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

additionalProperties: false

examples:
  - |
        #include <dt-bindings/interrupt-controller/arm-gic.h>
        #include <dt-bindings/clock/qcom,videocc-sc7280.h>
        #include <dt-bindings/interconnect/qcom,sc7280.h>
        #include <dt-bindings/power/qcom-rpmpd.h>

        venus: video-codec@aa00000 {
                compatible = "qcom,sc7280-venus";
                reg = <0x0aa00000 0xd0600>;
                interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;

                clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
                         <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
                         <&videocc VIDEO_CC_VENUS_AHB_CLK>,
                         <&videocc VIDEO_CC_MVS0_CORE_CLK>,
                         <&videocc VIDEO_CC_MVS0_AXI_CLK>;
                clock-names = "core", "bus", "iface",
                              "vcodec_core", "vcodec_bus";

                power-domains = <&videocc MVSC_GDSC>,
                                <&videocc MVS0_GDSC>,
                                <&rpmhpd SC7280_CX>;
                power-domain-names = "venus", "vcodec0", "cx";

                interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
                                <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
                interconnect-names = "cpu-cfg", "video-mem";

                iommus = <&apps_smmu 0x2180 0x20>,
                         <&apps_smmu 0x2184 0x20>;

                memory-region = <&video_mem>;

                video-decoder {
                        compatible = "venus-decoder";
                };

                video-encoder {
                        compatible = "venus-encoder";
                };

                video-firmware {
                        iommus = <&apps_smmu 0x21a2 0x0>;
                };
        };
