diff mbox series

[v2,5/8] dt-bindings: display: vop2: Add rk3576 support

Message ID 20241228122155.646957-6-andyshrk@163.com (mailing list archive)
State New
Headers show
Series Add display subsystem dt node on rk3576 | expand

Commit Message

Andy Yan Dec. 28, 2024, 12:21 p.m. UTC
From: Andy Yan <andy.yan@rock-chips.com>

Add vop found on rk3576, the main difference between rk3576 and the
previous vop is that each VP has its own interrupt line.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>

---

Changes in v2:
- describe constraint SOC by SOC, as interrupts of rk3576 is very
  different from others
- Drop Krzysztof's Reviewed-by, as this version changed a lot.

Changes in v1:
- ordered by soc name
- Add description for newly added interrupt

 .../display/rockchip/rockchip-vop2.yaml       | 70 +++++++++++++++----
 1 file changed, 56 insertions(+), 14 deletions(-)

Comments

Rob Herring (Arm) Dec. 28, 2024, 2:09 p.m. UTC | #1
On Sat, 28 Dec 2024 20:21:48 +0800, Andy Yan wrote:
> From: Andy Yan <andy.yan@rock-chips.com>
> 
> Add vop found on rk3576, the main difference between rk3576 and the
> previous vop is that each VP has its own interrupt line.
> 
> Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
> 
> ---
> 
> Changes in v2:
> - describe constraint SOC by SOC, as interrupts of rk3576 is very
>   different from others
> - Drop Krzysztof's Reviewed-by, as this version changed a lot.
> 
> Changes in v1:
> - ordered by soc name
> - Add description for newly added interrupt
> 
>  .../display/rockchip/rockchip-vop2.yaml       | 70 +++++++++++++++----
>  1 file changed, 56 insertions(+), 14 deletions(-)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml: properties:interrupts: {'minItems': 1, 'maxItems': 4, 'items': [{'description': 'vop system interrupt, such as bus error, and vsync for vop version under rk3576.'}, {'description': 'independent interrupts for each video port, such as vsync and other video port related error interrupts.'}]} should not be valid under {'required': ['maxItems']}
	hint: "maxItems" is not needed with an "items" list
	from schema $id: http://devicetree.org/meta-schemas/items.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20241228122155.646957-6-andyshrk@163.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Krzysztof Kozlowski Dec. 29, 2024, 10:13 a.m. UTC | #2
On Sat, Dec 28, 2024 at 08:21:48PM +0800, Andy Yan wrote:
> From: Andy Yan <andy.yan@rock-chips.com>
> 
> Add vop found on rk3576, the main difference between rk3576 and the
> previous vop is that each VP has its own interrupt line.
> 
> Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
> 
> ---
> 
> Changes in v2:
> - describe constraint SOC by SOC, as interrupts of rk3576 is very
>   different from others
> - Drop Krzysztof's Reviewed-by, as this version changed a lot.
> 
> Changes in v1:
> - ordered by soc name
> - Add description for newly added interrupt
> 
>  .../display/rockchip/rockchip-vop2.yaml       | 70 +++++++++++++++----
>  1 file changed, 56 insertions(+), 14 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
> index 2531726af306..f28cea4a6d82 100644
> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
> @@ -20,6 +20,7 @@ properties:
>      enum:
>        - rockchip,rk3566-vop
>        - rockchip,rk3568-vop
> +      - rockchip,rk3576-vop
>        - rockchip,rk3588-vop
>  
>    reg:
> @@ -37,10 +38,22 @@ properties:
>        - const: gamma-lut
>  
>    interrupts:
> -    maxItems: 1
> -    description:
> -      The VOP interrupt is shared by several interrupt sources, such as
> -      frame start (VSYNC), line flag and other status interrupts.
> +    minItems: 1
> +    maxItems: 4
> +    items:
> +      - description:

That's contradictory. min/max say 1-4, but here you list two interrupts.

> +          vop system interrupt, such as bus error, and vsync for vop version under
> +          rk3576.
> +      - description:
> +          independent interrupts for each video port, such as vsync and other video
> +          port related error interrupts.
> +
> +  interrupt-names:
> +    items:
> +      - const: vop-sys
> +      - const: vop-vp0
> +      - const: vop-vp1
> +      - const: vop-vp2

And this says exactly 4.

Best regards,
Krzysztof
Andy Yan Dec. 29, 2024, 10:49 a.m. UTC | #3
Hi Krzysztof,

At 2024-12-29 18:13:39, "Krzysztof Kozlowski" <krzk@kernel.org> wrote:
>On Sat, Dec 28, 2024 at 08:21:48PM +0800, Andy Yan wrote:
>> From: Andy Yan <andy.yan@rock-chips.com>
>> 
>> Add vop found on rk3576, the main difference between rk3576 and the
>> previous vop is that each VP has its own interrupt line.
>> 
>> Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
>> 
>> ---
>> 
>> Changes in v2:
>> - describe constraint SOC by SOC, as interrupts of rk3576 is very
>>   different from others
>> - Drop Krzysztof's Reviewed-by, as this version changed a lot.
>> 
>> Changes in v1:
>> - ordered by soc name
>> - Add description for newly added interrupt
>> 
>>  .../display/rockchip/rockchip-vop2.yaml       | 70 +++++++++++++++----
>>  1 file changed, 56 insertions(+), 14 deletions(-)
>> 
>> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
>> index 2531726af306..f28cea4a6d82 100644
>> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
>> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
>> @@ -20,6 +20,7 @@ properties:
>>      enum:
>>        - rockchip,rk3566-vop
>>        - rockchip,rk3568-vop
>> +      - rockchip,rk3576-vop
>>        - rockchip,rk3588-vop
>>  
>>    reg:
>> @@ -37,10 +38,22 @@ properties:
>>        - const: gamma-lut
>>  
>>    interrupts:
>> -    maxItems: 1
>> -    description:
>> -      The VOP interrupt is shared by several interrupt sources, such as
>> -      frame start (VSYNC), line flag and other status interrupts.
>> +    minItems: 1
>> +    maxItems: 4
>> +    items:
>> +      - description:
>
>That's contradictory. min/max say 1-4, but here you list two interrupts.

There are 4 interrupts on rk3576, and the other SOC only have one.
I am sorry that I am not familiar with this schema language; I have read many
other YAML bindings these days and try to write it correctly.

Maybe I should not list the interrupts-names here(then list the interrupt-name by soc at allOf:  part),
 like the clocks handles in samsung,usb3-drd-phy.yaml  ?

>
>> +          vop system interrupt, such as bus error, and vsync for vop version under
>> +          rk3576.
>> +      - description:
>> +          independent interrupts for each video port, such as vsync and other video
>> +          port related error interrupts.
>> +
>> +  interrupt-names:
>> +    items:
>> +      - const: vop-sys
>> +      - const: vop-vp0
>> +      - const: vop-vp1
>> +      - const: vop-vp2
>
>And this says exactly 4.
>
>Best regards,
>Krzysztof
>
>
>_______________________________________________
>Linux-rockchip mailing list
>Linux-rockchip@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/linux-rockchip
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
index 2531726af306..f28cea4a6d82 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
@@ -20,6 +20,7 @@  properties:
     enum:
       - rockchip,rk3566-vop
       - rockchip,rk3568-vop
+      - rockchip,rk3576-vop
       - rockchip,rk3588-vop
 
   reg:
@@ -37,10 +38,22 @@  properties:
       - const: gamma-lut
 
   interrupts:
-    maxItems: 1
-    description:
-      The VOP interrupt is shared by several interrupt sources, such as
-      frame start (VSYNC), line flag and other status interrupts.
+    minItems: 1
+    maxItems: 4
+    items:
+      - description:
+          vop system interrupt, such as bus error, and vsync for vop version under
+          rk3576.
+      - description:
+          independent interrupts for each video port, such as vsync and other video
+          port related error interrupts.
+
+  interrupt-names:
+    items:
+      - const: vop-sys
+      - const: vop-vp0
+      - const: vop-vp1
+      - const: vop-vp2
 
   # See compatible-specific constraints below.
   clocks:
@@ -127,31 +140,60 @@  allOf:
           minItems: 7
         clock-names:
           minItems: 7
-
         ports:
           required:
             - port@0
             - port@1
             - port@2
             - port@3
-
       required:
         - rockchip,grf
         - rockchip,vo1-grf
         - rockchip,vop-grf
         - rockchip,pmu
 
-    else:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,rk3576-vop
+    then:
       properties:
-        rockchip,vo1-grf: false
-        rockchip,vop-grf: false
-        rockchip,pmu: false
-
         clocks:
-          maxItems: 5
+          minItems: 5
         clock-names:
-          maxItems: 5
-
+          minItems: 5
+        ports:
+          required:
+            - port@0
+            - port@1
+            - port@2
+        interrupts:
+          minItems: 4
+          maxItems: 4
+        interrupt-names:
+          items:
+            - const: vop-sys
+            - const: vop-vp0
+            - const: vop-vp1
+            - const: vop-vp2
+      required:
+        - rockchip,grf
+        - rockchip,pmu
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,rk3568-vop
+              - rockchip,rk3566-vop
+    then:
+      properties:
+        clocks:
+          minItems: 5
+        clock-names:
+          minItems: 5
         ports:
           required:
             - port@0