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,sdm845-venus-v2.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 IP is a video encode and decode accelerator present 15 on Qualcomm platforms 16 17properties: 18 compatible: 19 const: qcom,sdm845-venus-v2 20 21 reg: 22 maxItems: 1 23 24 interrupts: 25 maxItems: 1 26 27 power-domains: 28 maxItems: 3 29 30 power-domain-names: 31 items: 32 - const: venus 33 - const: vcodec0 34 - const: vcodec1 35 36 clocks: 37 maxItems: 7 38 39 clock-names: 40 items: 41 - const: core 42 - const: iface 43 - const: bus 44 - const: vcodec0_core 45 - const: vcodec0_bus 46 - const: vcodec1_core 47 - const: vcodec1_bus 48 49 iommus: 50 maxItems: 2 51 52 memory-region: 53 maxItems: 1 54 55 video-core0: 56 type: object 57 58 properties: 59 compatible: 60 const: venus-decoder 61 62 required: 63 - compatible 64 65 additionalProperties: false 66 67 video-core1: 68 type: object 69 70 properties: 71 compatible: 72 const: venus-encoder 73 74 required: 75 - compatible 76 77 additionalProperties: false 78 79 video-firmware: 80 type: object 81 82 description: | 83 Firmware subnode is needed when the platform does not 84 have TrustZone. 85 86 properties: 87 iommus: 88 maxItems: 1 89 90 required: 91 - iommus 92 93required: 94 - compatible 95 - reg 96 - interrupts 97 - power-domains 98 - power-domain-names 99 - clocks 100 - clock-names 101 - iommus 102 - memory-region 103 - video-core0 104 - video-core1 105 106examples: 107 - | 108 #include <dt-bindings/interrupt-controller/arm-gic.h> 109 #include <dt-bindings/clock/qcom,videocc-sdm845.h> 110 111 video-codec@aa00000 { 112 compatible = "qcom,sdm845-venus-v2"; 113 reg = <0 0x0aa00000 0 0xff000>; 114 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 115 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>, 116 <&videocc VIDEO_CC_VENUS_AHB_CLK>, 117 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>, 118 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>, 119 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>, 120 <&videocc VIDEO_CC_VCODEC1_CORE_CLK>, 121 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>; 122 clock-names = "core", "iface", "bus", 123 "vcodec0_core", "vcodec0_bus", 124 "vcodec1_core", "vcodec1_bus"; 125 power-domains = <&videocc VENUS_GDSC>, 126 <&videocc VCODEC0_GDSC>, 127 <&videocc VCODEC1_GDSC>; 128 power-domain-names = "venus", "vcodec0", "vcodec1"; 129 iommus = <&apps_smmu 0x10a0 0x8>, 130 <&apps_smmu 0x10b0 0x0>; 131 memory-region = <&venus_mem>; 132 133 video-core0 { 134 compatible = "venus-decoder"; 135 }; 136 137 video-core1 { 138 compatible = "venus-encoder"; 139 }; 140 }; 141