Re: [Freedreno] [PATCH v9 2/2] dt-bindings: msm: dsi-controller-main: Document clocks on a per compatible basis

2023-06-21 Thread Dmitry Baryshkov

On 22/06/2023 00:45, Marijn Suijten wrote:

Hi!

On 2023-01-18 17:16:21, Bryan O'Donoghue wrote:

Each compatible has a different set of clocks which are associated with it.
Add in the list of clocks for each compatible.


So if each set of compatibles have their own unique set of clocks, is
there a reason to have so many duplicate then: blocks?  I ran into this
while preparing for submitting SM6125 DPU and having no clue where to
add it.


Acked-by: Rob Herring 
Acked-by: Krzysztof Kozlowski 
Signed-off-by: Bryan O'Donoghue 
---
  .../display/msm/dsi-controller-main.yaml  | 218 --
  1 file changed, 201 insertions(+), 17 deletions(-)



[skipped most of the comments]




+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,sc7180-dsi-ctrl
+  - qcom,sc7280-dsi-ctrl
+  - qcom,sm8250-dsi-ctrl
+  - qcom,sm8150-dsi-ctrl
+  - qcom,sm8250-dsi-ctrl
+  - qcom,sm8350-dsi-ctrl
+  - qcom,sm8450-dsi-ctrl
+  - qcom,sm8550-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 6
+clock-names:
+  items:
+- const: byte
+- const: byte_intf
+- const: pixel
+- const: core
+- const: iface
+- const: bus


... and here ...


+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,sdm660-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 9
+clock-names:
+  items:
+- const: mdp_core
+- const: byte
+- const: byte_intf
+- const: mnoc
+- const: iface
+- const: bus
+- const: core_mmss
+- const: pixel
+- const: core
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,sdm845-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 6
+clock-names:
+  items:
+- const: byte
+- const: byte_intf
+- const: pixel
+- const: core
+- const: iface
+- const: bus


and here, we have *three* identical lists of clocks.  Should they (have
been) combined?

I can send a patch fixing these all if desired!


Probably it would be logical to split follow DPU and MDSS schema and 
split this file into per-SoC compatibles and a generic file. Then it 
would be easier to review different SoC parts.


Regarding reordering of clocks. I think we have 5 different 
configurations in dsi_cfg.c, but we definitely can optimize the schema.




- Marijn


+
  additionalProperties: false
  
  examples:

--
2.38.1



--
With best wishes
Dmitry



Re: [Freedreno] [PATCH v9 2/2] dt-bindings: msm: dsi-controller-main: Document clocks on a per compatible basis

2023-06-21 Thread Marijn Suijten
Hi!

On 2023-01-18 17:16:21, Bryan O'Donoghue wrote:
> Each compatible has a different set of clocks which are associated with it.
> Add in the list of clocks for each compatible.

So if each set of compatibles have their own unique set of clocks, is
there a reason to have so many duplicate then: blocks?  I ran into this
while preparing for submitting SM6125 DPU and having no clue where to
add it.

> Acked-by: Rob Herring 
> Acked-by: Krzysztof Kozlowski 
> Signed-off-by: Bryan O'Donoghue 
> ---
>  .../display/msm/dsi-controller-main.yaml  | 218 --
>  1 file changed, 201 insertions(+), 17 deletions(-)
> 
> diff --git 
> a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml 
> b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> index 35668caa190c4..ad1ba15b74c19 100644
> --- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> +++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> @@ -9,9 +9,6 @@ title: Qualcomm Display DSI controller
>  maintainers:
>- Krishna Manikandan 
>  
> -allOf:
> -  - $ref: "../dsi-controller.yaml#"
> -
>  properties:
>compatible:
>  oneOf:
> @@ -50,22 +47,23 @@ properties:
>  maxItems: 1
>  
>clocks:
> -items:
> -  - description: Display byte clock
> -  - description: Display byte interface clock
> -  - description: Display pixel clock
> -  - description: Display core clock
> -  - description: Display AHB clock
> -  - description: Display AXI clock
> +description: |
> +  Several clocks are used, depending on the variant. Typical ones are::
> +   - bus:: Display AHB clock.
> +   - byte:: Display byte clock.
> +   - byte_intf:: Display byte interface clock.
> +   - core:: Display core clock.
> +   - core_mss:: Core MultiMedia SubSystem clock.

mm*??

> +   - iface:: Display AXI clock.
> +   - mdp_core:: MDP Core clock.
> +   - mnoc:: MNOC clock
> +   - pixel:: Display pixel clock.
> +minItems: 3
> +maxItems: 9
>  
>clock-names:
> -items:
> -  - const: byte
> -  - const: byte_intf
> -  - const: pixel
> -  - const: core
> -  - const: iface
> -  - const: bus
> +minItems: 3
> +maxItems: 9
>  
>phys:
>  maxItems: 1
> @@ -161,6 +159,192 @@ required:
>- assigned-clock-parents
>- ports
>  
> +allOf:
> +  - $ref: ../dsi-controller.yaml#
> +  - if:
> +  properties:
> +compatible:
> +  contains:
> +enum:
> +  - qcom,apq8064-dsi-ctrl
> +then:
> +  properties:
> +clocks:
> +  maxItems: 7
> +clock-names:
> +  items:
> +- const: iface
> +- const: bus
> +- const: core_mmss
> +- const: src
> +- const: byte
> +- const: pixel
> +- const: core
> +
> +  - if:
> +  properties:
> +compatible:
> +  contains:
> +enum:
> +  - qcom,msm8916-dsi-ctrl
> +then:
> +  properties:
> +clocks:
> +  maxItems: 6
> +clock-names:
> +  items:
> +- const: mdp_core
> +- const: iface
> +- const: bus
> +- const: byte
> +- const: pixel
> +- const: core

So this...

> +
> +  - if:
> +  properties:
> +compatible:
> +  contains:
> +enum:
> +  - qcom,msm8953-dsi-ctrl
> +then:
> +  properties:
> +clocks:
> +  maxItems: 6
> +clock-names:
> +  items:
> +- const: mdp_core
> +- const: iface
> +- const: bus
> +- const: byte
> +- const: pixel
> +- const: core

Is the same as the above.  Can we merge msm8953 into msm8916 or do you
expect differences down the line?

> +
> +  - if:
> +  properties:
> +compatible:
> +  contains:
> +enum:
> +  - qcom,msm8974-dsi-ctrl
> +then:
> +  properties:
> +clocks:
> +  maxItems: 7
> +clock-names:
> +  items:
> +- const: mdp_core
> +- const: iface
> +- const: bus
> +- const: byte
> +- const: pixel
> +- const: core
> +- const: core_mmss
> +
> +  - if:
> +  properties:
> +compatible:
> +  contains:
> +enum:
> +  - qcom,msm8996-dsi-ctrl
> +then:
> +  properties:
> +clocks:
> +  maxItems: 7
> +clock-names:
> +  items:
> +- const: mdp_core
> +- const: byte
> +- const: iface
> +- const: bus
> +- const: core_mmss
> +- const: pixel
> +- const: core

This could be the same as msm8226/msm8974 if we reorder the entries.

> +
> +  - if:
> +  properties:

[Freedreno] [PATCH v9 2/2] dt-bindings: msm: dsi-controller-main: Document clocks on a per compatible basis

2023-01-18 Thread Bryan O'Donoghue
Each compatible has a different set of clocks which are associated with it.
Add in the list of clocks for each compatible.

Acked-by: Rob Herring 
Acked-by: Krzysztof Kozlowski 
Signed-off-by: Bryan O'Donoghue 
---
 .../display/msm/dsi-controller-main.yaml  | 218 --
 1 file changed, 201 insertions(+), 17 deletions(-)

diff --git 
a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml 
b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
index 35668caa190c4..ad1ba15b74c19 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
@@ -9,9 +9,6 @@ title: Qualcomm Display DSI controller
 maintainers:
   - Krishna Manikandan 
 
-allOf:
-  - $ref: "../dsi-controller.yaml#"
-
 properties:
   compatible:
 oneOf:
@@ -50,22 +47,23 @@ properties:
 maxItems: 1
 
   clocks:
-items:
-  - description: Display byte clock
-  - description: Display byte interface clock
-  - description: Display pixel clock
-  - description: Display core clock
-  - description: Display AHB clock
-  - description: Display AXI clock
+description: |
+  Several clocks are used, depending on the variant. Typical ones are::
+   - bus:: Display AHB clock.
+   - byte:: Display byte clock.
+   - byte_intf:: Display byte interface clock.
+   - core:: Display core clock.
+   - core_mss:: Core MultiMedia SubSystem clock.
+   - iface:: Display AXI clock.
+   - mdp_core:: MDP Core clock.
+   - mnoc:: MNOC clock
+   - pixel:: Display pixel clock.
+minItems: 3
+maxItems: 9
 
   clock-names:
-items:
-  - const: byte
-  - const: byte_intf
-  - const: pixel
-  - const: core
-  - const: iface
-  - const: bus
+minItems: 3
+maxItems: 9
 
   phys:
 maxItems: 1
@@ -161,6 +159,192 @@ required:
   - assigned-clock-parents
   - ports
 
+allOf:
+  - $ref: ../dsi-controller.yaml#
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,apq8064-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 7
+clock-names:
+  items:
+- const: iface
+- const: bus
+- const: core_mmss
+- const: src
+- const: byte
+- const: pixel
+- const: core
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,msm8916-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 6
+clock-names:
+  items:
+- const: mdp_core
+- const: iface
+- const: bus
+- const: byte
+- const: pixel
+- const: core
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,msm8953-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 6
+clock-names:
+  items:
+- const: mdp_core
+- const: iface
+- const: bus
+- const: byte
+- const: pixel
+- const: core
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,msm8974-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 7
+clock-names:
+  items:
+- const: mdp_core
+- const: iface
+- const: bus
+- const: byte
+- const: pixel
+- const: core
+- const: core_mmss
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,msm8996-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 7
+clock-names:
+  items:
+- const: mdp_core
+- const: byte
+- const: iface
+- const: bus
+- const: core_mmss
+- const: pixel
+- const: core
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,msm8998-dsi-ctrl
+then:
+  properties:
+clocks:
+  maxItems: 6
+clock-names:
+  items:
+- const: byte
+- const: byte_intf
+- const: pixel
+- const: core
+- const: iface
+- const: bus
+
+  - if:
+  properties:
+compatible:
+  contains:
+enum:
+  - qcom,sc7180-dsi-ctrl
+  - qcom,sc7280-dsi-ctrl
+  - qcom,sm8250-dsi-ctrl
+  - qcom,sm8150-dsi-ctrl
+  - qcom,sm8250-dsi-ctrl
+  - qcom,sm8350-dsi-ctrl
+  - qcom,sm8450-dsi-ctrl
+  - qcom,sm8550-dsi-ctrl
+then:
+  properties:
+