devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Tomi Valkeinen <tomi.valkeinen-l0cyMroinI0@public.gmane.org>
Cc: Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Cyprian Wronka <cwronka-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	Ian Campbell
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	Simon Hatliff <hatliff-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	Alan Douglas <adouglas-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Richard Sproul <sproul-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>,
	Neil Webb <neilw-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [PATCH v2 2/2] dt-bindings: drm/bridge: Document Cadence DSI bridge bindings
Date: Tue, 6 Jun 2017 14:48:10 +0200	[thread overview]
Message-ID: <20170606144810.1efa0c79@bbrezillon> (raw)
In-Reply-To: <902ba6cf-4125-fac6-62dd-6b6198f541f3-l0cyMroinI0@public.gmane.org>

On Tue, 6 Jun 2017 15:40:25 +0300
Tomi Valkeinen <tomi.valkeinen-l0cyMroinI0@public.gmane.org> wrote:

> On 06/06/17 12:35, Boris Brezillon wrote:
> > On Sat, 3 Jun 2017 23:43:17 +0530
> > Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> wrote:
> >   
> >> Hi,
> >>
> >> On 06/02/2017 05:34 PM, Boris Brezillon wrote:  
> >>> Document the bindings used for the Cadence DSI bridge.
> >>>
> >>> Signed-off-by: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
> >>> ---
> >>>  .../bindings/display/bridge/cdns,dsi.txt           | 55 ++++++++++++++++++++++
> >>>  1 file changed, 55 insertions(+)
> >>>  create mode 100644 Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt b/Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt
> >>> new file mode 100644
> >>> index 000000000000..770c5c5b1e93
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt
> >>> @@ -0,0 +1,55 @@
> >>> +Cadence DSI bridge
> >>> +==================
> >>> +
> >>> +The Cadence DSI bridge is a DPI to DSI bridge supporting up to 4 DSI lanes.    
> >>
> >> Is this a separate chip, or an IP integrated into SoCs?  
> > 
> > It's supposed to be integrated into SoCs.
> >   
> >> If it's the 
> >> latter, I don't think DPI on the its input side is the right term to 
> >> use. Maybe RGB would be more appropriate here.  
> > 
> > Well, the datasheet explicitly mentions DPI, and you can also send
> > pixels in YUV422 and YUV420 format on this bus, so I don't think RGB is
> > appropriate, but if you really want me to use RGB I can change that.
> > 
> > BTW, can you detail why DPI is not appropriate for internal parallel
> > busses. I don't understand why it makes a difference when the bus is exposed
> > through external pins.  
> 
> I think MIPI DPI is fine, if it is indeed MIPI DPI. But mot all parallel
> video busses are MIPI DPI.
> 
> >>> +Required subnodes:
> >>> +- ports: Ports as described in Documentation/devicetree/bindings/graph.txt.
> >>> +  Currently contains a single input port at address 0 representing the DPI
> >>> +  input. Other ports will be added later to support the SDI inputs.
> >>> +  Port 0 should be connected to a DPI encoder output.    
> >>
> >> The output of the DSI bridge may be another bridge, which could be i2c
> >> controlled. In that case, it won't be a child of the DSI bridge. For
> >> such scenarios, we might want to define an output port for the bridge.  
> > 
> > Hm, okay. IIRC, this is something you mentioned when I asked how to
> > describe input/output ports for a DSI bridge a while ago.
> > 
> > I'm still not sure how the links between input and output endpoint are
> > supposed to be described.
> > 
> > For example, if you take the case where you have the DSI device
> > directly described under the DSI host controller, should I create
> > another node for this output port? Something like the following?
> > 
> > 	dsi@xxx {
> > 		#address-cells = <1>;
> > 		#size-cells = <0>;
> > 
> > 		ports {
> > 			#address-cells = <1>;
> > 			#size-cells = <0>;
> > 			dpi_in: port@0 {
> > 				reg = <0>;
> > 				#address-cells = <1>;
> > 				#size-cells = <0>;
> > 
> > 				endpoint@0 {
> > 					remote-endpoint = <&dpi_out>;
> > 				};
> > 			};
> > 
> > 			dsi_out0: port@1 {
> > 				reg = <1>;
> > 				#address-cells = <1>;
> > 				#size-cells = <0>;
> > 
> > 				dsi_out0: endpoint@0 {
> > 					remote-endpoint = <&dsi_panel0_in>;
> > 				};
> > 			};
> > 
> > 			dsi_out0: port@2 {
> > 				reg = <2>;
> > 				#address-cells = <1>;
> > 				#size-cells = <0>;
> > 
> > 				dsi_out1: endpoint@0 {
> > 					remote-endpoint = <&dsi_panel1_in>;
> > 				};
> > 			};
> > 		};
> > 
> > 		panel@0 {
> > 			compatible = "...";
> > 			reg = <0>;
> > 			#address-cells = <1>;
> > 			#size-cells = <0>;
> > 
> > 			port@0 {
> > 				#address-cells = <1>;
> > 		                #size-cells = <0>;
> > 				reg = <0>;
> > 
> > 				dsi_panel0_in: endpoint@0 {
> > 					remote-endpoint = <&dsi_out0>;
> > 				};
> > 			};
> > 		};
> > 
> > 		panel@1 {
> > 			compatible = "...";
> > 			reg = <1>;
> > 			#address-cells = <1>;
> > 			#size-cells = <0>;
> > 
> > 			port@0 {
> > 				#address-cells = <1>;
> > 		                #size-cells = <0>;
> > 				reg = <0>;
> > 
> > 				dsi_panel1_in: endpoint@0 {
> > 					remote-endpoint = <&dsi_out1>;
> > 				};
> > 			};
> > 		};
> > 	};
> >   
> 
> The ports & endpoints describe the video path, and the node child-parent
> relationship describe the control path. And "port" is a physical
> connector of some sort, and endpoint is a virtual channel or such.
> 
> So, you can have DSI peripherals which are either children of the DSI
> bridge, and can be controlled with DSI commands. Or, you can have, say,
> i2c peripherals, defined under an i2c node, which just take the video
> stream from the DSI bridge. Both would have similar ports & endpoints,
> but the DT nodes would be located under different parents.
> 
> Also, you can't have two output ports unless the DSI bridge has actually
> multiple output pins. If the two panels are connected to the same DSI
> pins, and the DSI virtual channel is used to direct the output to the
> correct panel, then these should be endpoints.

Okay. Thanks for the clarification. Can you confirm that this version
is correct?

 	dsi@xxx {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
			dpi_in: port@0 {
 				reg = <0>;
 				#address-cells = <1>;
 				#size-cells = <0>;
 
 				endpoint@0 {
 					remote-endpoint = <&dpi_out>;
 				};
 			};
 
 			dsi_out: port@1 {
 				reg = <1>;
				#address-cells = <1>;
 				#size-cells = <0>;
 
 				dsi_out_vc0: endpoint@0 {
					reg = <0>;
 					remote-endpoint = <&dsi_panel0_in>;
				};

 				dsi_out_vc1: endpoint@1 {
					reg = <1>;
 					remote-endpoint = <&dsi_panel1_in>;
 				};
 			};
 		};
 
 		panel@0 {
 			compatible = "...";
 			reg = <0>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 
 			port@0 {
 				#address-cells = <1>;
 		                #size-cells = <0>;
 				reg = <0>;
 
 				dsi_panel0_in: endpoint@0 {
					reg = <0>;
 					remote-endpoint = <&dsi_out_vc0>;
 				};
 			};
 		};
 
 		panel@1 {
 			compatible = "...";
 			reg = <1>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 
 			port@0 {
 				#address-cells = <1>;
 		                #size-cells = <0>;
 				reg = <0>;
 
 				dsi_panel1_in: endpoint@0 {
					reg = <0>;
 					remote-endpoint = <&dsi_out_vc1>;
 				};
 			};
 		};
 	};
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-06-06 12:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-02 12:04 [PATCH v2 1/2] drm/bridge: Add Cadence DSI driver Boris Brezillon
     [not found] ` <1496405096-18275-1-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2017-06-02 12:04   ` [PATCH v2 2/2] dt-bindings: drm/bridge: Document Cadence DSI bridge bindings Boris Brezillon
2017-06-03 18:13     ` Archit Taneja
2017-06-06  9:35       ` Boris Brezillon
2017-06-06 12:40         ` Tomi Valkeinen
     [not found]           ` <902ba6cf-4125-fac6-62dd-6b6198f541f3-l0cyMroinI0@public.gmane.org>
2017-06-06 12:48             ` Boris Brezillon [this message]
2017-06-06 12:58               ` Tomi Valkeinen
     [not found]                 ` <9ca829e6-4696-7c3a-aed3-6a2af3161557-l0cyMroinI0@public.gmane.org>
2017-06-13  9:02                   ` Andrzej Hajda
     [not found]                     ` <cb4c3bc1-5c61-25dd-a229-64753de68af4-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2017-06-19 10:12                       ` Boris Brezillon
2017-06-20  6:56                         ` Archit Taneja
     [not found]                           ` <44b693f5-152e-cb0c-4a99-c8d1b0d8e3d9-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-06-20  7:22                             ` Andrzej Hajda
2017-06-14  3:44                 ` Archit Taneja
     [not found]     ` <1496405096-18275-2-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2017-06-06 12:30       ` Tomi Valkeinen
     [not found]         ` <62284d00-c204-dc2e-a780-0357b2094b62-l0cyMroinI0@public.gmane.org>
2017-06-06 12:37           ` Boris Brezillon
2017-06-06 13:01             ` Tomi Valkeinen
     [not found]               ` <99525652-0270-4eb0-73bc-c65ac51bc39e-l0cyMroinI0@public.gmane.org>
2017-06-06 13:06                 ` Boris Brezillon
2017-06-03 18:50   ` [PATCH v2 1/2] drm/bridge: Add Cadence DSI driver Archit Taneja
     [not found]     ` <29776d56-b6ae-9f92-0b94-8c55b46169fd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-06-06 10:20       ` Boris Brezillon
2017-06-14  4:02         ` Archit Taneja
2017-06-06 13:30   ` Tomi Valkeinen
2017-06-06 14:08     ` Boris Brezillon

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=20170606144810.1efa0c79@bbrezillon \
    --to=boris.brezillon-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
    --cc=adouglas-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
    --cc=architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=cwronka-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=hatliff-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=neilw-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=sproul-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
    --cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=tomi.valkeinen-l0cyMroinI0@public.gmane.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).