18d3a1cb3SBryan O'Donoghue# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28d3a1cb3SBryan O'Donoghue%YAML 1.2
38d3a1cb3SBryan O'Donoghue---
4af2270e0SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/qcom,sm8250-venus.yaml#
5af2270e0SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
68d3a1cb3SBryan O'Donoghue
7af2270e0SKrzysztof Kozlowskititle: Qualcomm SM8250 Venus video encode and decode accelerators
88d3a1cb3SBryan O'Donoghue
98d3a1cb3SBryan O'Donoghuemaintainers:
108d3a1cb3SBryan O'Donoghue  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
118d3a1cb3SBryan O'Donoghue
128d3a1cb3SBryan O'Donoghuedescription: |
138d3a1cb3SBryan O'Donoghue  The Venus IP is a video encode and decode accelerator present
148d3a1cb3SBryan O'Donoghue  on Qualcomm platforms
158d3a1cb3SBryan O'Donoghue
16f8cc21d4SKrzysztof KozlowskiallOf:
17f8cc21d4SKrzysztof Kozlowski  - $ref: qcom,venus-common.yaml#
18f8cc21d4SKrzysztof Kozlowski
198d3a1cb3SBryan O'Donoghueproperties:
208d3a1cb3SBryan O'Donoghue  compatible:
218d3a1cb3SBryan O'Donoghue    const: qcom,sm8250-venus
228d3a1cb3SBryan O'Donoghue
238d3a1cb3SBryan O'Donoghue  power-domains:
248d3a1cb3SBryan O'Donoghue    minItems: 2
258d3a1cb3SBryan O'Donoghue    maxItems: 3
268d3a1cb3SBryan O'Donoghue
278d3a1cb3SBryan O'Donoghue  power-domain-names:
288d3a1cb3SBryan O'Donoghue    minItems: 2
298d3a1cb3SBryan O'Donoghue    items:
308d3a1cb3SBryan O'Donoghue      - const: venus
318d3a1cb3SBryan O'Donoghue      - const: vcodec0
328d3a1cb3SBryan O'Donoghue      - const: mx
338d3a1cb3SBryan O'Donoghue
348d3a1cb3SBryan O'Donoghue  clocks:
358d3a1cb3SBryan O'Donoghue    maxItems: 3
368d3a1cb3SBryan O'Donoghue
378d3a1cb3SBryan O'Donoghue  clock-names:
388d3a1cb3SBryan O'Donoghue    items:
398d3a1cb3SBryan O'Donoghue      - const: iface
408d3a1cb3SBryan O'Donoghue      - const: core
418d3a1cb3SBryan O'Donoghue      - const: vcodec0_core
428d3a1cb3SBryan O'Donoghue
438d3a1cb3SBryan O'Donoghue  iommus:
448d3a1cb3SBryan O'Donoghue    maxItems: 1
458d3a1cb3SBryan O'Donoghue
468d3a1cb3SBryan O'Donoghue  interconnects:
478d3a1cb3SBryan O'Donoghue    maxItems: 2
488d3a1cb3SBryan O'Donoghue
498d3a1cb3SBryan O'Donoghue  interconnect-names:
508d3a1cb3SBryan O'Donoghue    items:
518d3a1cb3SBryan O'Donoghue      - const: cpu-cfg
528d3a1cb3SBryan O'Donoghue      - const: video-mem
538d3a1cb3SBryan O'Donoghue
54a9dd982cSKrzysztof Kozlowski  operating-points-v2: true
55a9dd982cSKrzysztof Kozlowski  opp-table:
56a9dd982cSKrzysztof Kozlowski    type: object
57a9dd982cSKrzysztof Kozlowski
588d3a1cb3SBryan O'Donoghue  resets:
598d3a1cb3SBryan O'Donoghue    maxItems: 2
608d3a1cb3SBryan O'Donoghue
618d3a1cb3SBryan O'Donoghue  reset-names:
628d3a1cb3SBryan O'Donoghue    items:
638d3a1cb3SBryan O'Donoghue      - const: bus
648d3a1cb3SBryan O'Donoghue      - const: core
658d3a1cb3SBryan O'Donoghue
668d3a1cb3SBryan O'Donoghue  video-decoder:
678d3a1cb3SBryan O'Donoghue    type: object
688d3a1cb3SBryan O'Donoghue
698d3a1cb3SBryan O'Donoghue    properties:
708d3a1cb3SBryan O'Donoghue      compatible:
718d3a1cb3SBryan O'Donoghue        const: venus-decoder
728d3a1cb3SBryan O'Donoghue
738d3a1cb3SBryan O'Donoghue    required:
748d3a1cb3SBryan O'Donoghue      - compatible
758d3a1cb3SBryan O'Donoghue
768d3a1cb3SBryan O'Donoghue    additionalProperties: false
778d3a1cb3SBryan O'Donoghue
788d3a1cb3SBryan O'Donoghue  video-encoder:
798d3a1cb3SBryan O'Donoghue    type: object
808d3a1cb3SBryan O'Donoghue
818d3a1cb3SBryan O'Donoghue    properties:
828d3a1cb3SBryan O'Donoghue      compatible:
838d3a1cb3SBryan O'Donoghue        const: venus-encoder
848d3a1cb3SBryan O'Donoghue
858d3a1cb3SBryan O'Donoghue    required:
868d3a1cb3SBryan O'Donoghue      - compatible
878d3a1cb3SBryan O'Donoghue
888d3a1cb3SBryan O'Donoghue    additionalProperties: false
898d3a1cb3SBryan O'Donoghue
908d3a1cb3SBryan O'Donoghuerequired:
918d3a1cb3SBryan O'Donoghue  - compatible
928d3a1cb3SBryan O'Donoghue  - power-domain-names
938d3a1cb3SBryan O'Donoghue  - interconnects
948d3a1cb3SBryan O'Donoghue  - interconnect-names
958d3a1cb3SBryan O'Donoghue  - iommus
968d3a1cb3SBryan O'Donoghue  - resets
978d3a1cb3SBryan O'Donoghue  - reset-names
988d3a1cb3SBryan O'Donoghue  - video-decoder
998d3a1cb3SBryan O'Donoghue  - video-encoder
1008d3a1cb3SBryan O'Donoghue
101f8cc21d4SKrzysztof KozlowskiunevaluatedProperties: false
1028d3a1cb3SBryan O'Donoghue
1038d3a1cb3SBryan O'Donoghueexamples:
1048d3a1cb3SBryan O'Donoghue  - |
1058d3a1cb3SBryan O'Donoghue    #include <dt-bindings/interrupt-controller/arm-gic.h>
1068d3a1cb3SBryan O'Donoghue    #include <dt-bindings/clock/qcom,videocc-sm8250.h>
1078d3a1cb3SBryan O'Donoghue    #include <dt-bindings/interconnect/qcom,sm8250.h>
1088d3a1cb3SBryan O'Donoghue    #include <dt-bindings/clock/qcom,gcc-sm8250.h>
109*014f3272SRohit Agarwal    #include <dt-bindings/power/qcom,rpmhpd.h>
1108d3a1cb3SBryan O'Donoghue
1118d3a1cb3SBryan O'Donoghue    venus: video-codec@aa00000 {
1128d3a1cb3SBryan O'Donoghue        compatible = "qcom,sm8250-venus";
1138d3a1cb3SBryan O'Donoghue        reg = <0x0aa00000 0xff000>;
1148d3a1cb3SBryan O'Donoghue        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
1158d3a1cb3SBryan O'Donoghue        power-domains = <&videocc MVS0C_GDSC>,
1168d3a1cb3SBryan O'Donoghue                        <&videocc MVS0_GDSC>,
117*014f3272SRohit Agarwal                        <&rpmhpd RPMHPD_MX>;
1188d3a1cb3SBryan O'Donoghue        power-domain-names = "venus", "vcodec0", "mx";
1198d3a1cb3SBryan O'Donoghue
1208d3a1cb3SBryan O'Donoghue        clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
1218d3a1cb3SBryan O'Donoghue                 <&videocc VIDEO_CC_MVS0C_CLK>,
1228d3a1cb3SBryan O'Donoghue                 <&videocc VIDEO_CC_MVS0_CLK>;
1238d3a1cb3SBryan O'Donoghue        clock-names = "iface", "core", "vcodec0_core";
1248d3a1cb3SBryan O'Donoghue
1258d3a1cb3SBryan O'Donoghue        interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_VENUS_CFG>,
1268d3a1cb3SBryan O'Donoghue                        <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI_CH0>;
1278d3a1cb3SBryan O'Donoghue        interconnect-names = "cpu-cfg", "video-mem";
1288d3a1cb3SBryan O'Donoghue
1298d3a1cb3SBryan O'Donoghue        iommus = <&apps_smmu 0x2100 0x0400>;
1308d3a1cb3SBryan O'Donoghue        memory-region = <&video_mem>;
1318d3a1cb3SBryan O'Donoghue
1328d3a1cb3SBryan O'Donoghue        resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
1338d3a1cb3SBryan O'Donoghue                 <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
1348d3a1cb3SBryan O'Donoghue        reset-names = "bus", "core";
1358d3a1cb3SBryan O'Donoghue
1368d3a1cb3SBryan O'Donoghue        video-decoder {
1378d3a1cb3SBryan O'Donoghue            compatible = "venus-decoder";
1388d3a1cb3SBryan O'Donoghue        };
1398d3a1cb3SBryan O'Donoghue
1408d3a1cb3SBryan O'Donoghue        video-encoder {
1418d3a1cb3SBryan O'Donoghue            compatible = "venus-encoder";
1428d3a1cb3SBryan O'Donoghue        };
1438d3a1cb3SBryan O'Donoghue    };
144