All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
Cc: "Rob Herring" <robh@kernel.org>,
	"Lad Prabhakar" <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	linux-media <linux-media@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Biju Das" <biju.das.jz@bp.renesas.com>
Subject: Re: [RFC PATCH 1/3] media: dt-bindings: media: Document RZ/G2L CRU block
Date: Tue, 21 Dec 2021 10:47:22 +0200	[thread overview]
Message-ID: <YcGUmvq32fUXOMTo@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CA+V-a8tHL-DwNz3USQwh5NieTRvPhUAjZV-GqFsK67fgU+kF_w@mail.gmail.com>

Hi Prabhakar,

Thank you for the patch.

On Tue, Dec 14, 2021 at 12:07:14PM +0000, Lad, Prabhakar wrote:
> On Mon, Dec 13, 2021 at 10:58 PM Rob Herring wrote:
> > On Tue, Dec 07, 2021 at 01:23:49AM +0000, Lad Prabhakar wrote:
> > > Document the CRU block found on Renesas RZ/G2L SoC's.
> > >
> > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > > ---
> > >  .../bindings/media/renesas,rzg2l-cru.yaml     | 227 ++++++++++++++++++
> > >  1 file changed, 227 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml
> > > new file mode 100644
> > > index 000000000000..7b2835810516
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml
> > > @@ -0,0 +1,227 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +# Copyright (C) 2021 Renesas Electronics Corp.
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/media/renesas,rzg2l-cru.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Renesas RZ/G2L Camera Data Receiving Unit (CRU)
> > > +
> > > +maintainers:
> > > +  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > > +
> > > +description:
> > > +  The RZ/G2L Camera Data Receiving Unit (CRU) device provides video input
> > > +  capabilities for the Renesas RZ/G2L family of devices.
> > > +
> > > +  Depending on the instance the Image Processing input is connected to
> > > +  external SoC pins or to a CSI-2 receiver.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    oneOf:
> > > +      - items:
> >
> > Don't need oneOf with only 1 entry.
>
> I added this as there will be couple of more SoC's using this driver.

Will that be SoCs not compatible tieh the rzg2l-cru compatible string ?
If so oneOf may be needed, but you can also add it later.

> > > +          - enum:
> > > +              - renesas,r9a07g044-cru     # RZ/G2{L,LC}
> > > +          - const: renesas,rzg2l-cru
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 4
> > > +
> > > +  interrupt-names:
> > > +    items:
> > > +      - const: csi2_link_int

I'm not thrilled by this. It looks like the CSI-2 receiver and the image
processing block are separate IP cores. Can we model them as separate DT
nodes ? I expect the CSI-2 receiver to possibly be reused in other SoCs
with a different integration.

> > > +      - const: image_conv_int
> > > +      - const: image_conv_err_int
> > > +      - const: axi_mst_err_int
> >
> > _int is redundant.
>
> Agreed will drop "_int".
> 
> > > +
> > > +  clocks:
> > > +    items:
> > > +      - description: Internal clock for connecting CRU and MIPI
> > > +      - description: CRU Main clock
> > > +      - description: CPU Register access clock
> > > +      - description: CRU image transfer clock
> > > +
> > > +  clock-names:
> > > +    items:
> > > +      - const: sysclk
> > > +      - const: vclk
> > > +      - const: pclk
> > > +      - const: aclk
> > > +
> > > +  power-domains:
> > > +    maxItems: 1
> > > +
> > > +  resets:
> > > +    items:
> > > +      - description: CRU_CMN_RSTB reset terminal
> > > +      - description: CRU_PRESETN reset terminal
> > > +      - description: CRU_ARESETN reset terminal
> > > +
> > > +  reset-names:
> > > +    items:
> > > +      - const: cmn-rstb
> > > +      - const: presetn
> > > +      - const: aresetn
> > > +
> > > +  ports:
> > > +    $ref: /schemas/graph.yaml#/properties/ports
> > > +
> > > +    properties:
> > > +      port@0:
> > > +        $ref: /schemas/graph.yaml#/$defs/port-base
> > > +        unevaluatedProperties: false
> > > +        description:
> > > +          Input port node, single endpoint describing a parallel input source.
> > > +
> > > +        properties:
> > > +          endpoint:
> > > +            $ref: video-interfaces.yaml#
> > > +            unevaluatedProperties: false
> > > +
> > > +            properties:
> > > +              hsync-active: true
> > > +
> > > +              vsync-active: true
> > > +
> > > +              bus-width: true
> > > +
> > > +              data-shift: true

No need for a blank line between all properties.

> > > +
> > > +      port@1:
> > > +        $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:
> > > +              clock-lanes:
> > > +                maxItems: 1

If lane reordering isn't supported, you could omit this.

> > > +
> > > +              data-lanes:
> > > +                maxItems: 1

Doesn't the CSI-2 receiver support more than one lane ?

> > > +
> > > +            required:
> > > +              - clock-lanes
> > > +              - data-lanes
> > > +
> > > +      port@2:
> > > +        $ref: /schemas/graph.yaml#/properties/port
> > > +        description:
> > > +          Output port node, describing the RZ/G2L Image Processing module
> > > +          connected the CSI-2 receiver
> > > +
> > > +        properties:
> > > +          endpoint@0:
> >
> > Unless you have mutiple endpoints to define or endpoint properties to
> > add, you don't need to specify anything more than the port.
>
> Agreed will drop it.
> 
> > > +            $ref: /schemas/graph.yaml#/properties/endpoint
> > > +            description: Endpoint connected to CSI2.
> > > +
> > > +        anyOf:
> > > +          - required:
> > > +              - endpoint@0
> > > +
> > > +      port@3:
> > > +        $ref: /schemas/graph.yaml#/properties/port
> > > +        description:
> > > +          Input port node, describing the RZ/G2L CSI-2 module connected the
> > > +          Image Processing block.
> > > +
> > > +        properties:
> > > +          endpoint@0:
> > > +            $ref: /schemas/graph.yaml#/properties/endpoint
> > > +            description: Endpoint connected to CSI2.
> > > +
> > > +        anyOf:
> > > +          - required:
> > > +              - endpoint@0
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - interrupts
> > > +  - interrupt-names
> > > +  - clocks
> > > +  - clock-names
> > > +  - resets
> > > +  - reset-names
> > > +  - power-domains
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  # Device node example with CSI-2
> > > +  - |
> > > +    #include <dt-bindings/clock/r9a07g044-cpg.h>
> > > +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> > > +
> > > +    cru: video@10830000 {
> > > +            compatible = "renesas,r9a07g044-cru", "renesas,rzg2l-cru";
> > > +            reg = <0x10830000 0x10000>;
> > > +            interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
> > > +                         <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
> > > +                         <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
> > > +                         <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
> > > +            interrupt-names = "csi2_link_int", "image_conv_int",
> > > +                              "image_conv_err_int", "axi_mst_err_int";
> > > +            clocks = <&cpg CPG_MOD R9A07G044_CRU_SYSCLK>,
> > > +                     <&cpg CPG_MOD R9A07G044_CRU_VCLK>,
> > > +                     <&cpg CPG_MOD R9A07G044_CRU_PCLK>,
> > > +                     <&cpg CPG_MOD R9A07G044_CRU_ACLK>;
> > > +            clock-names = "sysclk", "vclk", "pclk", "aclk";
> > > +            power-domains = <&cpg>;
> > > +            resets = <&cpg R9A07G044_CRU_CMN_RSTB>,
> > > +                     <&cpg R9A07G044_CRU_PRESETN>,
> > > +                     <&cpg R9A07G044_CRU_ARESETN>;
> > > +            reset-names = "cmn-rstb", "presetn", "aresetn";
> > > +
> > > +            ports {
> > > +                    #address-cells = <1>;
> > > +                    #size-cells = <0>;
> > > +
> > > +                    port@1 {
> > > +                            #address-cells = <1>;
> > > +                            #size-cells = <0>;
> > > +
> > > +                            reg = <1>;
> > > +
> > > +                            csi2_in: endpoint@0 {
> > > +                                    reg = <0>;
> > > +                                    clock-lanes = <0>;
> > > +                                    data-lanes = <1 2>;
> > > +                                    remote-endpoint = <&ov5645_ep>;
> > > +                            };
> > > +                    };
> > > +
> > > +                    port@2 {
> > > +                            #address-cells = <1>;
> > > +                            #size-cells = <0>;
> > > +
> > > +                            reg = <2>;
> > > +
> > > +                            csi2cru: endpoint@0 {
> > > +                                    reg = <0>;
> > > +                                    remote-endpoint= <&crucsi2>;
> > > +                            };
> > > +                    };
> > > +
> > > +                    port@3 {
> > > +                            #address-cells = <1>;
> > > +                            #size-cells = <0>;
> > > +
> > > +                            reg = <3>;
> > > +
> > > +                            crucsi2: endpoint@0 {
> > > +                                    reg = <0>;
> > > +                                    remote-endpoint= <&csi2cru>;
> > > +                            };
> > > +                    };
> > > +            };
> > > +    };

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2021-12-21  8:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-07  1:23 [RFC PATCH 0/3] Add driver for Renesas RZ/G2L CRU module Lad Prabhakar
2021-12-07  1:23 ` [RFC PATCH 1/3] media: dt-bindings: media: Document RZ/G2L CRU block Lad Prabhakar
2021-12-13 22:58   ` Rob Herring
2021-12-14 12:07     ` Lad, Prabhakar
2021-12-21  8:47       ` Laurent Pinchart [this message]
2021-12-22  9:16         ` Lad, Prabhakar
2021-12-07  1:23 ` [RFC PATCH 2/3] media: platform: Add CRU driver for RZ/G2L SoC Lad Prabhakar
2021-12-07  8:16   ` Philipp Zabel
2021-12-08  0:32     ` Lad, Prabhakar
2021-12-21 10:19   ` Laurent Pinchart
2021-12-22 10:36     ` Lad, Prabhakar
2021-12-07  1:23 ` [RFC PATCH 3/3] arm64: dts: renesas: r9a07g044: Add CRU node Lad Prabhakar
2021-12-20 21:04 ` [RFC PATCH 0/3] Add driver for Renesas RZ/G2L CRU module Lad, Prabhakar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YcGUmvq32fUXOMTo@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=prabhakar.csengg@gmail.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.