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: 21df7acc7eSStanimir Varbanov const: qcom,msm8996-venus 22df7acc7eSStanimir Varbanov 23df7acc7eSStanimir Varbanov power-domains: 24df7acc7eSStanimir Varbanov maxItems: 1 25df7acc7eSStanimir Varbanov 26df7acc7eSStanimir Varbanov clocks: 27df7acc7eSStanimir Varbanov maxItems: 4 28df7acc7eSStanimir Varbanov 29df7acc7eSStanimir Varbanov clock-names: 30df7acc7eSStanimir Varbanov items: 31df7acc7eSStanimir Varbanov - const: core 32df7acc7eSStanimir Varbanov - const: iface 33df7acc7eSStanimir Varbanov - const: bus 34df7acc7eSStanimir Varbanov - const: mbus 35df7acc7eSStanimir Varbanov 36*3ef86da7SKrzysztof Kozlowski interconnects: 37*3ef86da7SKrzysztof Kozlowski maxItems: 2 38*3ef86da7SKrzysztof Kozlowski 39*3ef86da7SKrzysztof Kozlowski interconnect-names: 40*3ef86da7SKrzysztof Kozlowski items: 41*3ef86da7SKrzysztof Kozlowski - const: video-mem 42*3ef86da7SKrzysztof Kozlowski - const: cpu-cfg 43*3ef86da7SKrzysztof Kozlowski 44df7acc7eSStanimir Varbanov iommus: 45df7acc7eSStanimir Varbanov maxItems: 20 46df7acc7eSStanimir Varbanov 47df7acc7eSStanimir Varbanov video-decoder: 48df7acc7eSStanimir Varbanov type: object 49df7acc7eSStanimir Varbanov 50df7acc7eSStanimir Varbanov properties: 51df7acc7eSStanimir Varbanov compatible: 52df7acc7eSStanimir Varbanov const: venus-decoder 53df7acc7eSStanimir Varbanov 54df7acc7eSStanimir Varbanov clocks: 55df7acc7eSStanimir Varbanov maxItems: 1 56df7acc7eSStanimir Varbanov 57df7acc7eSStanimir Varbanov clock-names: 58df7acc7eSStanimir Varbanov items: 59df7acc7eSStanimir Varbanov - const: core 60df7acc7eSStanimir Varbanov 61df7acc7eSStanimir Varbanov power-domains: 62df7acc7eSStanimir Varbanov maxItems: 1 63df7acc7eSStanimir Varbanov 64df7acc7eSStanimir Varbanov required: 65df7acc7eSStanimir Varbanov - compatible 66df7acc7eSStanimir Varbanov - clocks 67df7acc7eSStanimir Varbanov - clock-names 68df7acc7eSStanimir Varbanov - power-domains 69df7acc7eSStanimir Varbanov 70df7acc7eSStanimir Varbanov additionalProperties: false 71df7acc7eSStanimir Varbanov 72df7acc7eSStanimir Varbanov video-encoder: 73df7acc7eSStanimir Varbanov type: object 74df7acc7eSStanimir Varbanov 75df7acc7eSStanimir Varbanov properties: 76df7acc7eSStanimir Varbanov compatible: 77df7acc7eSStanimir Varbanov const: venus-encoder 78df7acc7eSStanimir Varbanov 79df7acc7eSStanimir Varbanov clocks: 80df7acc7eSStanimir Varbanov maxItems: 1 81df7acc7eSStanimir Varbanov 82df7acc7eSStanimir Varbanov clock-names: 83df7acc7eSStanimir Varbanov items: 84df7acc7eSStanimir Varbanov - const: core 85df7acc7eSStanimir Varbanov 86df7acc7eSStanimir Varbanov power-domains: 87df7acc7eSStanimir Varbanov maxItems: 1 88df7acc7eSStanimir Varbanov 89df7acc7eSStanimir Varbanov required: 90df7acc7eSStanimir Varbanov - compatible 91df7acc7eSStanimir Varbanov - clocks 92df7acc7eSStanimir Varbanov - clock-names 93df7acc7eSStanimir Varbanov - power-domains 94df7acc7eSStanimir Varbanov 95df7acc7eSStanimir Varbanov additionalProperties: false 96df7acc7eSStanimir Varbanov 97df7acc7eSStanimir Varbanovrequired: 98df7acc7eSStanimir Varbanov - compatible 99df7acc7eSStanimir Varbanov - iommus 100df7acc7eSStanimir Varbanov - video-decoder 101df7acc7eSStanimir Varbanov - video-encoder 102df7acc7eSStanimir Varbanov 103f8cc21d4SKrzysztof KozlowskiunevaluatedProperties: false 1045be478f9SRob Herring 105df7acc7eSStanimir Varbanovexamples: 106df7acc7eSStanimir Varbanov - | 107df7acc7eSStanimir Varbanov #include <dt-bindings/interrupt-controller/arm-gic.h> 108df7acc7eSStanimir Varbanov #include <dt-bindings/clock/qcom,mmcc-msm8996.h> 109df7acc7eSStanimir Varbanov 110df7acc7eSStanimir Varbanov video-codec@c00000 { 111df7acc7eSStanimir Varbanov compatible = "qcom,msm8996-venus"; 112df7acc7eSStanimir Varbanov reg = <0x00c00000 0xff000>; 113df7acc7eSStanimir Varbanov interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 114df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_CORE_CLK>, 115df7acc7eSStanimir Varbanov <&mmcc VIDEO_AHB_CLK>, 116df7acc7eSStanimir Varbanov <&mmcc VIDEO_AXI_CLK>, 117df7acc7eSStanimir Varbanov <&mmcc VIDEO_MAXI_CLK>; 118df7acc7eSStanimir Varbanov clock-names = "core", "iface", "bus", "mbus"; 119df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_GDSC>; 120df7acc7eSStanimir Varbanov iommus = <&venus_smmu 0x00>, 121df7acc7eSStanimir Varbanov <&venus_smmu 0x01>, 122df7acc7eSStanimir Varbanov <&venus_smmu 0x0a>, 123df7acc7eSStanimir Varbanov <&venus_smmu 0x07>, 124df7acc7eSStanimir Varbanov <&venus_smmu 0x0e>, 125df7acc7eSStanimir Varbanov <&venus_smmu 0x0f>, 126df7acc7eSStanimir Varbanov <&venus_smmu 0x08>, 127df7acc7eSStanimir Varbanov <&venus_smmu 0x09>, 128df7acc7eSStanimir Varbanov <&venus_smmu 0x0b>, 129df7acc7eSStanimir Varbanov <&venus_smmu 0x0c>, 130df7acc7eSStanimir Varbanov <&venus_smmu 0x0d>, 131df7acc7eSStanimir Varbanov <&venus_smmu 0x10>, 132df7acc7eSStanimir Varbanov <&venus_smmu 0x11>, 133df7acc7eSStanimir Varbanov <&venus_smmu 0x21>, 134df7acc7eSStanimir Varbanov <&venus_smmu 0x28>, 135df7acc7eSStanimir Varbanov <&venus_smmu 0x29>, 136df7acc7eSStanimir Varbanov <&venus_smmu 0x2b>, 137df7acc7eSStanimir Varbanov <&venus_smmu 0x2c>, 138df7acc7eSStanimir Varbanov <&venus_smmu 0x2d>, 139df7acc7eSStanimir Varbanov <&venus_smmu 0x31>; 140df7acc7eSStanimir Varbanov memory-region = <&venus_mem>; 141df7acc7eSStanimir Varbanov 142df7acc7eSStanimir Varbanov video-decoder { 143df7acc7eSStanimir Varbanov compatible = "venus-decoder"; 144df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 145df7acc7eSStanimir Varbanov clock-names = "core"; 146df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_CORE0_GDSC>; 147df7acc7eSStanimir Varbanov }; 148df7acc7eSStanimir Varbanov 149df7acc7eSStanimir Varbanov video-encoder { 150df7acc7eSStanimir Varbanov compatible = "venus-encoder"; 151df7acc7eSStanimir Varbanov clocks = <&mmcc VIDEO_SUBCORE1_CLK>; 152df7acc7eSStanimir Varbanov clock-names = "core"; 153df7acc7eSStanimir Varbanov power-domains = <&mmcc VENUS_CORE1_GDSC>; 154df7acc7eSStanimir Varbanov }; 155df7acc7eSStanimir Varbanov }; 156