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,sc7180-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 IP is a video encode and decode accelerator present
0015   on Qualcomm platforms
0016 
0017 properties:
0018   compatible:
0019     const: qcom,sc7180-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: iface
0045       - const: bus
0046       - const: vcodec0_core
0047       - const: vcodec0_bus
0048 
0049   iommus:
0050     maxItems: 1
0051 
0052   memory-region:
0053     maxItems: 1
0054 
0055   interconnects:
0056     maxItems: 2
0057 
0058   interconnect-names:
0059     items:
0060       - const: video-mem
0061       - const: cpu-cfg
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-sc7180.h>
0120 
0121         venus: video-codec@aa00000 {
0122                 compatible = "qcom,sc7180-venus";
0123                 reg = <0x0aa00000 0xff000>;
0124                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0125                 power-domains = <&videocc VENUS_GDSC>,
0126                                 <&videocc VCODEC0_GDSC>;
0127                 power-domain-names = "venus", "vcodec0";
0128                 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
0129                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0130                          <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
0131                          <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
0132                          <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
0133                 clock-names = "core", "iface", "bus",
0134                               "vcodec0_core", "vcodec0_bus";
0135                 iommus = <&apps_smmu 0x0c00 0x60>;
0136                 memory-region = <&venus_mem>;
0137 
0138                 video-decoder {
0139                         compatible = "venus-decoder";
0140                 };
0141 
0142                 video-encoder {
0143                         compatible = "venus-encoder";
0144                 };
0145         };