158 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/media/qcom,msm8996-venus.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm MSM8996 Venus video encode and decode accelerators8 9maintainers:10 - Stanimir Varbanov <stanimir.varbanov@linaro.org>11 12description: |13 The Venus IP is a video encode and decode accelerator present14 on Qualcomm platforms15 16allOf:17 - $ref: qcom,venus-common.yaml#18 19properties:20 compatible:21 enum:22 - qcom,msm8996-venus23 - qcom,msm8998-venus24 25 power-domains:26 maxItems: 127 28 clocks:29 maxItems: 430 31 clock-names:32 items:33 - const: core34 - const: iface35 - const: bus36 - const: mbus37 38 interconnects:39 maxItems: 240 41 interconnect-names:42 items:43 - const: video-mem44 - const: cpu-cfg45 46 iommus:47 maxItems: 2048 49 video-decoder:50 type: object51 52 properties:53 compatible:54 const: venus-decoder55 56 clocks:57 maxItems: 158 59 clock-names:60 items:61 - const: core62 63 power-domains:64 maxItems: 165 66 required:67 - compatible68 - clocks69 - clock-names70 - power-domains71 72 additionalProperties: false73 74 video-encoder:75 type: object76 77 properties:78 compatible:79 const: venus-encoder80 81 clocks:82 maxItems: 183 84 clock-names:85 items:86 - const: core87 88 power-domains:89 maxItems: 190 91 required:92 - compatible93 - clocks94 - clock-names95 - power-domains96 97 additionalProperties: false98 99required:100 - compatible101 - iommus102 - video-decoder103 - video-encoder104 105unevaluatedProperties: false106 107examples:108 - |109 #include <dt-bindings/interrupt-controller/arm-gic.h>110 #include <dt-bindings/clock/qcom,mmcc-msm8996.h>111 112 video-codec@c00000 {113 compatible = "qcom,msm8996-venus";114 reg = <0x00c00000 0xff000>;115 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;116 clocks = <&mmcc VIDEO_CORE_CLK>,117 <&mmcc VIDEO_AHB_CLK>,118 <&mmcc VIDEO_AXI_CLK>,119 <&mmcc VIDEO_MAXI_CLK>;120 clock-names = "core", "iface", "bus", "mbus";121 power-domains = <&mmcc VENUS_GDSC>;122 iommus = <&venus_smmu 0x00>,123 <&venus_smmu 0x01>,124 <&venus_smmu 0x0a>,125 <&venus_smmu 0x07>,126 <&venus_smmu 0x0e>,127 <&venus_smmu 0x0f>,128 <&venus_smmu 0x08>,129 <&venus_smmu 0x09>,130 <&venus_smmu 0x0b>,131 <&venus_smmu 0x0c>,132 <&venus_smmu 0x0d>,133 <&venus_smmu 0x10>,134 <&venus_smmu 0x11>,135 <&venus_smmu 0x21>,136 <&venus_smmu 0x28>,137 <&venus_smmu 0x29>,138 <&venus_smmu 0x2b>,139 <&venus_smmu 0x2c>,140 <&venus_smmu 0x2d>,141 <&venus_smmu 0x31>;142 memory-region = <&venus_mem>;143 144 video-decoder {145 compatible = "venus-decoder";146 clocks = <&mmcc VIDEO_SUBCORE0_CLK>;147 clock-names = "core";148 power-domains = <&mmcc VENUS_CORE0_GDSC>;149 };150 151 video-encoder {152 compatible = "venus-encoder";153 clocks = <&mmcc VIDEO_SUBCORE1_CLK>;154 clock-names = "core";155 power-domains = <&mmcc VENUS_CORE1_GDSC>;156 };157 };158