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,sc7180-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,sc7180-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: iface
0045 - const: bus
0046 - const: vcodec0_core
0047 - const: vcodec0_bus
0048
0049 iommus:
0050 maxItems: 1
0051
0052 memory-region:
0053 maxItems: 1
0054
0055 interconnects:
0056 maxItems: 2
0057
0058 interconnect-names:
0059 items:
0060 - const: video-mem
0061 - const: cpu-cfg
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-sc7180.h>
0120
0121 venus: video-codec@aa00000 {
0122 compatible = "qcom,sc7180-venus";
0123 reg = <0x0aa00000 0xff000>;
0124 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0125 power-domains = <&videocc VENUS_GDSC>,
0126 <&videocc VCODEC0_GDSC>;
0127 power-domain-names = "venus", "vcodec0";
0128 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
0129 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0130 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
0131 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
0132 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
0133 clock-names = "core", "iface", "bus",
0134 "vcodec0_core", "vcodec0_bus";
0135 iommus = <&apps_smmu 0x0c00 0x60>;
0136 memory-region = <&venus_mem>;
0137
0138 video-decoder {
0139 compatible = "venus-decoder";
0140 };
0141
0142 video-encoder {
0143 compatible = "venus-encoder";
0144 };
0145 };