1146b5bbfSStanimir Varbanov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2146b5bbfSStanimir Varbanov 3146b5bbfSStanimir Varbanov%YAML 1.2 4146b5bbfSStanimir Varbanov--- 5146b5bbfSStanimir Varbanov$id: "http://devicetree.org/schemas/media/qcom,msm8916-venus.yaml#" 6146b5bbfSStanimir Varbanov$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7146b5bbfSStanimir Varbanov 8146b5bbfSStanimir Varbanovtitle: Qualcomm Venus video encode and decode accelerators 9146b5bbfSStanimir Varbanov 10146b5bbfSStanimir Varbanovmaintainers: 11146b5bbfSStanimir Varbanov - Stanimir Varbanov <stanimir.varbanov@linaro.org> 12146b5bbfSStanimir Varbanov 13146b5bbfSStanimir Varbanovdescription: | 14146b5bbfSStanimir Varbanov The Venus IP is a video encode and decode accelerator present 15146b5bbfSStanimir Varbanov on Qualcomm platforms 16146b5bbfSStanimir Varbanov 17146b5bbfSStanimir Varbanovproperties: 18146b5bbfSStanimir Varbanov compatible: 19146b5bbfSStanimir Varbanov const: qcom,msm8916-venus 20146b5bbfSStanimir Varbanov 21146b5bbfSStanimir Varbanov reg: 22146b5bbfSStanimir Varbanov maxItems: 1 23146b5bbfSStanimir Varbanov 24146b5bbfSStanimir Varbanov interrupts: 25146b5bbfSStanimir Varbanov maxItems: 1 26146b5bbfSStanimir Varbanov 27146b5bbfSStanimir Varbanov power-domains: 28146b5bbfSStanimir Varbanov maxItems: 1 29146b5bbfSStanimir Varbanov 30146b5bbfSStanimir Varbanov clocks: 31146b5bbfSStanimir Varbanov maxItems: 3 32146b5bbfSStanimir Varbanov 33146b5bbfSStanimir Varbanov clock-names: 34146b5bbfSStanimir Varbanov items: 35146b5bbfSStanimir Varbanov - const: core 36146b5bbfSStanimir Varbanov - const: iface 37146b5bbfSStanimir Varbanov - const: bus 38146b5bbfSStanimir Varbanov 39146b5bbfSStanimir Varbanov iommus: 40146b5bbfSStanimir Varbanov maxItems: 1 41146b5bbfSStanimir Varbanov 42146b5bbfSStanimir Varbanov memory-region: 43146b5bbfSStanimir Varbanov maxItems: 1 44146b5bbfSStanimir Varbanov 45146b5bbfSStanimir Varbanov video-decoder: 46146b5bbfSStanimir Varbanov type: object 47146b5bbfSStanimir Varbanov 48146b5bbfSStanimir Varbanov properties: 49146b5bbfSStanimir Varbanov compatible: 50146b5bbfSStanimir Varbanov const: "venus-decoder" 51146b5bbfSStanimir Varbanov 52146b5bbfSStanimir Varbanov required: 53146b5bbfSStanimir Varbanov - compatible 54146b5bbfSStanimir Varbanov 55146b5bbfSStanimir Varbanov additionalProperties: false 56146b5bbfSStanimir Varbanov 57146b5bbfSStanimir Varbanov video-encoder: 58146b5bbfSStanimir Varbanov type: object 59146b5bbfSStanimir Varbanov 60146b5bbfSStanimir Varbanov properties: 61146b5bbfSStanimir Varbanov compatible: 62146b5bbfSStanimir Varbanov const: "venus-encoder" 63146b5bbfSStanimir Varbanov 64146b5bbfSStanimir Varbanov required: 65146b5bbfSStanimir Varbanov - compatible 66146b5bbfSStanimir Varbanov 67146b5bbfSStanimir Varbanov additionalProperties: false 68146b5bbfSStanimir Varbanov 69146b5bbfSStanimir Varbanov video-firmware: 70146b5bbfSStanimir Varbanov type: object 71146b5bbfSStanimir Varbanov 72146b5bbfSStanimir Varbanov description: | 73146b5bbfSStanimir Varbanov Firmware subnode is needed when the platform does not 74146b5bbfSStanimir Varbanov have TrustZone. 75146b5bbfSStanimir Varbanov 76146b5bbfSStanimir Varbanov properties: 77146b5bbfSStanimir Varbanov iommus: 78146b5bbfSStanimir Varbanov maxItems: 1 79146b5bbfSStanimir Varbanov 80146b5bbfSStanimir Varbanov required: 81146b5bbfSStanimir Varbanov - iommus 82146b5bbfSStanimir Varbanov 83146b5bbfSStanimir Varbanovrequired: 84146b5bbfSStanimir Varbanov - compatible 85146b5bbfSStanimir Varbanov - reg 86146b5bbfSStanimir Varbanov - interrupts 87146b5bbfSStanimir Varbanov - power-domains 88146b5bbfSStanimir Varbanov - clocks 89146b5bbfSStanimir Varbanov - clock-names 90146b5bbfSStanimir Varbanov - iommus 91146b5bbfSStanimir Varbanov - memory-region 92146b5bbfSStanimir Varbanov - video-decoder 93146b5bbfSStanimir Varbanov - video-encoder 94146b5bbfSStanimir Varbanov 955be478f9SRob HerringadditionalProperties: false 965be478f9SRob Herring 97146b5bbfSStanimir Varbanovexamples: 98146b5bbfSStanimir Varbanov - | 99146b5bbfSStanimir Varbanov #include <dt-bindings/interrupt-controller/arm-gic.h> 100146b5bbfSStanimir Varbanov #include <dt-bindings/clock/qcom,gcc-msm8916.h> 101146b5bbfSStanimir Varbanov 102146b5bbfSStanimir Varbanov video-codec@1d00000 { 103146b5bbfSStanimir Varbanov compatible = "qcom,msm8916-venus"; 104146b5bbfSStanimir Varbanov reg = <0x01d00000 0xff000>; 105146b5bbfSStanimir Varbanov interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 106146b5bbfSStanimir Varbanov clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>, 107146b5bbfSStanimir Varbanov <&gcc GCC_VENUS0_AHB_CLK>, 108146b5bbfSStanimir Varbanov <&gcc GCC_VENUS0_AXI_CLK>; 109146b5bbfSStanimir Varbanov clock-names = "core", "iface", "bus"; 110146b5bbfSStanimir Varbanov power-domains = <&gcc VENUS_GDSC>; 111146b5bbfSStanimir Varbanov iommus = <&apps_iommu 5>; 112146b5bbfSStanimir Varbanov memory-region = <&venus_mem>; 113146b5bbfSStanimir Varbanov 114146b5bbfSStanimir Varbanov video-decoder { 115146b5bbfSStanimir Varbanov compatible = "venus-decoder"; 116146b5bbfSStanimir Varbanov }; 117146b5bbfSStanimir Varbanov 118146b5bbfSStanimir Varbanov video-encoder { 119146b5bbfSStanimir Varbanov compatible = "venus-encoder"; 120146b5bbfSStanimir Varbanov }; 121146b5bbfSStanimir Varbanov }; 122