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