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