On 14/03/2023 16:28, Konrad Dybcio wrote: > 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. > > GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be > specified under the GPU node, just like their older cousins. Account > for that. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> > --- > .../devicetree/bindings/display/msm/gpu.yaml | 57 ++++++++++++++++++---- > 1 file changed, 48 insertions(+), 9 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml > index d4191cca71fb..ac1a9bce2042 100644 > --- a/Documentation/devicetree/bindings/display/msm/gpu.yaml > +++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml > @@ -36,10 +36,7 @@ properties: > > reg-names: > minItems: 1 > - items: > - - const: kgsl_3d0_reg_memory > - - const: cx_mem > - - const: cx_dbgc > + maxItems: 3 > > interrupts: > maxItems: 1 > @@ -157,16 +154,58 @@ allOf: > required: > - clocks > - clock-names > + > - if: > properties: > compatible: > contains: > - pattern: '^qcom,adreno-6[0-9][0-9]\.[0-9]$' > - > - then: # Since Adreno 6xx series clocks should be defined in GMU > + enum: > + - qcom,adreno-610.0 > + - qcom,adreno-619.1 > + then: > properties: > - clocks: false > - clock-names: false > + clock-names: > + items: > + - const: core > + description: GPU Core clock > + - const: iface > + description: GPU Interface clock > + - const: mem_iface > + description: GPU Memory Interface clock > + - const: alt_mem_iface > + description: GPU Alternative Memory Interface clock > + - const: gmu > + description: CX GMU clock > + - const: xo > + description: GPUCC clocksource clock Since you require fixed number of clocks, you also need: clocks: minItems: 6 maxItems: 6 Best regards, Krzysztof