File Index
Files and directories
Sign in
FILE

qcom,sdm660-venus.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/media/qcom,sdm660-venus.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm SDM660 Venus video encode and decode accelerators
  8
  9maintainers:
 10  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
 11  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
 12
 13description: |
 14  The Venus IP is a video encode and decode accelerator present
 15  on Qualcomm platforms
 16
 17allOf:
 18  - $ref: qcom,venus-common.yaml#
 19
 20properties:
 21  compatible:
 22    const: qcom,sdm660-venus
 23
 24  clocks:
 25    maxItems: 4
 26
 27  clock-names:
 28    items:
 29      - const: core
 30      - const: iface
 31      - const: bus
 32      - const: bus_throttle
 33
 34  interconnects:
 35    maxItems: 2
 36
 37  interconnect-names:
 38    items:
 39      - const: cpu-cfg
 40      - const: video-mem
 41
 42  iommus:
 43    maxItems: 20
 44
 45  power-domains:
 46    maxItems: 1
 47
 48  video-decoder:
 49    type: object
 50
 51    properties:
 52      compatible:
 53        const: venus-decoder
 54
 55      clocks:
 56        maxItems: 1
 57
 58      clock-names:
 59        items:
 60          - const: vcodec0_core
 61
 62      power-domains:
 63        maxItems: 1
 64
 65    required:
 66      - compatible
 67      - clocks
 68      - clock-names
 69      - power-domains
 70
 71    additionalProperties: false
 72
 73  video-encoder:
 74    type: object
 75
 76    properties:
 77      compatible:
 78        const: venus-encoder
 79
 80      clocks:
 81        maxItems: 1
 82
 83      clock-names:
 84        items:
 85          - const: vcodec0_core
 86
 87      power-domains:
 88        maxItems: 1
 89
 90    required:
 91      - compatible
 92      - clocks
 93      - clock-names
 94      - power-domains
 95
 96    additionalProperties: false
 97
 98required:
 99  - compatible
100  - iommus
101  - video-decoder
102  - video-encoder
103
104unevaluatedProperties: false
105
106examples:
107  - |
108    #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
109    #include <dt-bindings/interrupt-controller/arm-gic.h>
110
111    video-codec@cc00000 {
112        compatible = "qcom,sdm660-venus";
113        reg = <0x0cc00000 0xff000>;
114        clocks = <&mmcc VIDEO_CORE_CLK>,
115                 <&mmcc VIDEO_AHB_CLK>,
116                 <&mmcc VIDEO_AXI_CLK>,
117                 <&mmcc THROTTLE_VIDEO_AXI_CLK>;
118        clock-names = "core", "iface", "bus", "bus_throttle";
119        interconnects = <&gnoc 0 &mnoc 13>,
120                        <&mnoc 4 &bimc 5>;
121        interconnect-names = "cpu-cfg", "video-mem";
122        interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
123        iommus = <&mmss_smmu 0x400>,
124                 <&mmss_smmu 0x401>,
125                 <&mmss_smmu 0x40a>,
126                 <&mmss_smmu 0x407>,
127                 <&mmss_smmu 0x40e>,
128                 <&mmss_smmu 0x40f>,
129                 <&mmss_smmu 0x408>,
130                 <&mmss_smmu 0x409>,
131                 <&mmss_smmu 0x40b>,
132                 <&mmss_smmu 0x40c>,
133                 <&mmss_smmu 0x40d>,
134                 <&mmss_smmu 0x410>,
135                 <&mmss_smmu 0x421>,
136                 <&mmss_smmu 0x428>,
137                 <&mmss_smmu 0x429>,
138                 <&mmss_smmu 0x42b>,
139                 <&mmss_smmu 0x42c>,
140                 <&mmss_smmu 0x42d>,
141                 <&mmss_smmu 0x411>,
142                 <&mmss_smmu 0x431>;
143        memory-region = <&venus_region>;
144        power-domains = <&mmcc VENUS_GDSC>;
145
146        video-decoder {
147            compatible = "venus-decoder";
148            clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
149            clock-names = "vcodec0_core";
150            power-domains = <&mmcc VENUS_CORE0_GDSC>;
151        };
152
153        video-encoder {
154            compatible = "venus-encoder";
155            clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
156            clock-names = "vcodec0_core";
157            power-domains = <&mmcc VENUS_CORE0_GDSC>;
158        };
159    };
~/ Read-only file preview.