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,msm8916-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 IP is a video encode and decode accelerator present
0015 on Qualcomm platforms
0016
0017 properties:
0018 compatible:
0019 const: qcom,msm8916-venus
0020
0021 reg:
0022 maxItems: 1
0023
0024 interrupts:
0025 maxItems: 1
0026
0027 power-domains:
0028 maxItems: 1
0029
0030 clocks:
0031 maxItems: 3
0032
0033 clock-names:
0034 items:
0035 - const: core
0036 - const: iface
0037 - const: bus
0038
0039 iommus:
0040 maxItems: 1
0041
0042 memory-region:
0043 maxItems: 1
0044
0045 video-decoder:
0046 type: object
0047
0048 properties:
0049 compatible:
0050 const: "venus-decoder"
0051
0052 required:
0053 - compatible
0054
0055 additionalProperties: false
0056
0057 video-encoder:
0058 type: object
0059
0060 properties:
0061 compatible:
0062 const: "venus-encoder"
0063
0064 required:
0065 - compatible
0066
0067 additionalProperties: false
0068
0069 video-firmware:
0070 type: object
0071
0072 description: |
0073 Firmware subnode is needed when the platform does not
0074 have TrustZone.
0075
0076 properties:
0077 iommus:
0078 maxItems: 1
0079
0080 required:
0081 - iommus
0082
0083 required:
0084 - compatible
0085 - reg
0086 - interrupts
0087 - power-domains
0088 - clocks
0089 - clock-names
0090 - iommus
0091 - memory-region
0092 - video-decoder
0093 - video-encoder
0094
0095 additionalProperties: false
0096
0097 examples:
0098 - |
0099 #include <dt-bindings/interrupt-controller/arm-gic.h>
0100 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
0101
0102 video-codec@1d00000 {
0103 compatible = "qcom,msm8916-venus";
0104 reg = <0x01d00000 0xff000>;
0105 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
0106 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
0107 <&gcc GCC_VENUS0_AHB_CLK>,
0108 <&gcc GCC_VENUS0_AXI_CLK>;
0109 clock-names = "core", "iface", "bus";
0110 power-domains = <&gcc VENUS_GDSC>;
0111 iommus = <&apps_iommu 5>;
0112 memory-region = <&venus_mem>;
0113
0114 video-decoder {
0115 compatible = "venus-decoder";
0116 };
0117
0118 video-encoder {
0119 compatible = "venus-encoder";
0120 };
0121 };