[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e46f257b-6a81-ce42-3b93-6cf702571faf@linaro.org>
Date: Thu, 16 Mar 2023 07:59:20 +0100
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Konrad Dybcio <konrad.dybcio@...aro.org>,
Rob Clark <robdclark@...il.com>,
Abhinav Kumar <quic_abhinavk@...cinc.com>,
Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
Sean Paul <sean@...rly.run>, David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...ainline.org>,
Akhil P Oommen <quic_akhilpo@...cinc.com>
Cc: linux-arm-msm@...r.kernel.org, dri-devel@...ts.freedesktop.org,
freedreno@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Rob Clark <robdclark@...omium.org>,
Marijn Suijten <marijn.suijten@...ainline.org>
Subject: Re: [PATCH v4 01/14] dt-bindings: display/msm: gpu: Document GMU
wrapper-equipped A6xx
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@...aro.org>
> ---
> .../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
Powered by blists - more mailing lists