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,sdm845-venus-v2.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,sdm845-venus-v2
0020
0021 reg:
0022 maxItems: 1
0023
0024 interrupts:
0025 maxItems: 1
0026
0027 power-domains:
0028 minItems: 3
0029 maxItems: 4
0030
0031 power-domain-names:
0032 minItems: 3
0033 items:
0034 - const: venus
0035 - const: vcodec0
0036 - const: vcodec1
0037 - const: cx
0038
0039 clocks:
0040 maxItems: 7
0041
0042 clock-names:
0043 items:
0044 - const: core
0045 - const: iface
0046 - const: bus
0047 - const: vcodec0_core
0048 - const: vcodec0_bus
0049 - const: vcodec1_core
0050 - const: vcodec1_bus
0051
0052 iommus:
0053 maxItems: 2
0054
0055 memory-region:
0056 maxItems: 1
0057
0058 video-core0:
0059 type: object
0060
0061 properties:
0062 compatible:
0063 const: venus-decoder
0064
0065 required:
0066 - compatible
0067
0068 additionalProperties: false
0069
0070 video-core1:
0071 type: object
0072
0073 properties:
0074 compatible:
0075 const: venus-encoder
0076
0077 required:
0078 - compatible
0079
0080 additionalProperties: false
0081
0082 video-firmware:
0083 type: object
0084
0085 description: |
0086 Firmware subnode is needed when the platform does not
0087 have TrustZone.
0088
0089 properties:
0090 iommus:
0091 maxItems: 1
0092
0093 required:
0094 - iommus
0095
0096 required:
0097 - compatible
0098 - reg
0099 - interrupts
0100 - power-domains
0101 - power-domain-names
0102 - clocks
0103 - clock-names
0104 - iommus
0105 - memory-region
0106 - video-core0
0107 - video-core1
0108
0109 additionalProperties: false
0110
0111 examples:
0112 - |
0113 #include <dt-bindings/interrupt-controller/arm-gic.h>
0114 #include <dt-bindings/clock/qcom,videocc-sdm845.h>
0115
0116 video-codec@aa00000 {
0117 compatible = "qcom,sdm845-venus-v2";
0118 reg = <0x0aa00000 0xff000>;
0119 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0120 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
0121 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0122 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
0123 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
0124 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
0125 <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
0126 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
0127 clock-names = "core", "iface", "bus",
0128 "vcodec0_core", "vcodec0_bus",
0129 "vcodec1_core", "vcodec1_bus";
0130 power-domains = <&videocc VENUS_GDSC>,
0131 <&videocc VCODEC0_GDSC>,
0132 <&videocc VCODEC1_GDSC>;
0133 power-domain-names = "venus", "vcodec0", "vcodec1";
0134 iommus = <&apps_smmu 0x10a0 0x8>,
0135 <&apps_smmu 0x10b0 0x0>;
0136 memory-region = <&venus_mem>;
0137
0138 video-core0 {
0139 compatible = "venus-decoder";
0140 };
0141
0142 video-core1 {
0143 compatible = "venus-encoder";
0144 };
0145 };