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,sm8250-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,sm8250-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: mx
0037 
0038   clocks:
0039     maxItems: 3
0040 
0041   clock-names:
0042     items:
0043       - const: iface
0044       - const: core
0045       - const: vcodec0_core
0046 
0047   iommus:
0048     maxItems: 1
0049 
0050   memory-region:
0051     maxItems: 1
0052 
0053   interconnects:
0054     maxItems: 2
0055 
0056   interconnect-names:
0057     items:
0058       - const: cpu-cfg
0059       - const: video-mem
0060 
0061   resets:
0062     maxItems: 2
0063 
0064   reset-names:
0065     items:
0066       - const: bus
0067       - const: core
0068 
0069   video-decoder:
0070     type: object
0071 
0072     properties:
0073       compatible:
0074         const: venus-decoder
0075 
0076     required:
0077       - compatible
0078 
0079     additionalProperties: false
0080 
0081   video-encoder:
0082     type: object
0083 
0084     properties:
0085       compatible:
0086         const: venus-encoder
0087 
0088     required:
0089       - compatible
0090 
0091     additionalProperties: false
0092 
0093   video-firmware:
0094     type: object
0095 
0096     description: |
0097       Firmware subnode is needed when the platform does not
0098       have TrustZone.
0099 
0100     properties:
0101       iommus:
0102         maxItems: 1
0103 
0104     required:
0105       - iommus
0106 
0107 required:
0108   - compatible
0109   - reg
0110   - interrupts
0111   - power-domains
0112   - power-domain-names
0113   - clocks
0114   - clock-names
0115   - interconnects
0116   - interconnect-names
0117   - iommus
0118   - memory-region
0119   - resets
0120   - reset-names
0121   - video-decoder
0122   - video-encoder
0123 
0124 additionalProperties: false
0125 
0126 examples:
0127   - |
0128         #include <dt-bindings/interrupt-controller/arm-gic.h>
0129         #include <dt-bindings/clock/qcom,videocc-sm8250.h>
0130         #include <dt-bindings/interconnect/qcom,sm8250.h>
0131         #include <dt-bindings/clock/qcom,gcc-sm8250.h>
0132         #include <dt-bindings/power/qcom-rpmpd.h>
0133 
0134         venus: video-codec@aa00000 {
0135             compatible = "qcom,sm8250-venus";
0136             reg = <0x0aa00000 0xff000>;
0137             interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0138             power-domains = <&videocc MVS0C_GDSC>,
0139                             <&videocc MVS0_GDSC>,
0140                             <&rpmhpd SM8250_MX>;
0141             power-domain-names = "venus", "vcodec0", "mx";
0142 
0143             clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
0144                      <&videocc VIDEO_CC_MVS0C_CLK>,
0145                      <&videocc VIDEO_CC_MVS0_CLK>;
0146             clock-names = "iface", "core", "vcodec0_core";
0147 
0148             interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_VENUS_CFG>,
0149                             <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI_CH0>;
0150             interconnect-names = "cpu-cfg", "video-mem";
0151 
0152             iommus = <&apps_smmu 0x2100 0x0400>;
0153             memory-region = <&video_mem>;
0154 
0155             resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
0156                      <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
0157             reset-names = "bus", "core";
0158 
0159             video-decoder {
0160                 compatible = "venus-decoder";
0161             };
0162 
0163             video-encoder {
0164                 compatible = "venus-encoder";
0165             };
0166         };