Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/media/qcom,sc7280-venus.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007 
0008 title: Qualcomm Venus video encode and decode accelerators
0009 
0010 maintainers:
0011   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
0012 
0013 description: |
0014   The Venus Iris2 IP is a video encode and decode accelerator present
0015   on Qualcomm platforms
0016 
0017 properties:
0018   compatible:
0019     const: qcom,sc7280-venus
0020 
0021   reg:
0022     maxItems: 1
0023 
0024   interrupts:
0025     maxItems: 1
0026 
0027   power-domains:
0028     minItems: 2
0029     maxItems: 3
0030 
0031   power-domain-names:
0032     minItems: 2
0033     items:
0034       - const: venus
0035       - const: vcodec0
0036       - const: cx
0037 
0038   clocks:
0039     maxItems: 5
0040 
0041   clock-names:
0042     items:
0043       - const: core
0044       - const: bus
0045       - const: iface
0046       - const: vcodec_core
0047       - const: vcodec_bus
0048 
0049   iommus:
0050     maxItems: 2
0051 
0052   memory-region:
0053     maxItems: 1
0054 
0055   interconnects:
0056     maxItems: 2
0057 
0058   interconnect-names:
0059     items:
0060       - const: cpu-cfg
0061       - const: video-mem
0062 
0063   video-decoder:
0064     type: object
0065 
0066     properties:
0067       compatible:
0068         const: venus-decoder
0069 
0070     required:
0071       - compatible
0072 
0073     additionalProperties: false
0074 
0075   video-encoder:
0076     type: object
0077 
0078     properties:
0079       compatible:
0080         const: venus-encoder
0081 
0082     required:
0083       - compatible
0084 
0085     additionalProperties: false
0086 
0087   video-firmware:
0088     type: object
0089 
0090     description: |
0091       Firmware subnode is needed when the platform does not
0092       have TrustZone.
0093 
0094     properties:
0095       iommus:
0096         maxItems: 1
0097 
0098     required:
0099       - iommus
0100 
0101 required:
0102   - compatible
0103   - reg
0104   - interrupts
0105   - power-domains
0106   - power-domain-names
0107   - clocks
0108   - clock-names
0109   - iommus
0110   - memory-region
0111   - video-decoder
0112   - video-encoder
0113 
0114 additionalProperties: false
0115 
0116 examples:
0117   - |
0118         #include <dt-bindings/interrupt-controller/arm-gic.h>
0119         #include <dt-bindings/clock/qcom,videocc-sc7280.h>
0120         #include <dt-bindings/interconnect/qcom,sc7280.h>
0121         #include <dt-bindings/power/qcom-rpmpd.h>
0122 
0123         venus: video-codec@aa00000 {
0124                 compatible = "qcom,sc7280-venus";
0125                 reg = <0x0aa00000 0xd0600>;
0126                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0127 
0128                 clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
0129                          <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
0130                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0131                          <&videocc VIDEO_CC_MVS0_CORE_CLK>,
0132                          <&videocc VIDEO_CC_MVS0_AXI_CLK>;
0133                 clock-names = "core", "bus", "iface",
0134                               "vcodec_core", "vcodec_bus";
0135 
0136                 power-domains = <&videocc MVSC_GDSC>,
0137                                 <&videocc MVS0_GDSC>,
0138                                 <&rpmhpd SC7280_CX>;
0139                 power-domain-names = "venus", "vcodec0", "cx";
0140 
0141                 interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
0142                                 <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
0143                 interconnect-names = "cpu-cfg", "video-mem";
0144 
0145                 iommus = <&apps_smmu 0x2180 0x20>,
0146                          <&apps_smmu 0x2184 0x20>;
0147 
0148                 memory-region = <&video_mem>;
0149 
0150                 video-decoder {
0151                         compatible = "venus-decoder";
0152                 };
0153 
0154                 video-encoder {
0155                         compatible = "venus-encoder";
0156                 };
0157 
0158                 video-firmware {
0159                         iommus = <&apps_smmu 0x21a2 0x0>;
0160                 };
0161         };