All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philipp Zabel <p.zabel@pengutronix.de>
To: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Paul Bolle <pebolle@tiscali.nl>, YT Shen <yt.shen@mediatek.com>,
	Jitao Shi <jitao.shi@mediatek.com>,
	Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Cawa Cheng <cawa.cheng@mediatek.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	linux-mediatek@lists.infradead.org,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	Kumar Gala <galak@codeaurora.org>,
	Matthias Brugger <matthias.bgg@gmail.com>
Subject: Re: [RFC v2 1/4] dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding
Date: Thu, 01 Oct 2015 10:59:10 +0200	[thread overview]
Message-ID: <1443689950.3272.17.camel@pengutronix.de> (raw)
In-Reply-To: <CAL_JsqKy6bE2LoiVtEydwtMygzH6Sj-KMiQJ-1AQ8_P8FRULQw@mail.gmail.com>

Am Mittwoch, den 30.09.2015, 11:57 -0500 schrieb Rob Herring:
> On Wed, Sep 30, 2015 at 10:30 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> > Am Freitag, den 18.09.2015, 15:33 -0500 schrieb Rob Herring:
> >> On Fri, Sep 18, 2015 at 11:11 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> >> > From: CK Hu <ck.hu@mediatek.com>
> >> >
> >> > Add device tree binding documentation for the display subsystem in
> >> > Mediatek MT8173 SoCs.
> >> >
> >> > Signed-off-by: CK Hu <ck.hu@mediatek.com>
> >> > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> >> > ---
> >> >  .../bindings/drm/mediatek/mediatek,disp.txt        | 131 +++++++++++++++++++++
> >> >  .../bindings/drm/mediatek/mediatek,dsi.txt         |  29 +++++
> >> >  2 files changed, 160 insertions(+)
> >> >  create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,disp.txt
> >> >  create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,dsi.txt
> >> >
> >> > diff --git a/Documentation/devicetree/bindings/drm/mediatek/mediatek,disp.txt b/Documentation/devicetree/bindings/drm/mediatek/mediatek,disp.txt
> >> > new file mode 100644
> >> > index 0000000..a3811bd
> >> > --- /dev/null
> >> > +++ b/Documentation/devicetree/bindings/drm/mediatek/mediatek,disp.txt
> >> > @@ -0,0 +1,131 @@
> >> > +Mediatek display subsystem
> >> > +==========================
> >> > +
> >> > +The Mediatek display subsystem consists of various DISP function blocks in the
> >> > +MMSYS register space. The connections between them can be configured by output
> >> > +and input selectors in the MMSYS_CONFIG register space and register updates can
> >> > +be synchronized to video frame boundaries with help of a DISP_MUTEX function
> >> > +block.
> >> > +
> >> > +The display-subsystem node binds together all individual device nodes that
> >> > +comprise the DISP subsystem.
> >> > +
> >> > +Required properties:
> >> > +
> >> > +- compatible: "mediatek,<chip>-disp"
> >>
> >> > +- components: Should contain a list of phandles pointing to the DISP function
> >> > +  block device nodes.
> >> > +- component-names: Should contain the name of the function block pointed to
> >> > +  by the components phandle of the same index.
> >>
> >> NAK. Group these nodes under a parent node, use of-graph or just don't
> >> put this into DT. Don't invent a new way.
> >
> > If I connect the DISP nodes using of-graph bindings, the full graph will
> > look somewhat like this (including the currently unused function blocks,
> > all properties but ports and endpoints removed for brevity):
> >
> >         ovl0@1400c000 {
> >                 port {
> >                         ovl0_to_color0: endpoint@0 {
> >                                 remote-endpoint = <&color0_from_ovl0>;
> >                         };
> >
> >                         ovl0_to_wdma0: endpoint@1 {
> >                                 remote-endpoint = <&wdma0_from_ovl0>;
> >                         };
> >                 };
> >         };
> >
> >         ovl1@1400d000 {
> >                 port {
> >                         ovl1_to_color1: endpoint@0 {
> >                                 remote-endpoint = <&color1_from_ovl1>;
> >                         };
> >
> >                         ovl1_to_wdma1: endpoint@1 {
> >                                 remote-endpoint = <&wdma1_from_ovl1>;
> >                         };
> >                 };
> >         };
> >
> >         rdma0@1400e000 {
> >                 port@0 {
> >                         rdma0_from_od: endpoint {
> >                                 remote-endpoint = <&od_to_rdma0>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         rdma0_to_ufoe: endpoint@0 {
> >                                 remote-endpoint = <&ufoe_from_rdma0>;
> >                         };
> >
> >                         rdma0_to_split0: endpoint@1 {
> >                                 remote-endpoint = <&split0_from_rdma0>;
> >                         };
> >
> >                         rdma0_to_color0: endpoint@2 {
> >                                 remote-endpoint = <&color0_from_rdma0>;
> >                         };
> >                 };
> >         };
> >
> >         rdma1@1400f000 {
> >                 port@0 {
> >                         rdma1_from_gamma: endpoint {
> >                                 remote-endpoint = <&gamma_to_rdma1>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         rdma1_to_dsi0: endpoint@0 {
> >                                 remote-endpoint = <&dsi0_from_rdma1>;
> >                         };
> >
> >                         rdma1_to_dsi1: endpoint@1 {
> >                                 remote-endpoint = <&dsi1_from_rdma1>;
> >                         };
> >
> >                         rdma1_to_dpi0: endpoint@2 {
> >                                 remote-endpoint = <&dpi0_from_rdma1>;
> >                         };
> >
> >                         rdma1_to_color1: endpoint@3 {
> >                                 remote-endpoint = <&color1_from_rdma1>;
> >                         };
> >                 };
> >         };
> >
> >         rdma2@14010000 {
> >                 port {
> >                         rdma2_to_dsi1: endpoint@0 {
> >                                 remote-endpoint = <&dsi1_from_rdma2>;
> >                         };
> >
> >                         rdma2_to_dpi0: endpoint@1 {
> >                                 remote-endpoint = <&dpi0_from_rdma2>;
> >                         };
> >                 };
> >         };
> >
> >         wdma0@14011000 {
> >                 port {
> >                         wdma0_from_ovl0: endpoint@0 {
> >                                 remote-endpoint = <&ovl0_to_wdma0>;
> >                         };
> >
> >                         wdma0_from_od: endpoint@1 {
> >                                 remote-endpoint = <&od_to_wdma0>;
> >                         };
> >
> >                         wdma0_from_ufoe: endpoint@2 {
> >                                 remote-endpoint = <&ufoe_to_wdma0>;
> >                         };
> >                 };
> >         };
> >
> >         wdma1@14012000 {
> >                 port {
> >                         wdma1_from_ovl1: endpoint@0 {
> >                                 remote-endpoint = <&ovl1_to_wdma1>;
> >                         };
> >
> >                         wdma1_from_gamma: endpoint@1 {
> >                                 remote-endpoint = <&gamma_to_wdma1>;
> >                         };
> >                 };
> >         };
> >
> >         color0@14013000 {
> >                 port@0 {
> >                         color0_from_rdma0: endpoint@0 {
> >                                 remote-endpoint = <&rdma0_to_color0>;
> >                         };
> >
> >                         color0_from_ovl0: endpoint@1 {
> >                                 remote-endpoint = <&ovl0_to_color0>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         color0_to_aal: endpoint@0 {
> >                                 remote-endpoint = <&aal_from_color0>;
> >                         };
> >
> >                         color0_to_merge: endpoint@1 {
> >                                 remote-endpoint = <&merge_from_color0>;
> >                         };
> >                 };
> >         };
> >
> >         color1@14014000 {
> >                 port@0 {
> >                         color1_from_rdma1: endpoint@0 {
> >                                 remote-endpoint = <&rdma1_to_color1>;
> >                         };
> >
> >                         color1_from_ovl1: endpoint@1 {
> >                                 remote-endpoint = <&ovl1_to_color1>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         color1_to_gamma: endpoint@0 {
> >                                 remote-endpoint = <&gamma_from_color1>;
> >                         };
> >
> >                         color1_to_merge: endpoint@1 {
> >                                 remote-endpoint = <&merge_from_color1>;
> >                         };
> >                 };
> >         };
> >
> >         aal@14015000 {
> >                 port@0 {
> >                         aal_from_color0: endpoint@0 {
> >                                 remote-endpoint = <&color0_to_aal>;
> >                         };
> >
> >                         aal_from_merge: endpoint@1 {
> >                                 remote-endpoint = <&merge_to_aal>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         aal_to_od: endpoint {
> >                                 remote-endpoint = <&od_from_aal>;
> >                         };
> >                 };
> >         };
> >
> >         gamma@14016000 {
> >                 port@0 {
> >                         gamma_from_color1: endpoint {
> >                                 remote-endpoint = <&color1_to_gamma>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         gamma_to_rdma1: endpoint@0 {
> >                                 remote-endpoint = <&rdma1_from_gamma>;
> >                         };
> >
> >                         gamma_to_dsi0: endpoint@1 {
> >                                 remote-endpoint = <&dsi0_from_gamma>;
> >                         };
> >
> >                         gamma_to_dsi1: endpoint@2 {
> >                                 remote-endpoint = <&dsi1_from_gamma>;
> >                         };
> >
> >                         gamma_to_dpi0: endpoint@3 {
> >                                 remote-endpoint = <&dpi0_from_gamma>;
> >                         };
> >
> >                         gamma_to_wdma1: endpoint@4 {
> >                                 remote-endpoint = <&wdma1_from_gamma>;
> >                         };
> >                 };
> >         };
> >
> >         merge@14017000 {
> >                 port@0 {
> >                         merge_from_color0: endpoint {
> >                                 remote-endpoint = <&color0_to_merge>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         merge_from_color1: endpoint {
> >                                 remote-endpoint = <&color1_to_merge>;
> >                         };
> >                 };
> >
> >                 port@2 {
> >                         merge_to_aal: endpoint {
> >                                 remote-endpoint = <&aal_from_merge>;
> >                         };
> >                 };
> >         };
> >
> >         split0@14018000 {
> >                 port@0 {
> >                         split0_from_rdma0: endpoint@0 {
> >                                 remote-endpoint = <&rdma0_to_split0>;
> >                         };
> >
> >                         split0_from_od: endpoint@1 {
> >                                 remote-endpoint = <&od_to_split0>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         split0_to_ufoe: endpoint {
> >                                 remote-endpoint = <&ufoe_from_split0>;
> >                         };
> >                 };
> >
> >                 port@2 {
> >                         split0_to_dsi0: endpoint@0 {
> >                                 remote-endpoint = <&dsi0_from_split0>;
> >                         };
> >
> >                         split0_to_dsi1: endpoint@1 {
> >                                 remote-endpoint = <&dsi1_from_split0>;
> >                         };
> >
> >                         split0_to_dpi0: endpoint@2 {
> >                                 remote-endpoint = <&dpi0_from_split0>;
> >                         };
> >                 };
> >         };
> >
> >         split1@14019000 {
> >                 port@0 {
> >                         split1_from_ufoe: endpoint {
> >                                 remote-endpoint = <&ufoe_to_split1>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         split1_to_dsi0: endpoint {
> >                                 remote-endpoint = <&dsi0_from_split1>;
> >                         };
> >                 };
> >
> >                 port@2 {
> >                         split1_to_dsi1: endpoint {
> >                                 remote-endpoint = <&dsi1_from_split1>;
> >                         };
> >                 };
> >         };
> >
> >         ufoe@1401a000 {
> >                 port@0 {
> >                         ufoe_from_rdma0: endpoint@0 {
> >                                 remote-endpoint = <&rdma0_to_ufoe>;
> >                         };
> >
> >                         ufoe_from_od: endpoint@1 {
> >                                 remote-endpoint = <&od_to_ufoe>;
> >                         };
> >
> >                         ufoe_from_split0: endpoint@2 {
> >                                 remote-endpoint = <&split0_to_ufoe>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         ufoe_to_dsi0: endpoint@0 {
> >                                 remote-endpoint = <&dsi0_from_ufoe>;
> >                         };
> >
> >                         ufoe_to_split1: endpoint@1 {
> >                                 remote-endpoint = <&split1_from_ufoe>;
> >                         };
> >
> >                         ufoe_to_dpi0: endpoint@2 {
> >                                 remote-endpoint = <&dpi0_from_ufoe>;
> >                         };
> >
> >                         ufoe_to_wdma0: endpoint@3 {
> >                                 remote-endpoint = <&wdma0_from_ufoe>;
> >                         };
> >
> >                         ufoe_to_dsi1: endpoint@4 {
> >                                 remote-endpoint = <&dsi1_from_ufoe>;
> >                         };
> >                 };
> >         };
> >
> >         dsi0: dsi0@1401b000 {
> >                 port@0 {
> >                         dsi0_from_ufoe: endpoint@0 {
> >                                 remote-endpoint = <&ufoe_to_dsi0>;
> >                         };
> >
> >                         dsi0_from_split1: endpoint@1 {
> >                                 remote-endpoint = <&split1_to_dsi0>;
> >                         };
> >
> >                         dsi0_from_rdma1: endpoint@2 {
> >                                 remote-endpoint = <&rdma1_to_dsi0>;
> >                         };
> >
> >                         dsi0_from_gamma: endpoint@3 {
> >                                 remote-endpoint = <&gamma_to_dsi0>;
> >                         };
> >
> >                         dsi0_from_split0: endpoint@4 {
> >                                 remote-endpoint = <&split0_to_dsi0>;
> >                         };
> >                 };
> >         };
> >
> >         dsi1: dsi1@1401c000 {
> >                 port@0 {
> >                         dsi1_from_split1: endpoint@0 {
> >                                 remote-endpoint = <&split1_to_dsi1>;
> >                         };
> >
> >                         dsi1_from_rdma1: endpoint@1 {
> >                                 remote-endpoint = <&rdma1_to_dsi1>;
> >                         };
> >
> >                         dsi1_from_gamma: endpoint@2 {
> >                                 remote-endpoint = <&gamma_to_dsi1>;
> >                         };
> >
> >                         dsi1_from_split0: endpoint@3 {
> >                                 remote-endpoint = <&split0_to_dsi1>;
> >                         };
> >
> >                         dsi1_from_rdma2: endpoint@4 {
> >                                 remote-endpoint = <&rdma2_to_dsi1>;
> >                         };
> >
> >                         dsi1_from_ufoe: endpoint@5 {
> >                                 remote-endpoint = <&ufoe_to_dsi1>;
> >                         };
> >                 };
> >         };
> >
> >         dpi0: dpi0@1401d000 {
> >                 port@0 {
> >                         dpi0_from_ufoe: endpoint@0 {
> >                                 remote-endpoint = <&ufoe_to_dpi0>;
> >                         };
> >
> >                         dpi0_from_rdma1: endpoint@1 {
> >                                 remote-endpoint = <&rdma1_to_dpi0>;
> >                         };
> >
> >                         dpi0_from_gamma: endpoint@2 {
> >                                 remote-endpoint = <&gamma_to_dpi0>;
> >                         };
> >
> >                         dpi0_from_split0: endpoint@3 {
> >                                 remote-endpoint = <&split0_to_dpi0>;
> >                         };
> >
> >                         dpi0_from_rdma2: endpoint@4 {
> >                                 remote-endpoint = <&rdma2_to_dpi0>;
> >                         };
> >                 };
> >         };
> >
> >         od@14023000 {
> >                 port@0 {
> >                         od_from_aal: endpoint {
> >                                 remote-endpoint = <&aal_to_od>;
> >                         };
> >                 };
> >
> >                 port@1 {
> >                         od_to_rdma0: endpoint@0 {
> >                                 remote-endpoint = <&rdma0_from_od>;
> >                         };
> >
> >                         od_to_ufoe: endpoint@1 {
> >                                 remote-endpoint = <&ufoe_from_od>;
> >                         };
> >
> >                         od_to_split0: endpoint@2 {
> >                                 remote-endpoint = <&split0_from_od>;
> >                         };
> >
> >                         od_to_wdma0: endpoint@3 {
> >                                 remote-endpoint = <&wdma0_from_od>;
> >                         };
> >                 };
> >         };
> >
> > Adding the graph to the mediatek oak-rev3 device tree increases the size
> > from currently 33 KiB to 41.5 KiB.
> > As a proponent of the of-graph bindings I certainly like to describe the
> > hardware connections using DT, but I'm not sure if maybe this is a bit
> > verbose.
> 
> We need a graph visualizer...

Yes :)

> I think there has to be a balance with how much is put into the DT. If
> the relationship between blocks is pretty fixed then it doesn't really
> help much to put all this into DT. If every SOC or board can have
> differing combinations of blocks or connections between blocks then
> the graph makes sense.

I expect the graph to be constant for a given SoC like MT8173.

regards
Philipp

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-10-01  8:59 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-18 16:11 [RFC v2 0/4] MT8173 DRM support Philipp Zabel
2015-09-18 16:11 ` [RFC v2 1/4] dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding Philipp Zabel
     [not found]   ` <1442592722-29004-2-git-send-email-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-09-18 20:33     ` Rob Herring
2015-09-21  8:11       ` Philipp Zabel
     [not found]         ` <1442823067.3277.35.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-09-30 17:13           ` Rob Herring
2015-10-01  8:59             ` Philipp Zabel
2015-10-01 12:58               ` Rob Herring
2015-10-01 14:29                 ` Daniel Kurtz
     [not found]                   ` <CAGS+omAs4Jvu7tKEMoNL9BSMQMwW=9UHzXW8_jS=5MbajaJzOg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-02  7:40                     ` Philipp Zabel
2015-10-02 13:47                       ` Daniel Kurtz
     [not found]                         ` <CAGS+omC3M71q8XMRevnM-_aocZXryK7NFDnVnJCdiG6tM-PjUQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-02 14:33                           ` Philipp Zabel
2015-10-23 12:29                   ` Rob Herring
     [not found]                 ` <CAL_Jsq+aBxjvPyAR3nUtXny6JwgcopSCENrBaGzo7OKXFA1cvg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-02  7:18                   ` Philipp Zabel
2015-10-02 14:24                     ` Rob Herring
     [not found]                       ` <CAL_JsqJhoysg=39gsArwmxf3xpzeXeHhxJ7THq4SbVc-NyertQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-02 14:51                         ` Philipp Zabel
2015-09-30 15:30       ` Philipp Zabel
2015-09-30 16:57         ` Rob Herring
2015-10-01  8:59           ` Philipp Zabel [this message]
2015-09-18 16:12 ` [RFC v2 2/4] drm/mediatek: Add DRM Driver for Mediatek SoC MT8173 Philipp Zabel
     [not found]   ` <1442592722-29004-3-git-send-email-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-09-22  9:38     ` Daniel Vetter
     [not found]       ` <20150922093842.GE3383-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2015-09-22 10:06         ` Philipp Zabel
2015-09-18 16:12 ` [RFC v2 3/4] drm/mediatek: Add DSI sub driver Philipp Zabel
2015-09-18 16:12 ` [RFC v2 4/4] drm/mediatek: Add DRM-based framebuffer device Philipp Zabel
2015-09-22  9:29   ` Daniel Vetter
     [not found]     ` <20150922092951.GD3383-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2015-09-22 10:35       ` Philipp Zabel

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=1443689950.3272.17.camel@pengutronix.de \
    --to=p.zabel@pengutronix.de \
    --cc=cawa.cheng@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jitao.shi@mediatek.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=pawel.moll@arm.com \
    --cc=pebolle@tiscali.nl \
    --cc=robh@kernel.org \
    --cc=yt.shen@mediatek.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.