Skip to content

Commit 63204be

Browse files
konradybciorobclark
authored andcommitted
dt-bindings: display/msm/gmu: Add GMU wrapper
The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks we'd normally assign to the GMU as if they were a part of the GMU, even though they are not". It's a (good) software representation of the GMU_CX and GMU_GX register spaces within the GPUSS that helps us programatically treat these de-facto GMU-less parts in a way that's very similar to their GMU-equipped cousins, massively saving up on code duplication. The "wrapper" register space was specifically designed to mimic the layout of a real GMU, though it rather obviously does not have the M3 core et al. To sum it all up, the GMU wrapper is essentially a register space within the GPU, which Linux sees as a dumbed-down regular GMU: there's no clocks, interrupts, multiple reg spaces, iommus and OPP. Document it. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Patchwork: https://patchwork.freedesktop.org/patch/542750/ Signed-off-by: Rob Clark <robdclark@chromium.org>
1 parent a770dc6 commit 63204be

1 file changed

Lines changed: 38 additions & 12 deletions

File tree

  • Documentation/devicetree/bindings/display/msm

Documentation/devicetree/bindings/display/msm/gmu.yaml

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ description: |
1919
2020
properties:
2121
compatible:
22-
items:
23-
- pattern: '^qcom,adreno-gmu-6[0-9][0-9]\.[0-9]$'
24-
- const: qcom,adreno-gmu
22+
oneOf:
23+
- items:
24+
- pattern: '^qcom,adreno-gmu-6[0-9][0-9]\.[0-9]$'
25+
- const: qcom,adreno-gmu
26+
- const: qcom,adreno-gmu-wrapper
2527

2628
reg:
27-
minItems: 3
29+
minItems: 1
2830
maxItems: 4
2931

3032
reg-names:
31-
minItems: 3
33+
minItems: 1
3234
maxItems: 4
3335

3436
clocks:
@@ -44,7 +46,6 @@ properties:
4446
- description: GMU HFI interrupt
4547
- description: GMU interrupt
4648

47-
4849
interrupt-names:
4950
items:
5051
- const: hfi
@@ -72,14 +73,8 @@ required:
7273
- compatible
7374
- reg
7475
- reg-names
75-
- clocks
76-
- clock-names
77-
- interrupts
78-
- interrupt-names
7976
- power-domains
8077
- power-domain-names
81-
- iommus
82-
- operating-points-v2
8378

8479
additionalProperties: false
8580

@@ -218,6 +213,28 @@ allOf:
218213
- const: axi
219214
- const: memnoc
220215

216+
- if:
217+
properties:
218+
compatible:
219+
contains:
220+
const: qcom,adreno-gmu-wrapper
221+
then:
222+
properties:
223+
reg:
224+
items:
225+
- description: GMU wrapper register space
226+
reg-names:
227+
items:
228+
- const: gmu
229+
else:
230+
required:
231+
- clocks
232+
- clock-names
233+
- interrupts
234+
- interrupt-names
235+
- iommus
236+
- operating-points-v2
237+
221238
examples:
222239
- |
223240
#include <dt-bindings/clock/qcom,gpucc-sdm845.h>
@@ -250,3 +267,12 @@ examples:
250267
iommus = <&adreno_smmu 5>;
251268
operating-points-v2 = <&gmu_opp_table>;
252269
};
270+
271+
gmu_wrapper: gmu@596a000 {
272+
compatible = "qcom,adreno-gmu-wrapper";
273+
reg = <0x0596a000 0x30000>;
274+
reg-names = "gmu";
275+
power-domains = <&gpucc GPU_CX_GDSC>,
276+
<&gpucc GPU_GX_GDSC>;
277+
power-domain-names = "cx", "gx";
278+
};

0 commit comments

Comments
 (0)