0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/media/qcom,sc7280-venus.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007
0008 title: Qualcomm Venus video encode and decode accelerators
0009
0010 maintainers:
0011 - Stanimir Varbanov <stanimir.varbanov@linaro.org>
0012
0013 description: |
0014 The Venus Iris2 IP is a video encode and decode accelerator present
0015 on Qualcomm platforms
0016
0017 properties:
0018 compatible:
0019 const: qcom,sc7280-venus
0020
0021 reg:
0022 maxItems: 1
0023
0024 interrupts:
0025 maxItems: 1
0026
0027 power-domains:
0028 minItems: 2
0029 maxItems: 3
0030
0031 power-domain-names:
0032 minItems: 2
0033 items:
0034 - const: venus
0035 - const: vcodec0
0036 - const: cx
0037
0038 clocks:
0039 maxItems: 5
0040
0041 clock-names:
0042 items:
0043 - const: core
0044 - const: bus
0045 - const: iface
0046 - const: vcodec_core
0047 - const: vcodec_bus
0048
0049 iommus:
0050 maxItems: 2
0051
0052 memory-region:
0053 maxItems: 1
0054
0055 interconnects:
0056 maxItems: 2
0057
0058 interconnect-names:
0059 items:
0060 - const: cpu-cfg
0061 - const: video-mem
0062
0063 video-decoder:
0064 type: object
0065
0066 properties:
0067 compatible:
0068 const: venus-decoder
0069
0070 required:
0071 - compatible
0072
0073 additionalProperties: false
0074
0075 video-encoder:
0076 type: object
0077
0078 properties:
0079 compatible:
0080 const: venus-encoder
0081
0082 required:
0083 - compatible
0084
0085 additionalProperties: false
0086
0087 video-firmware:
0088 type: object
0089
0090 description: |
0091 Firmware subnode is needed when the platform does not
0092 have TrustZone.
0093
0094 properties:
0095 iommus:
0096 maxItems: 1
0097
0098 required:
0099 - iommus
0100
0101 required:
0102 - compatible
0103 - reg
0104 - interrupts
0105 - power-domains
0106 - power-domain-names
0107 - clocks
0108 - clock-names
0109 - iommus
0110 - memory-region
0111 - video-decoder
0112 - video-encoder
0113
0114 additionalProperties: false
0115
0116 examples:
0117 - |
0118 #include <dt-bindings/interrupt-controller/arm-gic.h>
0119 #include <dt-bindings/clock/qcom,videocc-sc7280.h>
0120 #include <dt-bindings/interconnect/qcom,sc7280.h>
0121 #include <dt-bindings/power/qcom-rpmpd.h>
0122
0123 venus: video-codec@aa00000 {
0124 compatible = "qcom,sc7280-venus";
0125 reg = <0x0aa00000 0xd0600>;
0126 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0127
0128 clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
0129 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
0130 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0131 <&videocc VIDEO_CC_MVS0_CORE_CLK>,
0132 <&videocc VIDEO_CC_MVS0_AXI_CLK>;
0133 clock-names = "core", "bus", "iface",
0134 "vcodec_core", "vcodec_bus";
0135
0136 power-domains = <&videocc MVSC_GDSC>,
0137 <&videocc MVS0_GDSC>,
0138 <&rpmhpd SC7280_CX>;
0139 power-domain-names = "venus", "vcodec0", "cx";
0140
0141 interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
0142 <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
0143 interconnect-names = "cpu-cfg", "video-mem";
0144
0145 iommus = <&apps_smmu 0x2180 0x20>,
0146 <&apps_smmu 0x2184 0x20>;
0147
0148 memory-region = <&video_mem>;
0149
0150 video-decoder {
0151 compatible = "venus-decoder";
0152 };
0153
0154 video-encoder {
0155 compatible = "venus-encoder";
0156 };
0157
0158 video-firmware {
0159 iommus = <&apps_smmu 0x21a2 0x0>;
0160 };
0161 };