1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 3%YAML 1.2 4--- 5$id: "http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml#" 6$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 8title: Qualcomm Venus video encode and decode accelerators 9 10maintainers: 11 - Stanimir Varbanov <stanimir.varbanov@linaro.org> 12 - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 13 14description: | 15 The Venus IP is a video encode and decode accelerator present 16 on Qualcomm platforms 17 18properties: 19 compatible: 20 const: qcom,sdm660-venus 21 22 reg: 23 maxItems: 1 24 25 clocks: 26 maxItems: 4 27 28 clock-names: 29 items: 30 - const: core 31 - const: iface 32 - const: bus 33 - const: bus_throttle 34 35 interconnects: 36 maxItems: 2 37 38 interconnect-names: 39 items: 40 - const: cpu-cfg 41 - const: video-mem 42 43 interrupts: 44 maxItems: 1 45 46 iommus: 47 maxItems: 20 48 49 memory-region: 50 maxItems: 1 51 52 power-domains: 53 maxItems: 1 54 55 video-decoder: 56 type: object 57 58 properties: 59 compatible: 60 const: venus-decoder 61 62 clocks: 63 maxItems: 1 64 65 clock-names: 66 items: 67 - const: vcodec0_core 68 69 power-domains: 70 maxItems: 1 71 72 required: 73 - compatible 74 - clocks 75 - clock-names 76 - power-domains 77 78 additionalProperties: false 79 80 video-encoder: 81 type: object 82 83 properties: 84 compatible: 85 const: venus-encoder 86 87 clocks: 88 maxItems: 1 89 90 clock-names: 91 items: 92 - const: vcodec0_core 93 94 power-domains: 95 maxItems: 1 96 97 required: 98 - compatible 99 - clocks 100 - clock-names 101 - power-domains 102 103 additionalProperties: false 104 105 video-firmware: 106 type: object 107 additionalProperties: false 108 109 description: | 110 Firmware subnode is needed when the platform does not 111 have TrustZone. 112 113 properties: 114 iommus: 115 maxItems: 1 116 117 required: 118 - iommus 119 120required: 121 - compatible 122 - reg 123 - clocks 124 - clock-names 125 - interrupts 126 - iommus 127 - memory-region 128 - power-domains 129 - video-decoder 130 - video-encoder 131 132additionalProperties: false 133 134examples: 135 - | 136 #include <dt-bindings/clock/qcom,mmcc-sdm660.h> 137 #include <dt-bindings/interrupt-controller/arm-gic.h> 138 139 video-codec@cc00000 { 140 compatible = "qcom,sdm660-venus"; 141 reg = <0x0cc00000 0xff000>; 142 clocks = <&mmcc VIDEO_CORE_CLK>, 143 <&mmcc VIDEO_AHB_CLK>, 144 <&mmcc VIDEO_AXI_CLK>, 145 <&mmcc THROTTLE_VIDEO_AXI_CLK>; 146 clock-names = "core", "iface", "bus", "bus_throttle"; 147 interconnects = <&gnoc 0 &mnoc 13>, 148 <&mnoc 4 &bimc 5>; 149 interconnect-names = "cpu-cfg", "video-mem"; 150 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 151 iommus = <&mmss_smmu 0x400>, 152 <&mmss_smmu 0x401>, 153 <&mmss_smmu 0x40a>, 154 <&mmss_smmu 0x407>, 155 <&mmss_smmu 0x40e>, 156 <&mmss_smmu 0x40f>, 157 <&mmss_smmu 0x408>, 158 <&mmss_smmu 0x409>, 159 <&mmss_smmu 0x40b>, 160 <&mmss_smmu 0x40c>, 161 <&mmss_smmu 0x40d>, 162 <&mmss_smmu 0x410>, 163 <&mmss_smmu 0x421>, 164 <&mmss_smmu 0x428>, 165 <&mmss_smmu 0x429>, 166 <&mmss_smmu 0x42b>, 167 <&mmss_smmu 0x42c>, 168 <&mmss_smmu 0x42d>, 169 <&mmss_smmu 0x411>, 170 <&mmss_smmu 0x431>; 171 memory-region = <&venus_region>; 172 power-domains = <&mmcc VENUS_GDSC>; 173 174 video-decoder { 175 compatible = "venus-decoder"; 176 clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 177 clock-names = "vcodec0_core"; 178 power-domains = <&mmcc VENUS_CORE0_GDSC>; 179 }; 180 181 video-encoder { 182 compatible = "venus-encoder"; 183 clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 184 clock-names = "vcodec0_core"; 185 power-domains = <&mmcc VENUS_CORE0_GDSC>; 186 }; 187 }; 188