All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Rob Herring <robh@kernel.org>
Cc: devicetree@vger.kernel.org, Sameer Pujar <spujar@nvidia.com>,
	Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>
Subject: Re: [PATCH v3 1/3] dt-bindings: Convert graph bindings to json-schema
Date: Thu, 12 Nov 2020 09:56:19 +0200	[thread overview]
Message-ID: <20201112075619.GA7931@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAL_JsqJUTDAxpmXTGaPfhhF5cCuh++We6-nXyH2b2WXrh+3NmQ@mail.gmail.com>

Hi Rob,

On Wed, Nov 11, 2020 at 05:03:26PM -0600, Rob Herring wrote:
> On Wed, Nov 11, 2020 at 8:27 AM Laurent Pinchart wrote:
> > On Wed, Nov 11, 2020 at 08:25:40AM -0600, Rob Herring wrote:
> > > On Wed, Nov 11, 2020 at 8:00 AM Laurent Pinchart wrote:
> > > > On Mon, Nov 02, 2020 at 02:36:54PM -0600, Rob Herring wrote:
> > > > > From: Sameer Pujar <spujar@nvidia.com>
> > > > >
> > > > > Convert device tree bindings of graph to YAML format. Currently graph.txt
> > > > > doc is referenced in multiple files and all of these need to use schema
> > > > > references. For now graph.txt is updated to refer to graph.yaml.
> > > > >
> > > > > For users of the graph binding, they should reference to the graph
> > > > > schema from either 'ports' or 'port' property:
> > > > >
> > > > > properties:
> > > > >   ports:
> > > > >     type: object
> > > > >     $ref: graph.yaml#/properties/ports
> > > > >
> > > > >     properties:
> > > > >       port@0:
> > > > >         description: What data this port has
> > > > >
> > > > >       ...
> > > > >
> > > > > Or:
> > > > >
> > > > > properties:
> > > > >   port:
> > > > >     description: What data this port has
> > > > >     type: object
> > > > >     $ref: graph.yaml#/properties/port
> > > >
> > > > Sounds like a good approach.
> > > >
> > > > > Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> > > > > Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
> > > > > Signed-off-by: Rob Herring <robh@kernel.org>
> > > > > ---
> > > > > v3:
> > > > >  - Move port 'reg' to port@* and make required
> > > > >  - Make remote-endpoint required
> > > > >  - Add 'additionalProperties: true' now required
> > > > >  - Fix yamllint warnings
> > > > >
> > > > >  Documentation/devicetree/bindings/graph.txt  | 129 +-----------
> > > > >  Documentation/devicetree/bindings/graph.yaml | 199 +++++++++++++++++++
> > > > >  2 files changed, 200 insertions(+), 128 deletions(-)
> > > > >  create mode 100644 Documentation/devicetree/bindings/graph.yaml
> > >
> > > [...]
> > >
> > > > > diff --git a/Documentation/devicetree/bindings/graph.yaml b/Documentation/devicetree/bindings/graph.yaml
> > > > > new file mode 100644
> > > > > index 000000000000..b56720c5a13e
> > > > > --- /dev/null
> > > > > +++ b/Documentation/devicetree/bindings/graph.yaml
> > > > > @@ -0,0 +1,199 @@
> > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > > +%YAML 1.2
> > > > > +---
> > > > > +$id: http://devicetree.org/schemas/graph.yaml#
> > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > > +
> > > > > +title: Common bindings for device graphs
> > > > > +
> > > > > +description: |
> > > > > +  The hierarchical organisation of the device tree is well suited to describe
> > > > > +  control flow to devices, but there can be more complex connections between
> > > > > +  devices that work together to form a logical compound device, following an
> > > > > +  arbitrarily complex graph.
> > > > > +  There already is a simple directed graph between devices tree nodes using
> > > > > +  phandle properties pointing to other nodes to describe connections that
> > > > > +  can not be inferred from device tree parent-child relationships. The device
> > > > > +  tree graph bindings described herein abstract more complex devices that can
> > > > > +  have multiple specifiable ports, each of which can be linked to one or more
> > > > > +  ports of other devices.
> > > > > +
> > > > > +  These common bindings do not contain any information about the direction or
> > > > > +  type of the connections, they just map their existence. Specific properties
> > > > > +  may be described by specialized bindings depending on the type of connection.
> > > > > +
> > > > > +  To see how this binding applies to video pipelines, for example, see
> > > > > +  Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > > > +  Here the ports describe data interfaces, and the links between them are
> > > > > +  the connecting data buses. A single port with multiple connections can
> > > > > +  correspond to multiple devices being connected to the same physical bus.
> > > > > +
> > > > > +maintainers:
> > > > > +  - Philipp Zabel <p.zabel@pengutronix.de>
> > > > > +
> > > > > +select: false
> > > > > +
> > > > > +properties:
> > > > > +  port:
> > > > > +    type: object
> > > > > +    description:
> > > > > +      If there is more than one endpoint node or 'reg' property present in
> > > > > +      endpoint nodes then '#address-cells' and '#size-cells' properties are
> > > > > +      required.
> > > > > +
> > > > > +    properties:
> > > > > +      "#address-cells":
> > > > > +        const: 1
> > > > > +
> > > > > +      "#size-cells":
> > > > > +        const: 0
> > > > > +
> > > > > +    patternProperties:
> > > > > +      "^endpoint(@[0-9a-f]+)?$":
> > > > > +        type: object
> > > > > +        properties:
> > > > > +          reg:
> > > > > +            maxItems: 1
> > > > > +
> > > > > +          remote-endpoint:
> > > > > +            description: |
> > > > > +              phandle to an 'endpoint' subnode of a remote device node.
> > > > > +            $ref: /schemas/types.yaml#/definitions/phandle
> > > > > +
> > > > > +        required:
> > > > > +          - remote-endpoint
> > > >
> > > > As noted elsewhere, this shouldn't be required.
> > > >
> > > > Should we set additionalProperties: false here ?
> > >
> > > No, we've got a bunch of properties that get added to endpoint nodes.
> > > There's a few cases where 'port' nodes have properties too.
> >
> > I meant the port node, which I wasn't aware needed additional
> > properties. Do you have any example ? (I wonder if you will point me to
> > bindings that I have written ;-))
> 
> Not you, but Renesas. dual-lvds-{odd,even}-pixels was the only one I
> think. But really, I think we could actually drop those if the port
> numbering defines even/odd instead. There's a patch I just reviewed
> for common dual lane panels. See
> 1604993797-14240-1-git-send-email-victor.liu@nxp.com

We've discussed this before, see

Subject: Re: [PATCH v2 7/9] drm: rcar-du: lvds: Add dual-LVDS panels support
Message-ID: <20190815130834.GM5011@pendragon.ideasonboard.com>

"But what will then happen if you panel has more than two ports (for
audio for instance, or for other types of video links) ? It may not be
possible to always use port 0 and 1 for the LVDS even and odd pixels in
DT bindings of a particular panel or bridge."

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Rob Herring <robh@kernel.org>
Cc: devicetree@vger.kernel.org,
	Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	Sameer Pujar <spujar@nvidia.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Sam Ravnborg <sam@ravnborg.org>
Subject: Re: [PATCH v3 1/3] dt-bindings: Convert graph bindings to json-schema
Date: Thu, 12 Nov 2020 09:56:19 +0200	[thread overview]
Message-ID: <20201112075619.GA7931@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAL_JsqJUTDAxpmXTGaPfhhF5cCuh++We6-nXyH2b2WXrh+3NmQ@mail.gmail.com>

Hi Rob,

On Wed, Nov 11, 2020 at 05:03:26PM -0600, Rob Herring wrote:
> On Wed, Nov 11, 2020 at 8:27 AM Laurent Pinchart wrote:
> > On Wed, Nov 11, 2020 at 08:25:40AM -0600, Rob Herring wrote:
> > > On Wed, Nov 11, 2020 at 8:00 AM Laurent Pinchart wrote:
> > > > On Mon, Nov 02, 2020 at 02:36:54PM -0600, Rob Herring wrote:
> > > > > From: Sameer Pujar <spujar@nvidia.com>
> > > > >
> > > > > Convert device tree bindings of graph to YAML format. Currently graph.txt
> > > > > doc is referenced in multiple files and all of these need to use schema
> > > > > references. For now graph.txt is updated to refer to graph.yaml.
> > > > >
> > > > > For users of the graph binding, they should reference to the graph
> > > > > schema from either 'ports' or 'port' property:
> > > > >
> > > > > properties:
> > > > >   ports:
> > > > >     type: object
> > > > >     $ref: graph.yaml#/properties/ports
> > > > >
> > > > >     properties:
> > > > >       port@0:
> > > > >         description: What data this port has
> > > > >
> > > > >       ...
> > > > >
> > > > > Or:
> > > > >
> > > > > properties:
> > > > >   port:
> > > > >     description: What data this port has
> > > > >     type: object
> > > > >     $ref: graph.yaml#/properties/port
> > > >
> > > > Sounds like a good approach.
> > > >
> > > > > Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> > > > > Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
> > > > > Signed-off-by: Rob Herring <robh@kernel.org>
> > > > > ---
> > > > > v3:
> > > > >  - Move port 'reg' to port@* and make required
> > > > >  - Make remote-endpoint required
> > > > >  - Add 'additionalProperties: true' now required
> > > > >  - Fix yamllint warnings
> > > > >
> > > > >  Documentation/devicetree/bindings/graph.txt  | 129 +-----------
> > > > >  Documentation/devicetree/bindings/graph.yaml | 199 +++++++++++++++++++
> > > > >  2 files changed, 200 insertions(+), 128 deletions(-)
> > > > >  create mode 100644 Documentation/devicetree/bindings/graph.yaml
> > >
> > > [...]
> > >
> > > > > diff --git a/Documentation/devicetree/bindings/graph.yaml b/Documentation/devicetree/bindings/graph.yaml
> > > > > new file mode 100644
> > > > > index 000000000000..b56720c5a13e
> > > > > --- /dev/null
> > > > > +++ b/Documentation/devicetree/bindings/graph.yaml
> > > > > @@ -0,0 +1,199 @@
> > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > > +%YAML 1.2
> > > > > +---
> > > > > +$id: http://devicetree.org/schemas/graph.yaml#
> > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > > +
> > > > > +title: Common bindings for device graphs
> > > > > +
> > > > > +description: |
> > > > > +  The hierarchical organisation of the device tree is well suited to describe
> > > > > +  control flow to devices, but there can be more complex connections between
> > > > > +  devices that work together to form a logical compound device, following an
> > > > > +  arbitrarily complex graph.
> > > > > +  There already is a simple directed graph between devices tree nodes using
> > > > > +  phandle properties pointing to other nodes to describe connections that
> > > > > +  can not be inferred from device tree parent-child relationships. The device
> > > > > +  tree graph bindings described herein abstract more complex devices that can
> > > > > +  have multiple specifiable ports, each of which can be linked to one or more
> > > > > +  ports of other devices.
> > > > > +
> > > > > +  These common bindings do not contain any information about the direction or
> > > > > +  type of the connections, they just map their existence. Specific properties
> > > > > +  may be described by specialized bindings depending on the type of connection.
> > > > > +
> > > > > +  To see how this binding applies to video pipelines, for example, see
> > > > > +  Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > > > +  Here the ports describe data interfaces, and the links between them are
> > > > > +  the connecting data buses. A single port with multiple connections can
> > > > > +  correspond to multiple devices being connected to the same physical bus.
> > > > > +
> > > > > +maintainers:
> > > > > +  - Philipp Zabel <p.zabel@pengutronix.de>
> > > > > +
> > > > > +select: false
> > > > > +
> > > > > +properties:
> > > > > +  port:
> > > > > +    type: object
> > > > > +    description:
> > > > > +      If there is more than one endpoint node or 'reg' property present in
> > > > > +      endpoint nodes then '#address-cells' and '#size-cells' properties are
> > > > > +      required.
> > > > > +
> > > > > +    properties:
> > > > > +      "#address-cells":
> > > > > +        const: 1
> > > > > +
> > > > > +      "#size-cells":
> > > > > +        const: 0
> > > > > +
> > > > > +    patternProperties:
> > > > > +      "^endpoint(@[0-9a-f]+)?$":
> > > > > +        type: object
> > > > > +        properties:
> > > > > +          reg:
> > > > > +            maxItems: 1
> > > > > +
> > > > > +          remote-endpoint:
> > > > > +            description: |
> > > > > +              phandle to an 'endpoint' subnode of a remote device node.
> > > > > +            $ref: /schemas/types.yaml#/definitions/phandle
> > > > > +
> > > > > +        required:
> > > > > +          - remote-endpoint
> > > >
> > > > As noted elsewhere, this shouldn't be required.
> > > >
> > > > Should we set additionalProperties: false here ?
> > >
> > > No, we've got a bunch of properties that get added to endpoint nodes.
> > > There's a few cases where 'port' nodes have properties too.
> >
> > I meant the port node, which I wasn't aware needed additional
> > properties. Do you have any example ? (I wonder if you will point me to
> > bindings that I have written ;-))
> 
> Not you, but Renesas. dual-lvds-{odd,even}-pixels was the only one I
> think. But really, I think we could actually drop those if the port
> numbering defines even/odd instead. There's a patch I just reviewed
> for common dual lane panels. See
> 1604993797-14240-1-git-send-email-victor.liu@nxp.com

We've discussed this before, see

Subject: Re: [PATCH v2 7/9] drm: rcar-du: lvds: Add dual-LVDS panels support
Message-ID: <20190815130834.GM5011@pendragon.ideasonboard.com>

"But what will then happen if you panel has more than two ports (for
audio for instance, or for other types of video links) ? It may not be
possible to always use port 0 and 1 for the LVDS even and odd pixels in
DT bindings of a particular panel or bridge."

-- 
Regards,

Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-11-12  7:56 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-02 20:36 [PATCH v3 0/3] dt-bindings: Convert graph bindings to json-schema Rob Herring
2020-11-02 20:36 ` Rob Herring
2020-11-02 20:36 ` [PATCH v3 1/3] " Rob Herring
2020-11-02 20:36   ` Rob Herring
2020-11-05 21:43   ` Sam Ravnborg
2020-11-05 21:43     ` Sam Ravnborg
2020-11-11  9:51   ` Sameer Pujar
2020-11-11  9:51     ` Sameer Pujar
2020-11-11 13:35     ` Rob Herring
2020-11-11 13:35       ` Rob Herring
2020-11-11 14:00   ` Laurent Pinchart
2020-11-11 14:00     ` Laurent Pinchart
2020-11-11 14:25     ` Rob Herring
2020-11-11 14:25       ` Rob Herring
2020-11-11 14:27       ` Laurent Pinchart
2020-11-11 14:27         ` Laurent Pinchart
2020-11-11 23:03         ` Rob Herring
2020-11-11 23:03           ` Rob Herring
2020-11-12  7:56           ` Laurent Pinchart [this message]
2020-11-12  7:56             ` Laurent Pinchart
2020-11-12 20:49   ` Rob Herring
2020-11-12 20:49     ` Rob Herring
2020-11-02 20:36 ` [PATCH v3 2/3] dt-bindings: usb-connector: Add reference to graph schema Rob Herring
2020-11-02 20:36   ` Rob Herring
2020-11-11 14:01   ` Laurent Pinchart
2020-11-11 14:01     ` Laurent Pinchart
2020-11-02 20:36 ` [PATCH v3 3/3] dt-bindings: panel: common: " Rob Herring
2020-11-02 20:36   ` Rob Herring
2020-11-05 21:46   ` Sam Ravnborg
2020-11-05 21:46     ` Sam Ravnborg
2020-11-11 14:02   ` Laurent Pinchart
2020-11-11 14:02     ` Laurent Pinchart
2020-11-03  6:05 ` [PATCH v3 0/3] dt-bindings: Convert graph bindings to json-schema Sameer Pujar
2020-11-03  6:05   ` Sameer Pujar

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=20201112075619.GA7931@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jacopo+renesas@jmondi.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=spujar@nvidia.com \
    --cc=thierry.reding@gmail.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.