cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qcom,msm8996-venus.yaml (4059B)


      1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
      2
      3%YAML 1.2
      4---
      5$id: "http://devicetree.org/schemas/media/qcom,msm8996-venus.yaml#"
      6$schema: "http://devicetree.org/meta-schemas/core.yaml#"
      7
      8title: Qualcomm Venus video encode and decode accelerators
      9
     10maintainers:
     11  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
     12
     13description: |
     14  The Venus IP is a video encode and decode accelerator present
     15  on Qualcomm platforms
     16
     17properties:
     18  compatible:
     19    const: qcom,msm8996-venus
     20
     21  reg:
     22    maxItems: 1
     23
     24  interrupts:
     25    maxItems: 1
     26
     27  power-domains:
     28    maxItems: 1
     29
     30  clocks:
     31    maxItems: 4
     32
     33  clock-names:
     34    items:
     35      - const: core
     36      - const: iface
     37      - const: bus
     38      - const: mbus
     39
     40  iommus:
     41    maxItems: 20
     42
     43  memory-region:
     44    maxItems: 1
     45
     46  video-decoder:
     47    type: object
     48
     49    properties:
     50      compatible:
     51        const: venus-decoder
     52
     53      clocks:
     54        maxItems: 1
     55
     56      clock-names:
     57        items:
     58          - const: core
     59
     60      power-domains:
     61        maxItems: 1
     62
     63    required:
     64      - compatible
     65      - clocks
     66      - clock-names
     67      - power-domains
     68
     69    additionalProperties: false
     70
     71  video-encoder:
     72    type: object
     73
     74    properties:
     75      compatible:
     76        const: venus-encoder
     77
     78      clocks:
     79        maxItems: 1
     80
     81      clock-names:
     82        items:
     83          - const: core
     84
     85      power-domains:
     86        maxItems: 1
     87
     88    required:
     89      - compatible
     90      - clocks
     91      - clock-names
     92      - power-domains
     93
     94    additionalProperties: false
     95
     96  video-firmware:
     97    type: object
     98
     99    description: |
    100      Firmware subnode is needed when the platform does not
    101      have TrustZone.
    102
    103    properties:
    104      iommus:
    105        maxItems: 1
    106
    107    required:
    108      - iommus
    109
    110required:
    111  - compatible
    112  - reg
    113  - interrupts
    114  - power-domains
    115  - clocks
    116  - clock-names
    117  - iommus
    118  - memory-region
    119  - video-decoder
    120  - video-encoder
    121
    122additionalProperties: false
    123
    124examples:
    125  - |
    126        #include <dt-bindings/interrupt-controller/arm-gic.h>
    127        #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
    128
    129        video-codec@c00000 {
    130                compatible = "qcom,msm8996-venus";
    131                reg = <0x00c00000 0xff000>;
    132                interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
    133                clocks = <&mmcc VIDEO_CORE_CLK>,
    134                         <&mmcc VIDEO_AHB_CLK>,
    135                         <&mmcc VIDEO_AXI_CLK>,
    136                         <&mmcc VIDEO_MAXI_CLK>;
    137                clock-names = "core", "iface", "bus", "mbus";
    138                power-domains = <&mmcc VENUS_GDSC>;
    139                iommus =  <&venus_smmu 0x00>,
    140                          <&venus_smmu 0x01>,
    141                          <&venus_smmu 0x0a>,
    142                          <&venus_smmu 0x07>,
    143                          <&venus_smmu 0x0e>,
    144                          <&venus_smmu 0x0f>,
    145                          <&venus_smmu 0x08>,
    146                          <&venus_smmu 0x09>,
    147                          <&venus_smmu 0x0b>,
    148                          <&venus_smmu 0x0c>,
    149                          <&venus_smmu 0x0d>,
    150                          <&venus_smmu 0x10>,
    151                          <&venus_smmu 0x11>,
    152                          <&venus_smmu 0x21>,
    153                          <&venus_smmu 0x28>,
    154                          <&venus_smmu 0x29>,
    155                          <&venus_smmu 0x2b>,
    156                          <&venus_smmu 0x2c>,
    157                          <&venus_smmu 0x2d>,
    158                          <&venus_smmu 0x31>;
    159                memory-region = <&venus_mem>;
    160
    161                video-decoder {
    162                        compatible = "venus-decoder";
    163                        clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
    164                        clock-names = "core";
    165                        power-domains = <&mmcc VENUS_CORE0_GDSC>;
    166                };
    167
    168                video-encoder {
    169                        compatible = "venus-encoder";
    170                        clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
    171                        clock-names = "core";
    172                        power-domains = <&mmcc VENUS_CORE1_GDSC>;
    173                };
    174        };