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

arm,mali-bifrost.yaml (5103B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: ARM Mali Bifrost GPU
      8
      9maintainers:
     10  - Rob Herring <robh@kernel.org>
     11
     12properties:
     13  $nodename:
     14    pattern: '^gpu@[a-f0-9]+$'
     15
     16  compatible:
     17    items:
     18      - enum:
     19          - amlogic,meson-g12a-mali
     20          - mediatek,mt8183-mali
     21          - realtek,rtd1619-mali
     22          - renesas,r9a07g044-mali
     23          - renesas,r9a07g054-mali
     24          - rockchip,px30-mali
     25          - rockchip,rk3568-mali
     26      - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
     27
     28  reg:
     29    maxItems: 1
     30
     31  interrupts:
     32    minItems: 3
     33    items:
     34      - description: Job interrupt
     35      - description: MMU interrupt
     36      - description: GPU interrupt
     37      - description: Event interrupt
     38
     39  interrupt-names:
     40    minItems: 3
     41    items:
     42      - const: job
     43      - const: mmu
     44      - const: gpu
     45      - const: event
     46
     47  clocks:
     48    minItems: 1
     49    maxItems: 3
     50
     51  clock-names: true
     52
     53  mali-supply: true
     54
     55  sram-supply: true
     56
     57  operating-points-v2: true
     58
     59  power-domains:
     60    minItems: 1
     61    maxItems: 3
     62
     63  resets:
     64    minItems: 1
     65    maxItems: 3
     66
     67  reset-names: true
     68
     69  "#cooling-cells":
     70    const: 2
     71
     72  dynamic-power-coefficient:
     73    $ref: '/schemas/types.yaml#/definitions/uint32'
     74    description:
     75      A u32 value that represents the running time dynamic
     76      power coefficient in units of uW/MHz/V^2. The
     77      coefficient can either be calculated from power
     78      measurements or derived by analysis.
     79
     80      The dynamic power consumption of the GPU is
     81      proportional to the square of the Voltage (V) and
     82      the clock frequency (f). The coefficient is used to
     83      calculate the dynamic power as below -
     84
     85      Pdyn = dynamic-power-coefficient * V^2 * f
     86
     87      where voltage is in V, frequency is in MHz.
     88
     89  dma-coherent: true
     90
     91required:
     92  - compatible
     93  - reg
     94  - interrupts
     95  - interrupt-names
     96  - clocks
     97
     98additionalProperties: false
     99
    100allOf:
    101  - if:
    102      properties:
    103        compatible:
    104          contains:
    105            const: amlogic,meson-g12a-mali
    106    then:
    107      required:
    108        - resets
    109  - if:
    110      properties:
    111        compatible:
    112          contains:
    113            enum:
    114              - renesas,r9a07g044-mali
    115              - renesas,r9a07g054-mali
    116    then:
    117      properties:
    118        interrupts:
    119          minItems: 4
    120        interrupt-names:
    121          minItems: 4
    122        clocks:
    123          minItems: 3
    124        clock-names:
    125          items:
    126            - const: gpu
    127            - const: bus
    128            - const: bus_ace
    129        resets:
    130          minItems: 3
    131        reset-names:
    132          items:
    133            - const: rst
    134            - const: axi_rst
    135            - const: ace_rst
    136      required:
    137        - clock-names
    138        - power-domains
    139        - resets
    140        - reset-names
    141  - if:
    142      properties:
    143        compatible:
    144          contains:
    145            const: mediatek,mt8183-mali
    146    then:
    147      properties:
    148        power-domains:
    149          minItems: 3
    150        power-domain-names:
    151          items:
    152            - const: core0
    153            - const: core1
    154            - const: core2
    155
    156      required:
    157        - sram-supply
    158        - power-domains
    159        - power-domain-names
    160    else:
    161      properties:
    162        power-domains:
    163          maxItems: 1
    164        sram-supply: false
    165  - if:
    166      properties:
    167        compatible:
    168          contains:
    169            const: rockchip,rk3568-mali
    170    then:
    171      properties:
    172        clocks:
    173          minItems: 2
    174        clock-names:
    175          items:
    176            - const: gpu
    177            - const: bus
    178      required:
    179        - clock-names
    180
    181examples:
    182  - |
    183    #include <dt-bindings/interrupt-controller/irq.h>
    184    #include <dt-bindings/interrupt-controller/arm-gic.h>
    185
    186    gpu@ffe40000 {
    187      compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
    188      reg = <0xffe40000 0x10000>;
    189      interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
    190             <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
    191             <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
    192      interrupt-names = "job", "mmu", "gpu";
    193      clocks = <&clk 1>;
    194      mali-supply = <&vdd_gpu>;
    195      operating-points-v2 = <&gpu_opp_table>;
    196      resets = <&reset 0>, <&reset 1>;
    197    };
    198
    199    gpu_opp_table: opp-table {
    200      compatible = "operating-points-v2";
    201
    202      opp-533000000 {
    203        opp-hz = /bits/ 64 <533000000>;
    204        opp-microvolt = <1250000>;
    205      };
    206      opp-450000000 {
    207        opp-hz = /bits/ 64 <450000000>;
    208        opp-microvolt = <1150000>;
    209      };
    210      opp-400000000 {
    211        opp-hz = /bits/ 64 <400000000>;
    212        opp-microvolt = <1125000>;
    213      };
    214      opp-350000000 {
    215        opp-hz = /bits/ 64 <350000000>;
    216        opp-microvolt = <1075000>;
    217      };
    218      opp-266000000 {
    219        opp-hz = /bits/ 64 <266000000>;
    220        opp-microvolt = <1025000>;
    221      };
    222      opp-160000000 {
    223        opp-hz = /bits/ 64 <160000000>;
    224        opp-microvolt = <925000>;
    225      };
    226      opp-100000000 {
    227        opp-hz = /bits/ 64 <100000000>;
    228        opp-microvolt = <912500>;
    229      };
    230    };
    231
    232...