Skip to content

Commit 20e5004

Browse files
Jie Zhangquic-rajeshk
authored andcommitted
FROMLIST: dt-bindings: display/msm/rgmu: Document A612 RGMU
RGMU a.k.a Reduced Graphics Management Unit is a small state machine with the sole purpose of providing IFPC (Inter Frame Power Collapse) support. Compared to GMU, it doesn't manage GPU clock, voltage scaling, bw voting or any other functionalities. All it does is detect an idle GPU and toggle the GDSC switch. As it doesn't access DDR space, it doesn't require iommu. So far, only Adreno 612 GPU has an RGMU core. Document RGMU in the GMU's schema. Signed-off-by: Jie Zhang <[email protected]> Signed-off-by: Akhil P Oommen <[email protected]> Link: https://lore.kernel.org/all/[email protected]/
1 parent 0c802cf commit 20e5004

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
3+
%YAML 1.2
4+
---
5+
6+
$id: http://devicetree.org/schemas/display/msm/rgmu.yaml#
7+
$schema: http://devicetree.org/meta-schemas/core.yaml#
8+
9+
title: RGMU attached to certain Adreno GPUs
10+
11+
maintainers:
12+
- Rob Clark <[email protected]>
13+
14+
description: |
15+
RGMU (Reduced Graphics Management Unit) IP is present in some GPUs that
16+
belong to Adreno A6xx family. It is a small state machine that helps to
17+
toggle the GX GDSC (connected to CX rail) to implement IFPC feature and save
18+
power.
19+
20+
properties:
21+
compatible:
22+
items:
23+
- const: qcom,adreno-rgmu-612.0
24+
- const: qcom,adreno-rgmu
25+
26+
reg:
27+
items:
28+
- description: Core RGMU registers
29+
30+
reg-names:
31+
items:
32+
- const: gmu
33+
34+
clocks:
35+
items:
36+
- description: GMU clock
37+
- description: GPU CX clock
38+
- description: GPU AXI clock
39+
- description: GPU MEMNOC clock
40+
- description: GPU SMMU vote clock
41+
42+
clock-names:
43+
items:
44+
- const: gmu
45+
- const: cxo
46+
- const: axi
47+
- const: memnoc
48+
- const: smmu_vote
49+
50+
power-domains:
51+
items:
52+
- description: CX GDSC power domain
53+
- description: GX GDSC power domain
54+
55+
power-domain-names:
56+
items:
57+
- const: cx
58+
- const: gx
59+
60+
interrupts:
61+
items:
62+
- description: GMU OOB interrupt
63+
- description: GMU interrupt
64+
65+
interrupt-names:
66+
items:
67+
- const: oob
68+
- const: gmu
69+
70+
operating-points-v2: true
71+
opp-table:
72+
type: object
73+
74+
required:
75+
- reg
76+
- reg-names
77+
- clocks
78+
- clock-names
79+
- power-domains
80+
- power-domain-names
81+
- interrupts
82+
- interrupt-names
83+
- operating-points-v2
84+
85+
additionalProperties: false
86+
87+
examples:
88+
- |
89+
#include <dt-bindings/clock/qcom,qcs615-gpucc.h>
90+
#include <dt-bindings/clock/qcom,qcs615-gcc.h>
91+
#include <dt-bindings/interrupt-controller/arm-gic.h>
92+
#include <dt-bindings/power/qcom,rpmhpd.h>
93+
94+
rgmu: rgmu@506a000 {
95+
compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
96+
97+
reg = <0x05000000 0x90000>;
98+
reg-names = "gmu";
99+
100+
clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
101+
<&gpucc GPU_CC_CXO_CLK>,
102+
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
103+
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
104+
<&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
105+
clock-names = "gmu",
106+
"cxo",
107+
"axi",
108+
"memnoc",
109+
"smmu_vote";
110+
111+
power-domains = <&gpucc CX_GDSC>,
112+
<&gpucc GX_GDSC>;
113+
power-domain-names = "cx",
114+
"gx";
115+
116+
interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
117+
<GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
118+
interrupt-names = "oob",
119+
"gmu";
120+
121+
operating-points-v2 = <&rgmu_opp_table>;
122+
123+
rgmu_opp_table: opp-table {
124+
compatible = "operating-points-v2";
125+
126+
opp-200000000 {
127+
opp-hz = /bits/ 64 <200000000>;
128+
required-opps = <&rpmhpd_opp_low_svs>;
129+
};
130+
};
131+
};

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7747,6 +7747,7 @@ S: Maintained
77477747
B: https://gitlab.freedesktop.org/drm/msm/-/issues
77487748
T: git https://gitlab.freedesktop.org/drm/msm.git
77497749
F: Documentation/devicetree/bindings/display/msm/gpu.yaml
7750+
F: Documentation/devicetree/bindings/display/msm/rgmu.yaml
77507751
F: Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml
77517752
F: drivers/gpu/drm/msm/adreno/
77527753
F: drivers/gpu/drm/msm/msm_gpu.*

0 commit comments

Comments
 (0)