linux-renesas-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
To: Niklas <niklas.soderlund@ragnatech.se>
Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-media <linux-media@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	Biju Das <biju.das.jz@bp.renesas.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: Re: [PATCH 1/2] dt-bindings: media: renesas,vin: Document renesas-vin-ycbcr-8b-g property
Date: Sat, 25 Jul 2020 23:23:13 +0100	[thread overview]
Message-ID: <CA+V-a8sNxUaj88DDcWyc4zrmsAAGndjoQX=OmJ3u1GRJCT6TBQ@mail.gmail.com> (raw)
In-Reply-To: <20200725081146.GF2729799@oden.dyn.berto.se>

Hi Niklas,

On Sat, Jul 25, 2020 at 9:11 AM Niklas <niklas.soderlund@ragnatech.se> wrote:
>
> Hi Lad,
>
> On 2020-07-24 22:11:31 +0100, Lad, Prabhakar wrote:
> > Hi Niklas,
> >
> > Thank you for the review.
> >
> > On Fri, Jul 24, 2020 at 8:37 PM Niklas <niklas.soderlund@ragnatech.se> wrote:
> > >
> > > Hi Lad,
> > >
> > > Thanks for your patch.
> > >
> > > On 2020-07-24 15:58:51 +0100, Lad Prabhakar wrote:
> > > > Add a DT property "renesas-vin-ycbcr-8b-g" to select YCbCr422 8-bit data
> > > > input pins.
> > > >
> > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > > > Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > > ---
> > > >  Documentation/devicetree/bindings/media/renesas,vin.yaml | 13 +++++++++++++
> > > >  1 file changed, 13 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> > > > index 53c0a72..7dfb781 100644
> > > > --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml
> > > > +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> > > > @@ -106,6 +106,12 @@ properties:
> > > >
> > > >            remote-endpoint: true
> > > >
> > > > +          renesas-vin-ycbcr-8b-g:
> > >
> > > I think the preferred format for vendor specific properties are
> > > "<vendor>,<property>".
> > >
> > Indeed and I had it as renesas,vin-ycbcr-8b-g but dt_bindings_check
> > complained about it.
>
> I see, what was the error?
>
  CHKDT   Documentation/devicetree/bindings/media/renesas,vin.yaml
/home/prasmi/work/renasas/g2n/renesas-devel/Documentation/devicetree/bindings/media/renesas,vin.yaml:
properties:port:properties:endpoint:properties:renesas,vin-ycbcr-8b-g:
{'type': 'boolean', 'description': 'If present this property specifies
to selects VIN_G[7:0] as data pins for YCbCr422 8-bit data.',
'default': False} is not valid under any of the given schemas
(Possible causes of the failure):
    /home/prasmi/work/renasas/g2n/renesas-devel/Documentation/devicetree/bindings/media/renesas,vin.yaml:
properties:port:properties:endpoint:properties:renesas,vin-ycbcr-8b-g:
'not' is a required property

/home/prasmi/work/renasas/g2n/renesas-devel/Documentation/devicetree/bindings/media/renesas,vin.yaml:
properties:ports:properties:port@0:properties:endpoint:properties:renesas,vin-ycbcr-8b-g:
{'type': 'boolean', 'description': 'If present this property specifies
to selects VIN_G[7:0] as data pins for YCbCr422 8-bit data.',
'default': False} is not valid under any of the given schemas
(Possible causes of the failure):
    /home/prasmi/work/renasas/g2n/renesas-devel/Documentation/devicetree/bindings/media/renesas,vin.yaml:
properties:ports:properties:port@0:properties:endpoint:properties:renesas,vin-ycbcr-8b-g:
'not' is a required property

Documentation/devicetree/bindings/Makefile:20: recipe for target
'Documentation/devicetree/bindings/media/renesas,vin.example.dts'
failed
make[1]: *** [Documentation/devicetree/bindings/media/renesas,vin.example.dts]
Error 1
Makefile:1334: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2


> >
> > > This nit apart I'm not sure a property is the right way here. Could it
> > > not be possible on some designs to have two different sensors one wired
> > > to DATA[7:0] and the other to DATA[15:8] and by controlling the
> > > VNDRM2_YDS register at runtime switch between the two? If so adding a DT
> > > property to hard-code one of the two options would prevent this. I fear
> > > we need to think of a runtime way to deal with this.
> > >
> > Aha Gen2 and Gen3 hardware manuals have a bit different description
> > about the YDS field. (I was working R8a7742 SoC so I referred Gen2
> > manual)
>
> Ahh, I think we should use the Gen3 names as I find them overall an
> improvement over the Gen2 ones.
>
Agreed.

> >
> > > The best way to do that I think is to extend the port@0 node to allow
> > > for two endpoints, one for each of the two possible parallel sensors.
> > > This would then have to be expressed in the media graph and selection if
> > > YDS should be set or not depend on which media links are enabled.
> > >
> > In that case how do we handle endpoint matching each would have two
> > subdevs to be matched.
>
> It would be handle in the same was as the multiple endpoints in port@1.
>
> > And in case non media-ctl cases we cannot
> > switch between subdevs.
>
> For the Gen2 none media graph enabled mode this could be handled with
> the S_INPUT ioctl. For this feature to be merged however I it needs to
> be possible to select input both in Gen2 and Gen3 I'm afraid.
Ohh yes S_INPUT could be used to switch inputs. But  how do we decide
YDS needs to be enabled, for example with the below dts say vin3 is
parallel bus split into 2x 8-bit bus one connected to a ov5640 sensor
and other connected to ov7725 sensor. Should we use data-shift
property for the second vin endpoint (vin3ep1) to enable YDS ?

&i2c3 {
    pinctrl-0 = <&i2c3_pins>;
    pinctrl-names = "default";

    status = "okay";
    clock-frequency = <400000>;

    ov7725@21 {
        status = "disabled";
        compatible = "ovti,ov7725";
        reg = <0x21>;
        clocks = <&mclk_cam4>;

        port {
            ov7725_3: endpoint {
                bus-width = <8>;
                bus-type = <6>;
                remote-endpoint = <&vin3ep0>;
            };
        };
    };

    ov5640@3c {
        status = "okay";
        compatible = "ovti,ov5640";
        reg = <0x3c>;
        clocks = <&mclk_cam4>;
        clock-names = "xclk";

        port {
            ov5640_3: endpoint {
                bus-width = <8>;
                bus-type = <6>;
                remote-endpoint = <&vin3ep1>;
            };
        };
    };
};

&vin3 {
    status = "okay";
    pinctrl-0 = <&vin3_pins>;
    pinctrl-names = "default";

    port {
        #address-cells = <1>;
        #size-cells = <0>;

        vin3ep0: endpoint {
            remote-endpoint = <&ov7725_3>;
            bus-width = <8>;
        };

        vin3ep1: endpoint {
            remote-endpoint = <&ov5640_3>;
            bus-width = <8>;
        };

    };
};


>I'm hoping to one day breakout the non MC part of this driver into a new one and
> mark it as deprecated and switch to the MC code paths for Gen2.
>
That sounds like a good idea.

Cheers,
--Prabhakar

  reply	other threads:[~2020-07-25 22:23 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-24 14:58 [PATCH 0/2] media: rcar-vin: Add support to select data pins Lad Prabhakar
2020-07-24 14:58 ` [PATCH 1/2] dt-bindings: media: renesas,vin: Document renesas-vin-ycbcr-8b-g property Lad Prabhakar
2020-07-24 19:37   ` Niklas
2020-07-24 21:11     ` Lad, Prabhakar
2020-07-25  8:11       ` Niklas
2020-07-25 22:23         ` Lad, Prabhakar [this message]
2020-07-31 20:19           ` Rob Herring
2020-08-01  9:17           ` Niklas
2020-08-03  9:31             ` Geert Uytterhoeven
2020-07-24 14:58 ` [PATCH 2/2] media: rcar-vin: Add support to read " 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='CA+V-a8sNxUaj88DDcWyc4zrmsAAGndjoQX=OmJ3u1GRJCT6TBQ@mail.gmail.com' \
    --to=prabhakar.csengg@gmail.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --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@ragnatech.se \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=robh+dt@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).