brintos

brintos / linux-shallow public Read only

0
0
Text · 3.6 KiB · a51835b Raw
160 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,sdm660-venus.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm SDM660 Venus video encode and decode accelerators8 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 present15  on Qualcomm platforms16 17allOf:18  - $ref: qcom,venus-common.yaml#19 20properties:21  compatible:22    const: qcom,sdm660-venus23 24  clocks:25    maxItems: 426 27  clock-names:28    items:29      - const: core30      - const: iface31      - const: bus32      - const: bus_throttle33 34  interconnects:35    maxItems: 236 37  interconnect-names:38    items:39      - const: cpu-cfg40      - const: video-mem41 42  iommus:43    maxItems: 2044 45  power-domains:46    maxItems: 147 48  video-decoder:49    type: object50 51    properties:52      compatible:53        const: venus-decoder54 55      clocks:56        maxItems: 157 58      clock-names:59        items:60          - const: vcodec0_core61 62      power-domains:63        maxItems: 164 65    required:66      - compatible67      - clocks68      - clock-names69      - power-domains70 71    additionalProperties: false72 73  video-encoder:74    type: object75 76    properties:77      compatible:78        const: venus-encoder79 80      clocks:81        maxItems: 182 83      clock-names:84        items:85          - const: vcodec0_core86 87      power-domains:88        maxItems: 189 90    required:91      - compatible92      - clocks93      - clock-names94      - power-domains95 96    additionalProperties: false97 98required:99  - compatible100  - iommus101  - video-decoder102  - video-encoder103 104unevaluatedProperties: false105 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    };160