Re: [PATCH v4 3/3] Documentation: of: Document graph bindings

From: Laurent Pinchart
Date: Sat Mar 08 2014 - 10:42:29 EST


Hi Grant,

On Saturday 08 March 2014 12:25:32 Grant Likely wrote:
> On Sat, 8 Mar 2014 11:35:38 +0200, Tomi Valkeinen wrote:
> > On 07/03/14 20:11, Grant Likely wrote:
> > >>> Any board not using that port can just leave the endpoint
> > >>> disconnected.
> > >>
> > >> Hmm I see. I'm against that.
> > >>
> > >> I think the SoC dtsi should not contain endpoint node, or even port
> > >> node (at least usually). It doesn't know how many endpoints, if any, a
> > >> particular board has. That part should be up to the board dts.
> > >
> > > Why? We have established precedence for unused devices still being in
> > > the tree. I really see no issue with it.
> >
> > I'm fine with having ports defined in the SoC dtsi. A port is a physical
> > thing, a group of pins, for example.
> >
> > But an endpoint is a description of the other end of a link. To me, a
> > single endpoint makes no sense, there has to be a pair of endpoints. The
> > board may need 0 to n endpoints, and the SoC dtsi cannot know how many
> > are needed.
> >
> > If the SoC dtsi defines a single endpoint for a port, and the board
> > needs to use two endpoints for that port, it gets really messy: one
> > endpoint is defined in the SoC dtsi, and used in the board dts. The
> > second endpoint for the same port needs to be defined separately in the
> > board file. I.e. something like:
>
> Sure. If endpoints are logical, then only create the ones actually hooked
> up. No problem there. But nor do I see any issue with having empty
> connections if the board author things it makes sense to have them in the
> dtsi.

I don't mind allowing board authors to add empty connections if they want to,
but I think it's a good practice not to include them given that endpoint are
logical. I would at least not include them in the of-graph DT bindings
examples.

> > /* the first ep */
> > &port1_ep {
> > remote-endpoint = <&..>;
> > };
> >
> > &port1 {
> > /* the second ep */
> > endpoint@2 {
> > remote-endpoint = <&..>;
> > };
> > };
> >
> > Versus:
> >
> > &port1 {
> > /* the first ep */
> > endpoint@1 {
> > remote-endpoint = <&..>;
> > };
> >
> > /* the second ep */
> > endpoint@2 {
> > remote-endpoint = <&..>;
> > };
> > };

--
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/