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,sdm845-venus-v2.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,sdm845-venus-v2
0020 
0021   reg:
0022     maxItems: 1
0023 
0024   interrupts:
0025     maxItems: 1
0026 
0027   power-domains:
0028     minItems: 3
0029     maxItems: 4
0030 
0031   power-domain-names:
0032     minItems: 3
0033     items:
0034       - const: venus
0035       - const: vcodec0
0036       - const: vcodec1
0037       - const: cx
0038 
0039   clocks:
0040     maxItems: 7
0041 
0042   clock-names:
0043     items:
0044       - const: core
0045       - const: iface
0046       - const: bus
0047       - const: vcodec0_core
0048       - const: vcodec0_bus
0049       - const: vcodec1_core
0050       - const: vcodec1_bus
0051 
0052   iommus:
0053     maxItems: 2
0054 
0055   memory-region:
0056     maxItems: 1
0057 
0058   video-core0:
0059     type: object
0060 
0061     properties:
0062       compatible:
0063         const: venus-decoder
0064 
0065     required:
0066       - compatible
0067 
0068     additionalProperties: false
0069 
0070   video-core1:
0071     type: object
0072 
0073     properties:
0074       compatible:
0075         const: venus-encoder
0076 
0077     required:
0078       - compatible
0079 
0080     additionalProperties: false
0081 
0082   video-firmware:
0083     type: object
0084 
0085     description: |
0086       Firmware subnode is needed when the platform does not
0087       have TrustZone.
0088 
0089     properties:
0090       iommus:
0091         maxItems: 1
0092 
0093     required:
0094       - iommus
0095 
0096 required:
0097   - compatible
0098   - reg
0099   - interrupts
0100   - power-domains
0101   - power-domain-names
0102   - clocks
0103   - clock-names
0104   - iommus
0105   - memory-region
0106   - video-core0
0107   - video-core1
0108 
0109 additionalProperties: false
0110 
0111 examples:
0112   - |
0113         #include <dt-bindings/interrupt-controller/arm-gic.h>
0114         #include <dt-bindings/clock/qcom,videocc-sdm845.h>
0115 
0116         video-codec@aa00000 {
0117                 compatible = "qcom,sdm845-venus-v2";
0118                 reg = <0x0aa00000 0xff000>;
0119                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0120                 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
0121                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
0122                          <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
0123                          <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
0124                          <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
0125                          <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
0126                          <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
0127                 clock-names = "core", "iface", "bus",
0128                               "vcodec0_core", "vcodec0_bus",
0129                               "vcodec1_core", "vcodec1_bus";
0130                 power-domains = <&videocc VENUS_GDSC>,
0131                                 <&videocc VCODEC0_GDSC>,
0132                                 <&videocc VCODEC1_GDSC>;
0133                 power-domain-names = "venus", "vcodec0", "vcodec1";
0134                 iommus = <&apps_smmu 0x10a0 0x8>,
0135                          <&apps_smmu 0x10b0 0x0>;
0136                 memory-region = <&venus_mem>;
0137 
0138                 video-core0 {
0139                         compatible = "venus-decoder";
0140                 };
0141 
0142                 video-core1 {
0143                         compatible = "venus-encoder";
0144                 };
0145         };