Hello Rob, Thank you for your comments and sorry for this too late reply. > -----Original Message----- > From: Rob Herring <robh@xxxxxxxxxx> > Sent: Thursday, August 11, 2022 12:38 AM > To: ishikawa yuji(石川 悠司 ○RDC□AITC○EA開) > <yuji2.ishikawa@xxxxxxxxxxxxx> > Cc: Hans Verkuil <hverkuil@xxxxxxxxx>; Laurent Pinchart > <laurent.pinchart@xxxxxxxxxxxxxxxx>; Mauro Carvalho Chehab > <mchehab@xxxxxxxxxx>; iwamatsu nobuhiro(岩松 信洋 □SWC◯ACT) > <nobuhiro1.iwamatsu@xxxxxxxxxxxxx>; linux-media@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx > 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@xxxxxxxxxxxxx> > > Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@xxxxxxxxxxxxx> > > --- > > 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@xxxxxxxxxxxxx> > > + > > +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