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,sc7280-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 13description: | 14 The Venus Iris2 IP is a video encode and decode accelerator present 15 on Qualcomm platforms 16 17properties: 18 compatible: 19 const: qcom,sc7280-venus 20 21 reg: 22 maxItems: 1 23 24 interrupts: 25 maxItems: 1 26 27 power-domains: 28 minItems: 2 29 maxItems: 3 30 31 power-domain-names: 32 minItems: 2 33 maxItems: 3 34 items: 35 - const: venus 36 - const: vcodec0 37 - const: cx 38 39 clocks: 40 maxItems: 5 41 42 clock-names: 43 items: 44 - const: core 45 - const: bus 46 - const: iface 47 - const: vcodec_core 48 - const: vcodec_bus 49 50 iommus: 51 maxItems: 2 52 53 memory-region: 54 maxItems: 1 55 56 interconnects: 57 maxItems: 2 58 59 interconnect-names: 60 items: 61 - const: cpu-cfg 62 - const: video-mem 63 64 video-decoder: 65 type: object 66 67 properties: 68 compatible: 69 const: venus-decoder 70 71 required: 72 - compatible 73 74 additionalProperties: false 75 76 video-encoder: 77 type: object 78 79 properties: 80 compatible: 81 const: venus-encoder 82 83 required: 84 - compatible 85 86 additionalProperties: false 87 88 video-firmware: 89 type: object 90 91 description: | 92 Firmware subnode is needed when the platform does not 93 have TrustZone. 94 95 properties: 96 iommus: 97 maxItems: 1 98 99 required: 100 - iommus 101 102required: 103 - compatible 104 - reg 105 - interrupts 106 - power-domains 107 - power-domain-names 108 - clocks 109 - clock-names 110 - iommus 111 - memory-region 112 - video-decoder 113 - video-encoder 114 115additionalProperties: false 116 117examples: 118 - | 119 #include <dt-bindings/interrupt-controller/arm-gic.h> 120 #include <dt-bindings/clock/qcom,videocc-sc7280.h> 121 #include <dt-bindings/interconnect/qcom,sc7280.h> 122 #include <dt-bindings/power/qcom-rpmpd.h> 123 124 venus: video-codec@aa00000 { 125 compatible = "qcom,sc7280-venus"; 126 reg = <0x0aa00000 0xd0600>; 127 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 128 129 clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>, 130 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>, 131 <&videocc VIDEO_CC_VENUS_AHB_CLK>, 132 <&videocc VIDEO_CC_MVS0_CORE_CLK>, 133 <&videocc VIDEO_CC_MVS0_AXI_CLK>; 134 clock-names = "core", "bus", "iface", 135 "vcodec_core", "vcodec_bus"; 136 137 power-domains = <&videocc MVSC_GDSC>, 138 <&videocc MVS0_GDSC>, 139 <&rpmhpd SC7280_CX>; 140 power-domain-names = "venus", "vcodec0", "cx"; 141 142 interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>, 143 <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; 144 interconnect-names = "cpu-cfg", "video-mem"; 145 146 iommus = <&apps_smmu 0x2180 0x20>, 147 <&apps_smmu 0x2184 0x20>; 148 149 memory-region = <&video_mem>; 150 151 video-decoder { 152 compatible = "venus-decoder"; 153 }; 154 155 video-encoder { 156 compatible = "venus-encoder"; 157 }; 158 159 video-firmware { 160 iommus = <&apps_smmu 0x21a2 0x0>; 161 }; 162 }; 163