brintos

brintos / linux-shallow public Read only

0
0
Text · 3.4 KiB · 56c1645 Raw
158 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/media/qcom,msm8996-venus.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm MSM8996 Venus video encode and decode accelerators8 9maintainers:10  - Stanimir Varbanov <stanimir.varbanov@linaro.org>11 12description: |13  The Venus IP is a video encode and decode accelerator present14  on Qualcomm platforms15 16allOf:17  - $ref: qcom,venus-common.yaml#18 19properties:20  compatible:21    enum:22      - qcom,msm8996-venus23      - qcom,msm8998-venus24 25  power-domains:26    maxItems: 127 28  clocks:29    maxItems: 430 31  clock-names:32    items:33      - const: core34      - const: iface35      - const: bus36      - const: mbus37 38  interconnects:39    maxItems: 240 41  interconnect-names:42    items:43      - const: video-mem44      - const: cpu-cfg45 46  iommus:47    maxItems: 2048 49  video-decoder:50    type: object51 52    properties:53      compatible:54        const: venus-decoder55 56      clocks:57        maxItems: 158 59      clock-names:60        items:61          - const: core62 63      power-domains:64        maxItems: 165 66    required:67      - compatible68      - clocks69      - clock-names70      - power-domains71 72    additionalProperties: false73 74  video-encoder:75    type: object76 77    properties:78      compatible:79        const: venus-encoder80 81      clocks:82        maxItems: 183 84      clock-names:85        items:86          - const: core87 88      power-domains:89        maxItems: 190 91    required:92      - compatible93      - clocks94      - clock-names95      - power-domains96 97    additionalProperties: false98 99required:100  - compatible101  - iommus102  - video-decoder103  - video-encoder104 105unevaluatedProperties: false106 107examples:108  - |109    #include <dt-bindings/interrupt-controller/arm-gic.h>110    #include <dt-bindings/clock/qcom,mmcc-msm8996.h>111 112    video-codec@c00000 {113        compatible = "qcom,msm8996-venus";114        reg = <0x00c00000 0xff000>;115        interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;116        clocks = <&mmcc VIDEO_CORE_CLK>,117                 <&mmcc VIDEO_AHB_CLK>,118                 <&mmcc VIDEO_AXI_CLK>,119                 <&mmcc VIDEO_MAXI_CLK>;120        clock-names = "core", "iface", "bus", "mbus";121        power-domains = <&mmcc VENUS_GDSC>;122        iommus =  <&venus_smmu 0x00>,123                  <&venus_smmu 0x01>,124                  <&venus_smmu 0x0a>,125                  <&venus_smmu 0x07>,126                  <&venus_smmu 0x0e>,127                  <&venus_smmu 0x0f>,128                  <&venus_smmu 0x08>,129                  <&venus_smmu 0x09>,130                  <&venus_smmu 0x0b>,131                  <&venus_smmu 0x0c>,132                  <&venus_smmu 0x0d>,133                  <&venus_smmu 0x10>,134                  <&venus_smmu 0x11>,135                  <&venus_smmu 0x21>,136                  <&venus_smmu 0x28>,137                  <&venus_smmu 0x29>,138                  <&venus_smmu 0x2b>,139                  <&venus_smmu 0x2c>,140                  <&venus_smmu 0x2d>,141                  <&venus_smmu 0x31>;142        memory-region = <&venus_mem>;143 144        video-decoder {145            compatible = "venus-decoder";146            clocks = <&mmcc VIDEO_SUBCORE0_CLK>;147            clock-names = "core";148            power-domains = <&mmcc VENUS_CORE0_GDSC>;149        };150 151        video-encoder {152            compatible = "venus-encoder";153            clocks = <&mmcc VIDEO_SUBCORE1_CLK>;154            clock-names = "core";155            power-domains = <&mmcc VENUS_CORE1_GDSC>;156        };157    };158