lkml.org 
[lkml]   [2022]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 02/12] dt-bindings: arm: msm: Fix register regions used for LLCC banks
On Wed, Dec 07, 2022 at 07:29:11PM +0530, Manivannan Sadhasivam wrote:
> Register regions of the LLCC banks are located at separate addresses.
> Currently, the binding just lists the LLCC0 base address and specifies
> the size to cover all banks. This is not the correct approach since,
> there are holes and other registers located in between.
>
> So let's specify the base address of each LLCC bank. It should be noted
> that the bank count differs for each SoC, so that also needs to be taken
> into account in the binding.
>
> Cc: <stable@vger.kernel.org> # 4.19
> Fixes: 7e5700ae64f6 ("dt-bindings: Documentation for qcom, llcc")
> Reported-by: Parikshit Pareek <quic_ppareek@quicinc.com>
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> ---
> .../bindings/arm/msm/qcom,llcc.yaml | 125 ++++++++++++++++--
> 1 file changed, 114 insertions(+), 11 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/msm/qcom,llcc.yaml b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.yaml
> index d1df49ffcc1b..7f694baa017c 100644
> --- a/Documentation/devicetree/bindings/arm/msm/qcom,llcc.yaml
> +++ b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.yaml
> @@ -33,14 +33,12 @@ properties:
> - qcom,sm8550-llcc
>
> reg:
> - items:
> - - description: LLCC base register region
> - - description: LLCC broadcast base register region
> + minItems: 2
> + maxItems: 9
>
> reg-names:
> - items:
> - - const: llcc_base
> - - const: llcc_broadcast_base
> + minItems: 2
> + maxItems: 9

Afaict changing llcc_base to llcc0_base would not allow the
implementation to find the llcc_base region with an older DTB.

But if you instead modify the driver to pick up N-1 regions for base and
the last for broadcast, by index. This should continue to work for the
platforms where it actually worked.

Based on that I suggest that you just remove reg-names from the binding.
It will clean up the binding and we won't have reg-names containing
"llcc" or "base" :)

Regards,
Bjorn

>
> interrupts:
> maxItems: 1
> @@ -50,15 +48,120 @@ required:
> - reg
> - reg-names
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,sc7180-llcc
> + - qcom,sm6350-llcc
> + then:
> + properties:
> + reg:
> + items:
> + - description: LLCC0 base register region
> + - description: LLCC broadcast base register region
> + reg-names:
> + items:
> + - const: llcc0_base
> + - const: llcc_broadcast_base
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,sc7280-llcc
> + then:
> + properties:
> + reg:
> + items:
> + - description: LLCC0 base register region
> + - description: LLCC1 base register region
> + - description: LLCC broadcast base register region
> + reg-names:
> + items:
> + - const: llcc0_base
> + - const: llcc1_base
> + - const: llcc_broadcast_base
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,sc8180x-llcc
> + - qcom,sc8280xp-llcc
> + then:
> + properties:
> + reg:
> + items:
> + - description: LLCC0 base register region
> + - description: LLCC1 base register region
> + - description: LLCC2 base register region
> + - description: LLCC3 base register region
> + - description: LLCC4 base register region
> + - description: LLCC5 base register region
> + - description: LLCC6 base register region
> + - description: LLCC7 base register region
> + - description: LLCC broadcast base register region
> + reg-names:
> + items:
> + - const: llcc0_base
> + - const: llcc1_base
> + - const: llcc2_base
> + - const: llcc3_base
> + - const: llcc4_base
> + - const: llcc5_base
> + - const: llcc6_base
> + - const: llcc7_base
> + - const: llcc_broadcast_base
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,sdm845-llcc
> + - qcom,sm8150-llcc
> + - qcom,sm8250-llcc
> + - qcom,sm8350-llcc
> + - qcom,sm8450-llcc
> + then:
> + properties:
> + reg:
> + items:
> + - description: LLCC0 base register region
> + - description: LLCC1 base register region
> + - description: LLCC2 base register region
> + - description: LLCC3 base register region
> + - description: LLCC broadcast base register region
> + reg-names:
> + items:
> + - const: llcc0_base
> + - const: llcc1_base
> + - const: llcc2_base
> + - const: llcc3_base
> + - const: llcc_broadcast_base
> +
> additionalProperties: false
>
> examples:
> - |
> #include <dt-bindings/interrupt-controller/arm-gic.h>
>
> - system-cache-controller@1100000 {
> - compatible = "qcom,sdm845-llcc";
> - reg = <0x1100000 0x200000>, <0x1300000 0x50000> ;
> - reg-names = "llcc_base", "llcc_broadcast_base";
> - interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + system-cache-controller@1100000 {
> + compatible = "qcom,sdm845-llcc";
> + reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>,
> + <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>,
> + <0 0x01300000 0 0x50000>;
> + reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
> + "llcc3_base", "llcc_broadcast_base";
> + interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
> + };
> };
> --
> 2.25.1
>

\
 
 \ /
  Last update: 2022-12-07 17:09    [W:0.143 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site