diff mbox series

[05/14] media: dt-bindings: nxp,imx8-isi: Add i.MX8Q ISI compatible strings

Message ID 20250131-8qxp_camera-v1-5-319402ab606a@nxp.com (mailing list archive)
State New
Headers show
Series media: imx8: add camera support | expand

Commit Message

Frank Li Jan. 31, 2025, 9:33 p.m. UTC
From: Robert Chiras <robert.chiras@nxp.com>

Add compatible strings for i.MX8QM and i.MX8QXP platforms.

Increase the number of max interrupts and clock to 8. i.MX8QM have 8
channels and i.MX8QXP have 5 channels. Each channel requires one clock
source and interrupt.

Remove fsl,blk-ctrl from required list because i.MX8Q needn't it.

i.MX8QM use port@2 and port@3. i.MX8QXP use port@2 and port@6.

Keep the same restriction for the other platform.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 .../devicetree/bindings/media/nxp,imx8-isi.yaml    | 87 +++++++++++++++++++---
 1 file changed, 75 insertions(+), 12 deletions(-)

Comments

Rob Herring Feb. 3, 2025, 10:16 p.m. UTC | #1
On Fri, Jan 31, 2025 at 04:33:50PM -0500, Frank Li wrote:
> From: Robert Chiras <robert.chiras@nxp.com>
> 
> Add compatible strings for i.MX8QM and i.MX8QXP platforms.
> 
> Increase the number of max interrupts and clock to 8. i.MX8QM have 8
> channels and i.MX8QXP have 5 channels. Each channel requires one clock
> source and interrupt.
> 
> Remove fsl,blk-ctrl from required list because i.MX8Q needn't it.
> 
> i.MX8QM use port@2 and port@3. i.MX8QXP use port@2 and port@6.
> 
> Keep the same restriction for the other platform.
> 
> Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
> Reviewed-by: Robby Cai <robby.cai@nxp.com>
> Reviewed-by: Mirela Rabulea <mirela.rabulea@nxp.com>
> Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
>  .../devicetree/bindings/media/nxp,imx8-isi.yaml    | 87 +++++++++++++++++++---
>  1 file changed, 75 insertions(+), 12 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
> index f43b91984f015..b713c8ba79e39 100644
> --- a/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
> +++ b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
> @@ -21,6 +21,8 @@ properties:
>      enum:
>        - fsl,imx8mn-isi
>        - fsl,imx8mp-isi
> +      - fsl,imx8qm-isi
> +      - fsl,imx8qxp-isi
>        - fsl,imx8ulp-isi
>        - fsl,imx93-isi
>  
> @@ -28,17 +30,12 @@ properties:
>      maxItems: 1
>  
>    clocks:
> -    items:
> -      - description: The AXI clock
> -      - description: The APB clock
> -      # TODO: Check if the per-channel ipg_proc_clk clocks need to be specified
> -      # as well, in case some SoCs have the ability to control them separately.
> -      # This may be the case of the i.MX8[DQ]X(P)
> +    minItems: 1
> +    maxItems: 8

Isn't the minimum still 2?

>  
>    clock-names:
> -    items:
> -      - const: axi
> -      - const: apb
> +    minItems: 1
> +    maxItems: 8
>  
>    fsl,blk-ctrl:
>      $ref: /schemas/types.yaml#/definitions/phandle
> @@ -49,10 +46,11 @@ properties:
>    interrupts:
>      description: Processing pipeline interrupts, one per pipeline
>      minItems: 1
> -    maxItems: 2
> +    maxItems: 8
>  
>    power-domains:
> -    maxItems: 1
> +    minItems: 1
> +    maxItems: 8
>  
>    ports:
>      $ref: /schemas/graph.yaml#/properties/ports
> @@ -66,7 +64,6 @@ required:
>    - interrupts
>    - clocks
>    - clock-names
> -  - fsl,blk-ctrl
>    - ports
>  
>  allOf:
> @@ -79,9 +76,17 @@ allOf:
>                - fsl,imx8ulp-isi
>                - fsl,imx93-isi
>      then:
> +      required:
> +        - fsl,blk-ctrl
>        properties:
>          interrupts:
>            maxItems: 1
> +        clocks:
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: axi
> +            - const: apb
>          ports:
>            properties:
>              port@0:
> @@ -96,9 +101,17 @@ allOf:
>            contains:
>              const: fsl,imx8mp-isi
>      then:
> +      required:
> +        - fsl,blk-ctrl
>        properties:
>          interrupts:
>            maxItems: 2
> +        clocks:
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: axi
> +            - const: apb
>          ports:
>            properties:
>              port@0:
> @@ -109,6 +122,56 @@ allOf:
>              - port@0
>              - port@1
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: fsl,imx8qm-isi
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 8
> +        clock-names:
> +          items:
> +            pattern: "^per[0-7]"
> +        interrupts:
> +          minItems: 8
> +        ports:
> +          properties:
> +            port@2:
> +              description: MIPI CSI-2 RX 0
> +            port@3:
> +              description: MIPI CSI-2 RX 1
> +          required:
> +            - port@2
> +            - port@3

This schema is completely missing proper schemas for port nodes. It 
needs to reference the port schema for each port. That should be at the 
top-level.

I think this addition is borderline whether it should be its own schema 
doc. The if/then schemas are larger than the main part. The ports are 
not even the same.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
index f43b91984f015..b713c8ba79e39 100644
--- a/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
+++ b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
@@ -21,6 +21,8 @@  properties:
     enum:
       - fsl,imx8mn-isi
       - fsl,imx8mp-isi
+      - fsl,imx8qm-isi
+      - fsl,imx8qxp-isi
       - fsl,imx8ulp-isi
       - fsl,imx93-isi
 
@@ -28,17 +30,12 @@  properties:
     maxItems: 1
 
   clocks:
-    items:
-      - description: The AXI clock
-      - description: The APB clock
-      # TODO: Check if the per-channel ipg_proc_clk clocks need to be specified
-      # as well, in case some SoCs have the ability to control them separately.
-      # This may be the case of the i.MX8[DQ]X(P)
+    minItems: 1
+    maxItems: 8
 
   clock-names:
-    items:
-      - const: axi
-      - const: apb
+    minItems: 1
+    maxItems: 8
 
   fsl,blk-ctrl:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -49,10 +46,11 @@  properties:
   interrupts:
     description: Processing pipeline interrupts, one per pipeline
     minItems: 1
-    maxItems: 2
+    maxItems: 8
 
   power-domains:
-    maxItems: 1
+    minItems: 1
+    maxItems: 8
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
@@ -66,7 +64,6 @@  required:
   - interrupts
   - clocks
   - clock-names
-  - fsl,blk-ctrl
   - ports
 
 allOf:
@@ -79,9 +76,17 @@  allOf:
               - fsl,imx8ulp-isi
               - fsl,imx93-isi
     then:
+      required:
+        - fsl,blk-ctrl
       properties:
         interrupts:
           maxItems: 1
+        clocks:
+          maxItems: 2
+        clock-names:
+          items:
+            - const: axi
+            - const: apb
         ports:
           properties:
             port@0:
@@ -96,9 +101,17 @@  allOf:
           contains:
             const: fsl,imx8mp-isi
     then:
+      required:
+        - fsl,blk-ctrl
       properties:
         interrupts:
           maxItems: 2
+        clocks:
+          maxItems: 2
+        clock-names:
+          items:
+            - const: axi
+            - const: apb
         ports:
           properties:
             port@0:
@@ -109,6 +122,56 @@  allOf:
             - port@0
             - port@1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx8qm-isi
+    then:
+      properties:
+        clocks:
+          minItems: 8
+        clock-names:
+          items:
+            pattern: "^per[0-7]"
+        interrupts:
+          minItems: 8
+        ports:
+          properties:
+            port@2:
+              description: MIPI CSI-2 RX 0
+            port@3:
+              description: MIPI CSI-2 RX 1
+          required:
+            - port@2
+            - port@3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx8qxp-isi
+    then:
+      properties:
+        clocks:
+          minItems: 5
+          maxItems: 5
+        clock-names:
+          items:
+            pattern: "^per[0,4-7]"
+        interrupts:
+          minItems: 5
+          maxItems: 5
+        ports:
+          properties:
+            port@2:
+              description: MIPI CSI-2 RX
+            port@3: false
+            port@6:
+              description: MIPI CSI-2 Parallel RX
+          required:
+            - port@2
+
 additionalProperties: false
 
 examples: