[v3,03/12] dt-bindings: display/msm: sc7180-dpu: Describe SM6350 and SM6375

Message ID 20230411-topic-straitlagoon_mdss-v3-3-9837d6b3516d@linaro.org
State New
Headers
Series SM63(50|75) DPU support |

Commit Message

Konrad Dybcio May 5, 2023, 9:40 p.m. UTC
  SC7180, SM6350 and SM6375 use a rather similar hw setup for DPU, with
the main exception being that the last one requires an additional
throttle clock.

It is not well understood yet, but failing to toggle it on makes the
display hardware stall and not output any frames.

Document SM6350 and SM6375 DPU.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 .../bindings/display/msm/qcom,sc7180-dpu.yaml      | 23 +++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
  

Comments

Krzysztof Kozlowski May 7, 2023, 8:14 a.m. UTC | #1
On 05/05/2023 23:40, Konrad Dybcio wrote:
> SC7180, SM6350 and SM6375 use a rather similar hw setup for DPU, with
> the main exception being that the last one requires an additional
> throttle clock.
> 
> It is not well understood yet, but failing to toggle it on makes the
> display hardware stall and not output any frames.
> 
> Document SM6350 and SM6375 DPU.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>  .../bindings/display/msm/qcom,sc7180-dpu.yaml      | 23 +++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
> index 1fb8321d9ee8..630b11480496 100644
> --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
> +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
> @@ -13,7 +13,10 @@ $ref: /schemas/display/msm/dpu-common.yaml#
>  
>  properties:
>    compatible:
> -    const: qcom,sc7180-dpu
> +    enum:
> +      - qcom,sc7180-dpu
> +      - qcom,sm6350-dpu
> +      - qcom,sm6375-dpu
>  
>    reg:
>      items:
> @@ -26,6 +29,7 @@ properties:
>        - const: vbif
>  
>    clocks:
> +    minItems: 6
>      items:
>        - description: Display hf axi clock
>        - description: Display ahb clock
> @@ -33,8 +37,10 @@ properties:
>        - description: Display lut clock
>        - description: Display core clock
>        - description: Display vsync clock
> +      - description: Display core throttle clock
>  
>    clock-names:
> +    minItems: 6
>      items:
>        - const: bus
>        - const: iface
> @@ -42,6 +48,7 @@ properties:
>        - const: lut
>        - const: core
>        - const: vsync
> +      - const: throttle
>  
>  required:
>    - compatible
> @@ -52,6 +59,20 @@ required:
>  
>  unevaluatedProperties: false
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          const: qcom,sm6375-dpu

And the two other variants? Is the clock valid there or not? If not
really, then you should have else: with maxItems: 6.

> +
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 7
> +
> +        clock-names:
> +          minItems: 7

If there is going new version - put allOf: before
unevaluatedProperties:. Otherwise it is fine.

> +
>  examples:
>    - |
>      #include <dt-bindings/clock/qcom,dispcc-sc7180.h>
> 

Best regards,
Krzysztof
  
Konrad Dybcio May 8, 2023, 8:38 a.m. UTC | #2
On 7.05.2023 10:14, Krzysztof Kozlowski wrote:
> On 05/05/2023 23:40, Konrad Dybcio wrote:
>> SC7180, SM6350 and SM6375 use a rather similar hw setup for DPU, with
>> the main exception being that the last one requires an additional
>> throttle clock.
>>
>> It is not well understood yet, but failing to toggle it on makes the
>> display hardware stall and not output any frames.
>>
>> Document SM6350 and SM6375 DPU.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>> ---
>>  .../bindings/display/msm/qcom,sc7180-dpu.yaml      | 23 +++++++++++++++++++++-
>>  1 file changed, 22 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
>> index 1fb8321d9ee8..630b11480496 100644
>> --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
>> +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
>> @@ -13,7 +13,10 @@ $ref: /schemas/display/msm/dpu-common.yaml#
>>  
>>  properties:
>>    compatible:
>> -    const: qcom,sc7180-dpu
>> +    enum:
>> +      - qcom,sc7180-dpu
>> +      - qcom,sm6350-dpu
>> +      - qcom,sm6375-dpu
>>  
>>    reg:
>>      items:
>> @@ -26,6 +29,7 @@ properties:
>>        - const: vbif
>>  
>>    clocks:
>> +    minItems: 6
>>      items:
>>        - description: Display hf axi clock
>>        - description: Display ahb clock
>> @@ -33,8 +37,10 @@ properties:
>>        - description: Display lut clock
>>        - description: Display core clock
>>        - description: Display vsync clock
>> +      - description: Display core throttle clock
>>  
>>    clock-names:
>> +    minItems: 6
>>      items:
>>        - const: bus
>>        - const: iface
>> @@ -42,6 +48,7 @@ properties:
>>        - const: lut
>>        - const: core
>>        - const: vsync
>> +      - const: throttle
>>  
>>  required:
>>    - compatible
>> @@ -52,6 +59,20 @@ required:
>>  
>>  unevaluatedProperties: false
>>  
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          const: qcom,sm6375-dpu
> 
> And the two other variants? Is the clock valid there or not? If not
> really, then you should have else: with maxItems: 6.
Oh right!

> 
>> +
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 7
>> +
>> +        clock-names:
>> +          minItems: 7
> 
> If there is going new version - put allOf: before
> unevaluatedProperties:. Otherwise it is fine.
Thanks!

Konrad
> 
>> +
>>  examples:
>>    - |
>>      #include <dt-bindings/clock/qcom,dispcc-sc7180.h>
>>
> 
> Best regards,
> Krzysztof
>
  

Patch

diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
index 1fb8321d9ee8..630b11480496 100644
--- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
@@ -13,7 +13,10 @@  $ref: /schemas/display/msm/dpu-common.yaml#
 
 properties:
   compatible:
-    const: qcom,sc7180-dpu
+    enum:
+      - qcom,sc7180-dpu
+      - qcom,sm6350-dpu
+      - qcom,sm6375-dpu
 
   reg:
     items:
@@ -26,6 +29,7 @@  properties:
       - const: vbif
 
   clocks:
+    minItems: 6
     items:
       - description: Display hf axi clock
       - description: Display ahb clock
@@ -33,8 +37,10 @@  properties:
       - description: Display lut clock
       - description: Display core clock
       - description: Display vsync clock
+      - description: Display core throttle clock
 
   clock-names:
+    minItems: 6
     items:
       - const: bus
       - const: iface
@@ -42,6 +48,7 @@  properties:
       - const: lut
       - const: core
       - const: vsync
+      - const: throttle
 
 required:
   - compatible
@@ -52,6 +59,20 @@  required:
 
 unevaluatedProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          const: qcom,sm6375-dpu
+
+    then:
+      properties:
+        clocks:
+          minItems: 7
+
+        clock-names:
+          minItems: 7
+
 examples:
   - |
     #include <dt-bindings/clock/qcom,dispcc-sc7180.h>