Message ID | 20220810132822.32534-2-yuji2.ishikawa@toshiba.co.jp (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Toshiba Visconti Video Input Interface driver | expand |
On Wed, 10 Aug 2022 22:28:19 +0900, Yuji Ishikawa wrote: > Adds the Device Tree binding documentation that allows to describe > the Video Input Interface found in Toshiba Visconti SoCs. > > Signed-off-by: Yuji Ishikawa <yuji2.ishikawa@toshiba.co.jp> > Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> > --- > Chengelog v2: > - no change > > Changelog v3: > - no change > --- > .../bindings/media/toshiba,visconti-viif.yaml | 103 ++++++++++++++++++ > 1 file changed, 103 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: ./Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml:14:111: [warning] line too long (112 > 110 characters) (line-length) dtschema/dtc warnings/errors: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml: properties:port:properties:endpoint:properties:data-lanes:items: 'oneOf' conditional failed, one must be fixed: {'minItems': 1, 'maxItems': 4, 'items': [{'const': 1}, {'const': 2}, {'const': 3}, {'const': 4}]} should not be valid under {'required': ['maxItems']} hint: "maxItems" is not needed with an "items" list {'minItems': 1, 'maxItems': 4, 'items': [{'const': 1}, {'const': 2}, {'const': 3}, {'const': 4}]} is not of type 'array' from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml: ignoring, error in schema: properties: port: properties: endpoint: properties: data-lanes: items Documentation/devicetree/bindings/media/toshiba,visconti-viif.example.dtb:0:0: /example-0/soc/viif@1c000000: failed to match any schema with compatible: ['toshiba,visconti-viif'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/ This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. 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.
On Wed, Aug 10, 2022 at 10:28:19PM +0900, Yuji Ishikawa wrote: > Adds the Device Tree binding documentation that allows to describe > the Video Input Interface found in Toshiba Visconti SoCs. > > Signed-off-by: Yuji Ishikawa <yuji2.ishikawa@toshiba.co.jp> > Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> > --- > Chengelog v2: > - no change > > Changelog v3: > - no change > --- > .../bindings/media/toshiba,visconti-viif.yaml | 103 ++++++++++++++++++ > 1 file changed, 103 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > > diff --git a/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > new file mode 100644 > index 000000000..848ea5019 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > @@ -0,0 +1,103 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/toshiba,visconti-viif.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Toshiba Visconti5 SoC Video Input Interface Device Tree Bindings > + > +maintainers: > + - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> > + > +description: | Don't need '|' if no formatting. > + Toshiba Visconti5 SoC Video Input Interface (VIIF) receives MIPI CSI2 video stream, > + processes the stream with embedded image signal processor (L1ISP, L2ISP), then stores pictures to main memory. Wrap lines at 80 char. > + > +properties: > + compatible: > + const: toshiba,visconti-viif > + > + reg: > + items: > + - description: registers for capture control > + - description: registers for CSI2 receiver control > + > + interrupts: > + items: > + - description: Sync Interrupt > + - description: Status (Error) Interrupt > + - description: CSI2 Receiver Interrupt > + - description: L1ISP Interrupt > + > + index: > + enum: [0, 1] No, we don't do indices in DT. Why do you need this? > + > + port: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: Input port node, single endpoint describing the CSI-2 transmitter. > + > + properties: > + endpoint: > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > + > + properties: > + data-lanes: > + description: VIIF supports 2 or 4 data lines > + items: > + minItems: 1 > + maxItems: 4 > + items: > + - const: 1 > + - const: 2 > + - const: 3 > + - const: 4 blank line > + clock-lanes: > + description: VIIF supports 1 clock line > + const: 0 > + > +required: > + - compatible > + - reg > + - interrupts > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + soc { > + #address-cells = <2>; > + #size-cells = <2>; > + > + viif0: viif@1c000000 { Drop unused labels. > + compatible = "toshiba,visconti-viif"; > + reg = <0 0x1c000000 0 0x6000>, > + <0 0x1c008000 0 0x400>; > + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; > + index = <0>; > + status = "disabled"; Why is your example disabled? Don't put 'status' in examples. > + > + port { > + #address-cells = <1>; > + #size-cells = <0>; > + > + csi_in0: endpoint { > + remote-endpoint = <&imx219_out0>; > + bus-type = <4>; > + data-lanes = <1 2>; > + clock-lanes = <0>; > + clock-noncontinuous; > + link-frequencies = /bits/ 64 <456000000>; > + }; > + }; > + }; > + }; > + > -- > 2.17.1 > > >
Hello Rob, Thank you for your comments and sorry for this too late reply. > -----Original Message----- > From: Rob Herring <robh@kernel.org> > Sent: Thursday, August 11, 2022 12:38 AM > To: ishikawa yuji(石川 悠司 ○RDC□AITC○EA開) > <yuji2.ishikawa@toshiba.co.jp> > Cc: Hans Verkuil <hverkuil@xs4all.nl>; Laurent Pinchart > <laurent.pinchart@ideasonboard.com>; Mauro Carvalho Chehab > <mchehab@kernel.org>; iwamatsu nobuhiro(岩松 信洋 □SWC◯ACT) > <nobuhiro1.iwamatsu@toshiba.co.jp>; linux-media@vger.kernel.org; > linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; > devicetree@vger.kernel.org > Subject: Re: [PATCH v3 1/4] dt-bindings: media: platform: visconti: Add Toshiba > Visconti Video Input Interface bindings > > On Wed, Aug 10, 2022 at 10:28:19PM +0900, Yuji Ishikawa wrote: > > Adds the Device Tree binding documentation that allows to describe the > > Video Input Interface found in Toshiba Visconti SoCs. > > > > Signed-off-by: Yuji Ishikawa <yuji2.ishikawa@toshiba.co.jp> > > Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> > > --- > > Chengelog v2: > > - no change > > > > Changelog v3: > > - no change > > --- > > .../bindings/media/toshiba,visconti-viif.yaml | 103 > > ++++++++++++++++++ > > 1 file changed, 103 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > > b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml > > new file mode 100644 > > index 000000000..848ea5019 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.ya > > +++ ml > > @@ -0,0 +1,103 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/media/toshiba,visconti-viif.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Toshiba Visconti5 SoC Video Input Interface Device Tree > > +Bindings > > + > > +maintainers: > > + - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> > > + > > +description: | > > Don't need '|' if no formatting. I'll remove '|'. > > + Toshiba Visconti5 SoC Video Input Interface (VIIF) receives MIPI > > + CSI2 video stream, processes the stream with embedded image signal > processor (L1ISP, L2ISP), then stores pictures to main memory. > > Wrap lines at 80 char. I'll update the description. > > + > > +properties: > > + compatible: > > + const: toshiba,visconti-viif > > + > > + reg: > > + items: > > + - description: registers for capture control > > + - description: registers for CSI2 receiver control > > + > > + interrupts: > > + items: > > + - description: Sync Interrupt > > + - description: Status (Error) Interrupt > > + - description: CSI2 Receiver Interrupt > > + - description: L1ISP Interrupt > > + > > + index: > > + enum: [0, 1] > > No, we don't do indices in DT. Why do you need this? The property 'index' can have value <0> or <1>. A node with 'index=<0>' corresponds to 0'th VIIF HW instance (VIIF0). Also, there's 1'st VIIF HW instance (VIIF1) with a bit different operation-mode set. Sorry for asking question for a comment months ago. Let me clarify: * The problem is NOT defining style of 'index' with enum * The problem is NOT that 'index' is reserved keyword * The problem is having additional sequential ID for a node, while 'reg' (usually, the base address of registers) can identify instance. Therefore, 'index' should be removed, and vendor-specific property can be used to declare each feature only on VIIF1. Is this correct understanding or am I still missing the point? > > + > > + port: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: Input port node, single endpoint describing the CSI-2 > transmitter. > > + > > + properties: > > + endpoint: > > + $ref: video-interfaces.yaml# > > + unevaluatedProperties: false > > + > > + properties: > > + data-lanes: > > + description: VIIF supports 2 or 4 data lines > > + items: > > + minItems: 1 > > + maxItems: 4 > > + items: > > + - const: 1 > > + - const: 2 > > + - const: 3 > > + - const: 4 > > blank line I'll fix this > > > + clock-lanes: > > + description: VIIF supports 1 clock line > > + const: 0 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - port > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/arm-gic.h> > > + #include <dt-bindings/interrupt-controller/irq.h> > > + > > + soc { > > + #address-cells = <2>; > > + #size-cells = <2>; > > + > > + viif0: viif@1c000000 { > > Drop unused labels. I'll fix this. > > > + compatible = "toshiba,visconti-viif"; > > + reg = <0 0x1c000000 0 0x6000>, > > + <0 0x1c008000 0 0x400>; > > + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; > > + index = <0>; > > + status = "disabled"; > > Why is your example disabled? Don't put 'status' in examples. I'll remove 'status'. > > > + > > + port { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + csi_in0: endpoint { > > + remote-endpoint = <&imx219_out0>; > > + bus-type = <4>; > > + data-lanes = <1 2>; > > + clock-lanes = <0>; > > + clock-noncontinuous; > > + link-frequencies = /bits/ 64 <456000000>; > > + }; > > + }; > > + }; > > + }; > > + > > -- > > 2.17.1 > > > > > > Regards, Yuji Ishikawa
diff --git a/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml new file mode 100644 index 000000000..848ea5019 --- /dev/null +++ b/Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml @@ -0,0 +1,103 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/toshiba,visconti-viif.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Toshiba Visconti5 SoC Video Input Interface Device Tree Bindings + +maintainers: + - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> + +description: | + Toshiba Visconti5 SoC Video Input Interface (VIIF) receives MIPI CSI2 video stream, + processes the stream with embedded image signal processor (L1ISP, L2ISP), then stores pictures to main memory. + +properties: + compatible: + const: toshiba,visconti-viif + + reg: + items: + - description: registers for capture control + - description: registers for CSI2 receiver control + + interrupts: + items: + - description: Sync Interrupt + - description: Status (Error) Interrupt + - description: CSI2 Receiver Interrupt + - description: L1ISP Interrupt + + index: + enum: [0, 1] + + port: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port node, single endpoint describing the CSI-2 transmitter. + + properties: + endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + data-lanes: + description: VIIF supports 2 or 4 data lines + items: + minItems: 1 + maxItems: 4 + items: + - const: 1 + - const: 2 + - const: 3 + - const: 4 + clock-lanes: + description: VIIF supports 1 clock line + const: 0 + +required: + - compatible + - reg + - interrupts + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interrupt-controller/irq.h> + + soc { + #address-cells = <2>; + #size-cells = <2>; + + viif0: viif@1c000000 { + compatible = "toshiba,visconti-viif"; + reg = <0 0x1c000000 0 0x6000>, + <0 0x1c008000 0 0x400>; + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; + index = <0>; + status = "disabled"; + + port { + #address-cells = <1>; + #size-cells = <0>; + + csi_in0: endpoint { + remote-endpoint = <&imx219_out0>; + bus-type = <4>; + data-lanes = <1 2>; + clock-lanes = <0>; + clock-noncontinuous; + link-frequencies = /bits/ 64 <456000000>; + }; + }; + }; + }; +