Documentation / devicetree / bindings / display / msm / qcom,adreno-rgmu.yaml


Based on kernel version 7.0. Page generated on 2026-04-23 09:48 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
%YAML 1.2
---

$id: http://devicetree.org/schemas/display/msm/qcom,adreno-rgmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RGMU attached to certain Adreno GPUs

maintainers:
  - Rob Clark <robin.clark@oss.qualcomm.com>

description:
  RGMU (Reduced Graphics Management Unit) IP is present in some GPUs that
  belong to Adreno A6xx family. It is a small state machine that helps to
  toggle the GX GDSC (connected to CX rail) to implement IFPC feature and save
  power.

properties:
  compatible:
    items:
      - const: qcom,adreno-rgmu-612.0
      - const: qcom,adreno-rgmu

  reg:
    items:
      - description: Core RGMU registers

  clocks:
    items:
      - description: GMU clock
      - description: GPU CX clock
      - description: GPU AXI clock
      - description: GPU MEMNOC clock
      - description: GPU SMMU vote clock

  clock-names:
    items:
      - const: gmu
      - const: cxo
      - const: axi
      - const: memnoc
      - const: smmu_vote

  power-domains:
    items:
      - description: CX GDSC power domain
      - description: GX GDSC power domain

  power-domain-names:
    items:
      - const: cx
      - const: gx

  interrupts:
    items:
      - description: GMU OOB interrupt
      - description: GMU interrupt

  interrupt-names:
    items:
      - const: oob
      - const: gmu

  operating-points-v2: true
  opp-table:
    type: object

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - power-domains
  - power-domain-names
  - interrupts
  - interrupt-names
  - operating-points-v2

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,qcs615-gpucc.h>
    #include <dt-bindings/clock/qcom,qcs615-gcc.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/qcom,rpmhpd.h>
 
    gmu@506a000 {
        compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
 
        reg = <0x05000000 0x90000>;
 
        clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
                 <&gpucc GPU_CC_CXO_CLK>,
                 <&gcc GCC_DDRSS_GPU_AXI_CLK>,
                 <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
                 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
        clock-names = "gmu",
                      "cxo",
                      "axi",
                      "memnoc",
                      "smmu_vote";
 
        power-domains = <&gpucc CX_GDSC>,
                        <&gpucc GX_GDSC>;
        power-domain-names = "cx",
                             "gx";
 
        interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "oob",
                          "gmu";
 
        operating-points-v2 = <&gmu_opp_table>;
 
        gmu_opp_table: opp-table {
            compatible = "operating-points-v2";
 
            opp-200000000 {
                opp-hz = /bits/ 64 <200000000>;
                required-opps = <&rpmhpd_opp_low_svs>;
            };
        };
    };