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