xref: /freebsd/sys/contrib/device-tree/Bindings/media/qcom,sc7280-venus.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/qcom,sc7280-venus.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Qualcomm SC7280 Venus video encode and decode accelerators
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
108cc087a1SEmmanuel Vadot  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotdescription: |
138cc087a1SEmmanuel Vadot  The Venus Iris2 IP is a video encode and decode accelerator present
148cc087a1SEmmanuel Vadot  on Qualcomm platforms
158cc087a1SEmmanuel Vadot
16fac71e4eSEmmanuel VadotallOf:
17fac71e4eSEmmanuel Vadot  - $ref: qcom,venus-common.yaml#
18fac71e4eSEmmanuel Vadot
198cc087a1SEmmanuel Vadotproperties:
208cc087a1SEmmanuel Vadot  compatible:
218cc087a1SEmmanuel Vadot    const: qcom,sc7280-venus
228cc087a1SEmmanuel Vadot
238cc087a1SEmmanuel Vadot  power-domains:
248cc087a1SEmmanuel Vadot    minItems: 2
258cc087a1SEmmanuel Vadot    maxItems: 3
268cc087a1SEmmanuel Vadot
278cc087a1SEmmanuel Vadot  power-domain-names:
288cc087a1SEmmanuel Vadot    minItems: 2
298cc087a1SEmmanuel Vadot    items:
308cc087a1SEmmanuel Vadot      - const: venus
318cc087a1SEmmanuel Vadot      - const: vcodec0
328cc087a1SEmmanuel Vadot      - const: cx
338cc087a1SEmmanuel Vadot
348cc087a1SEmmanuel Vadot  clocks:
358cc087a1SEmmanuel Vadot    maxItems: 5
368cc087a1SEmmanuel Vadot
378cc087a1SEmmanuel Vadot  clock-names:
388cc087a1SEmmanuel Vadot    items:
398cc087a1SEmmanuel Vadot      - const: core
408cc087a1SEmmanuel Vadot      - const: bus
418cc087a1SEmmanuel Vadot      - const: iface
428cc087a1SEmmanuel Vadot      - const: vcodec_core
438cc087a1SEmmanuel Vadot      - const: vcodec_bus
448cc087a1SEmmanuel Vadot
458cc087a1SEmmanuel Vadot  iommus:
46*b2d2a78aSEmmanuel Vadot    minItems: 1
478cc087a1SEmmanuel Vadot    maxItems: 2
488cc087a1SEmmanuel Vadot
498cc087a1SEmmanuel Vadot  interconnects:
508cc087a1SEmmanuel Vadot    maxItems: 2
518cc087a1SEmmanuel Vadot
528cc087a1SEmmanuel Vadot  interconnect-names:
538cc087a1SEmmanuel Vadot    items:
548cc087a1SEmmanuel Vadot      - const: cpu-cfg
558cc087a1SEmmanuel Vadot      - const: video-mem
568cc087a1SEmmanuel Vadot
57fac71e4eSEmmanuel Vadot  operating-points-v2: true
58fac71e4eSEmmanuel Vadot  opp-table:
59fac71e4eSEmmanuel Vadot    type: object
60fac71e4eSEmmanuel Vadot
618cc087a1SEmmanuel Vadot  video-decoder:
628cc087a1SEmmanuel Vadot    type: object
638cc087a1SEmmanuel Vadot
648cc087a1SEmmanuel Vadot    properties:
658cc087a1SEmmanuel Vadot      compatible:
668cc087a1SEmmanuel Vadot        const: venus-decoder
678cc087a1SEmmanuel Vadot
688cc087a1SEmmanuel Vadot    required:
698cc087a1SEmmanuel Vadot      - compatible
708cc087a1SEmmanuel Vadot
718cc087a1SEmmanuel Vadot    additionalProperties: false
728cc087a1SEmmanuel Vadot
738cc087a1SEmmanuel Vadot  video-encoder:
748cc087a1SEmmanuel Vadot    type: object
758cc087a1SEmmanuel Vadot
768cc087a1SEmmanuel Vadot    properties:
778cc087a1SEmmanuel Vadot      compatible:
788cc087a1SEmmanuel Vadot        const: venus-encoder
798cc087a1SEmmanuel Vadot
808cc087a1SEmmanuel Vadot    required:
818cc087a1SEmmanuel Vadot      - compatible
828cc087a1SEmmanuel Vadot
838cc087a1SEmmanuel Vadot    additionalProperties: false
848cc087a1SEmmanuel Vadot
858cc087a1SEmmanuel Vadotrequired:
868cc087a1SEmmanuel Vadot  - compatible
878cc087a1SEmmanuel Vadot  - power-domain-names
888cc087a1SEmmanuel Vadot  - iommus
898cc087a1SEmmanuel Vadot  - video-decoder
908cc087a1SEmmanuel Vadot  - video-encoder
918cc087a1SEmmanuel Vadot
92fac71e4eSEmmanuel VadotunevaluatedProperties: false
938cc087a1SEmmanuel Vadot
948cc087a1SEmmanuel Vadotexamples:
958cc087a1SEmmanuel Vadot  - |
968cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
978cc087a1SEmmanuel Vadot    #include <dt-bindings/clock/qcom,videocc-sc7280.h>
988cc087a1SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,sc7280.h>
998cc087a1SEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
1008cc087a1SEmmanuel Vadot
1018cc087a1SEmmanuel Vadot    venus: video-codec@aa00000 {
1028cc087a1SEmmanuel Vadot        compatible = "qcom,sc7280-venus";
1038cc087a1SEmmanuel Vadot        reg = <0x0aa00000 0xd0600>;
1048cc087a1SEmmanuel Vadot        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
1058cc087a1SEmmanuel Vadot
1068cc087a1SEmmanuel Vadot        clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
1078cc087a1SEmmanuel Vadot                 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
1088cc087a1SEmmanuel Vadot                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
1098cc087a1SEmmanuel Vadot                 <&videocc VIDEO_CC_MVS0_CORE_CLK>,
1108cc087a1SEmmanuel Vadot                 <&videocc VIDEO_CC_MVS0_AXI_CLK>;
1118cc087a1SEmmanuel Vadot        clock-names = "core", "bus", "iface",
1128cc087a1SEmmanuel Vadot                      "vcodec_core", "vcodec_bus";
1138cc087a1SEmmanuel Vadot
1148cc087a1SEmmanuel Vadot        power-domains = <&videocc MVSC_GDSC>,
1158cc087a1SEmmanuel Vadot                        <&videocc MVS0_GDSC>,
1168cc087a1SEmmanuel Vadot                        <&rpmhpd SC7280_CX>;
1178cc087a1SEmmanuel Vadot        power-domain-names = "venus", "vcodec0", "cx";
1188cc087a1SEmmanuel Vadot
1198cc087a1SEmmanuel Vadot        interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
1208cc087a1SEmmanuel Vadot                        <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
1218cc087a1SEmmanuel Vadot        interconnect-names = "cpu-cfg", "video-mem";
1228cc087a1SEmmanuel Vadot
1238cc087a1SEmmanuel Vadot        iommus = <&apps_smmu 0x2180 0x20>,
1248cc087a1SEmmanuel Vadot                 <&apps_smmu 0x2184 0x20>;
1258cc087a1SEmmanuel Vadot
1268cc087a1SEmmanuel Vadot        memory-region = <&video_mem>;
1278cc087a1SEmmanuel Vadot
1288cc087a1SEmmanuel Vadot        video-decoder {
1298cc087a1SEmmanuel Vadot            compatible = "venus-decoder";
1308cc087a1SEmmanuel Vadot        };
1318cc087a1SEmmanuel Vadot
1328cc087a1SEmmanuel Vadot        video-encoder {
1338cc087a1SEmmanuel Vadot            compatible = "venus-encoder";
1348cc087a1SEmmanuel Vadot        };
1358cc087a1SEmmanuel Vadot
1368cc087a1SEmmanuel Vadot        video-firmware {
1378cc087a1SEmmanuel Vadot            iommus = <&apps_smmu 0x21a2 0x0>;
1388cc087a1SEmmanuel Vadot        };
1398cc087a1SEmmanuel Vadot    };
140