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