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