1df7acc7eSStanimir Varbanov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2df7acc7eSStanimir Varbanov%YAML 1.2 3df7acc7eSStanimir Varbanov--- 4af2270e0SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/qcom,msm8996-venus.yaml# 5af2270e0SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6df7acc7eSStanimir Varbanov 7af2270e0SKrzysztof Kozlowskititle: Qualcomm MSM8996 Venus video encode and decode accelerators 8df7acc7eSStanimir Varbanov 9df7acc7eSStanimir Varbanovmaintainers: 10df7acc7eSStanimir Varbanov - Stanimir Varbanov <stanimir.varbanov@linaro.org> 11df7acc7eSStanimir Varbanov 12df7acc7eSStanimir Varbanovdescription: | 13df7acc7eSStanimir Varbanov The Venus IP is a video encode and decode accelerator present 14df7acc7eSStanimir Varbanov on Qualcomm platforms 15df7acc7eSStanimir Varbanov 16f8cc21d4SKrzysztof KozlowskiallOf: 17f8cc21d4SKrzysztof Kozlowski - $ref: qcom,venus-common.yaml# 18f8cc21d4SKrzysztof Kozlowski 19df7acc7eSStanimir Varbanovproperties: 20df7acc7eSStanimir Varbanov compatible: 21*599a0bc7SMarc Gonzalez enum: 22*599a0bc7SMarc Gonzalez - qcom,msm8996-venus 23*599a0bc7SMarc Gonzalez - qcom,msm8998-venus 24df7acc7eSStanimir Varbanov 25df7acc7eSStanimir Varbanov power-domains: 26df7acc7eSStanimir Varbanov maxItems: 1 27df7acc7eSStanimir Varbanov 28df7acc7eSStanimir Varbanov clocks: 29df7acc7eSStanimir Varbanov maxItems: 4 30df7acc7eSStanimir Varbanov 31df7acc7eSStanimir Varbanov clock-names: 32df7acc7eSStanimir Varbanov items: 33df7acc7eSStanimir Varbanov - const: core 34df7acc7eSStanimir Varbanov - const: iface 35df7acc7eSStanimir Varbanov - const: bus 36df7acc7eSStanimir Varbanov - const: mbus 37df7acc7eSStanimir Varbanov 383ef86da7SKrzysztof Kozlowski interconnects: 393ef86da7SKrzysztof Kozlowski maxItems: 2 403ef86da7SKrzysztof Kozlowski 413ef86da7SKrzysztof Kozlowski interconnect-names: 423ef86da7SKrzysztof Kozlowski items: 433ef86da7SKrzysztof Kozlowski - const: video-mem 443ef86da7SKrzysztof Kozlowski - const: cpu-cfg 453ef86da7SKrzysztof Kozlowski 46df7acc7eSStanimir Varbanov iommus: 47df7acc7eSStanimir Varbanov maxItems: 20 48df7acc7eSStanimir Varbanov 49df7acc7eSStanimir Varbanov video-decoder: 50df7acc7eSStanimir Varbanov type: object 51df7acc7eSStanimir Varbanov 52df7acc7eSStanimir Varbanov properties: 53df7acc7eSStanimir Varbanov compatible: 54df7acc7eSStanimir Varbanov const: venus-decoder 55df7acc7eSStanimir Varbanov 56df7acc7eSStanimir Varbanov clocks: 57df7acc7eSStanimir Varbanov maxItems: 1 58df7acc7eSStanimir Varbanov 59df7acc7eSStanimir Varbanov clock-names: 60df7acc7eSStanimir Varbanov items: 61df7acc7eSStanimir Varbanov - const: core 62df7acc7eSStanimir Varbanov 63df7acc7eSStanimir Varbanov power-domains: 64df7acc7eSStanimir Varbanov maxItems: 1 65df7acc7eSStanimir Varbanov 66df7acc7eSStanimir Varbanov required: 67df7acc7eSStanimir Varbanov - compatible 68df7acc7eSStanimir Varbanov - clocks 69df7acc7eSStanimir Varbanov - clock-names 70df7acc7eSStanimir Varbanov - power-domains 71df7acc7eSStanimir Varbanov 72df7acc7eSStanimir Varbanov additionalProperties: false 73df7acc7eSStanimir Varbanov 74df7acc7eSStanimir Varbanov video-encoder: 75df7acc7eSStanimir Varbanov type: object 76df7acc7eSStanimir Varbanov 77df7acc7eSStanimir Varbanov properties: 78df7acc7eSStanimir Varbanov compatible: 79df7acc7eSStanimir Varbanov const: venus-encoder 80df7acc7eSStanimir Varbanov 81df7acc7eSStanimir Varbanov clocks: 82df7acc7eSStanimir Varbanov maxItems: 1 83df7acc7eSStanimir Varbanov 84df7acc7eSStanimir Varbanov clock-names: 85df7acc7eSStanimir Varbanov items: 86df7acc7eSStanimir Varbanov - const: core 87df7acc7eSStanimir Varbanov 88df7acc7eSStanimir Varbanov power-domains: 89df7acc7eSStanimir Varbanov maxItems: 1 90df7acc7eSStanimir Varbanov 91df7acc7eSStanimir Varbanov required: 92df7acc7eSStanimir Varbanov - compatible 93df7acc7eSStanimir Varbanov - clocks 94df7acc7eSStanimir Varbanov - clock-names 95df7acc7eSStanimir Varbanov - power-domains 96df7acc7eSStanimir Varbanov 97df7acc7eSStanimir Varbanov additionalProperties: false 98df7acc7eSStanimir Varbanov 99df7acc7eSStanimir Varbanovrequired: 100df7acc7eSStanimir Varbanov - compatible 101df7acc7eSStanimir Varbanov - iommus 102df7acc7eSStanimir Varbanov - video-decoder 103df7acc7eSStanimir Varbanov - video-encoder 104df7acc7eSStanimir Varbanov 105f8cc21d4SKrzysztof KozlowskiunevaluatedProperties: false 1065be478f9SRob Herring 107df7acc7eSStanimir Varbanovexamples: 108df7acc7eSStanimir Varbanov - | 109df7acc7eSStanimir Varbanov #include <dt-bindings/interrupt-controller/arm-gic.h> 110df7acc7eSStanimir Varbanov #include <dt-bindings/clock/qcom,mmcc-msm8996.h> 111df7acc7eSStanimir Varbanov 112df7acc7eSStanimir Varbanov video-codec@c00000 { 113df7acc7eSStanimir Varbanov compatible = "qcom,msm8996-venus"; 114df7acc7eSStanimir Varbanov reg = <0x00c00000 0xff000>; 115df7acc7eSStanimir Varbanov interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 116df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_CORE_CLK>, 117df7acc7eSStanimir Varbanov <&mmcc VIDEO_AHB_CLK>, 118df7acc7eSStanimir Varbanov <&mmcc VIDEO_AXI_CLK>, 119df7acc7eSStanimir Varbanov <&mmcc VIDEO_MAXI_CLK>; 120df7acc7eSStanimir Varbanov clock-names = "core", "iface", "bus", "mbus"; 121df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_GDSC>; 122df7acc7eSStanimir Varbanov iommus = <&venus_smmu 0x00>, 123df7acc7eSStanimir Varbanov <&venus_smmu 0x01>, 124df7acc7eSStanimir Varbanov <&venus_smmu 0x0a>, 125df7acc7eSStanimir Varbanov <&venus_smmu 0x07>, 126df7acc7eSStanimir Varbanov <&venus_smmu 0x0e>, 127df7acc7eSStanimir Varbanov <&venus_smmu 0x0f>, 128df7acc7eSStanimir Varbanov <&venus_smmu 0x08>, 129df7acc7eSStanimir Varbanov <&venus_smmu 0x09>, 130df7acc7eSStanimir Varbanov <&venus_smmu 0x0b>, 131df7acc7eSStanimir Varbanov <&venus_smmu 0x0c>, 132df7acc7eSStanimir Varbanov <&venus_smmu 0x0d>, 133df7acc7eSStanimir Varbanov <&venus_smmu 0x10>, 134df7acc7eSStanimir Varbanov <&venus_smmu 0x11>, 135df7acc7eSStanimir Varbanov <&venus_smmu 0x21>, 136df7acc7eSStanimir Varbanov <&venus_smmu 0x28>, 137df7acc7eSStanimir Varbanov <&venus_smmu 0x29>, 138df7acc7eSStanimir Varbanov <&venus_smmu 0x2b>, 139df7acc7eSStanimir Varbanov <&venus_smmu 0x2c>, 140df7acc7eSStanimir Varbanov <&venus_smmu 0x2d>, 141df7acc7eSStanimir Varbanov <&venus_smmu 0x31>; 142df7acc7eSStanimir Varbanov memory-region = <&venus_mem>; 143df7acc7eSStanimir Varbanov 144df7acc7eSStanimir Varbanov video-decoder { 145df7acc7eSStanimir Varbanov compatible = "venus-decoder"; 146df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 147df7acc7eSStanimir Varbanov clock-names = "core"; 148df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_CORE0_GDSC>; 149df7acc7eSStanimir Varbanov }; 150df7acc7eSStanimir Varbanov 151df7acc7eSStanimir Varbanov video-encoder { 152df7acc7eSStanimir Varbanov compatible = "venus-encoder"; 153df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_SUBCORE1_CLK>; 154df7acc7eSStanimir Varbanov clock-names = "core"; 155df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_CORE1_GDSC>; 156df7acc7eSStanimir Varbanov }; 157df7acc7eSStanimir Varbanov }; 158