diff mbox

[01/10] dt-bindings: display: xlnx: Add Xilinx kms bindings

Message ID 1515117959-18068-2-git-send-email-hyun.kwon@xilinx.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hyun Kwon Jan. 5, 2018, 2:05 a.m. UTC
The dt binding for Xilinx DRM KMS driver.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
---
 .../devicetree/bindings/display/xlnx/xlnx,kms.txt    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

Comments

Rob Herring Jan. 9, 2018, 4 a.m. UTC | #1
On Thu, Jan 04, 2018 at 06:05:50PM -0800, Hyun Kwon wrote:
> The dt binding for Xilinx DRM KMS driver.

Bindings are for h/w, not drivers.

> 
> Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
> ---
>  .../devicetree/bindings/display/xlnx/xlnx,kms.txt    | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
> 
> diff --git a/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
> new file mode 100644
> index 0000000..8dcd552
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
> @@ -0,0 +1,20 @@
> +Xilinx KMS Pipeline
> +-------------------
> +
> +Xilinx display pipelines can be designed with hardened video IPs and soft video
> +IPs in programmable logic. This KMS module provides the common functionality
> +of individual subdevice drivers, and glue logics between them.
> +
> +Required properties:
> +
> +- compatible: Must be "xlnx,kms".
> +
> +- ports: phandles for CRTC ports, using the DT bindings defined in
> +  Documentation/devicetree/bindings/graph.txt.

This use of ports is not part of the graph binding.

> +
> +Example:
> +
> +	xlnx_drm: xlnx_drm {
> +		compatible = "xlnx,kms";

drm and kms are Linuxisms.

Why do you need this node?

> +		ports = <&crtc_port>;
> +	};
> -- 
> 2.7.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hyun Kwon Jan. 11, 2018, 2:04 a.m. UTC | #2
Hi Rob,

Thanks for the feedback.

> -----Original Message-----

> From: Rob Herring [mailto:robh@kernel.org]

> Sent: Monday, January 08, 2018 8:00 PM

> To: Hyun Kwon <hyunk@xilinx.com>

> Cc: dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org; Michal

> Simek <michal.simek@xilinx.com>

> Subject: Re: [PATCH 01/10] dt-bindings: display: xlnx: Add Xilinx kms

> bindings

> 

> On Thu, Jan 04, 2018 at 06:05:50PM -0800, Hyun Kwon wrote:

> > The dt binding for Xilinx DRM KMS driver.

> 

> Bindings are for h/w, not drivers.


I'll rephrase this.

> 

> >

> > Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>

> > ---

> >  .../devicetree/bindings/display/xlnx/xlnx,kms.txt    | 20

> ++++++++++++++++++++

> >  1 file changed, 20 insertions(+)

> >  create mode 100644

> Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> >

> > diff --git a/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> > new file mode 100644

> > index 0000000..8dcd552

> > --- /dev/null

> > +++ b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> > @@ -0,0 +1,20 @@

> > +Xilinx KMS Pipeline

> > +-------------------

> > +

> > +Xilinx display pipelines can be designed with hardened video IPs and soft

> video

> > +IPs in programmable logic. This KMS module provides the common

> functionality

> > +of individual subdevice drivers, and glue logics between them.

> > +

> > +Required properties:

> > +

> > +- compatible: Must be "xlnx,kms".


I'll also rephrase the description and rename this to xlnx,display.

> > +

> > +- ports: phandles for CRTC ports, using the DT bindings defined in

> > +  Documentation/devicetree/bindings/graph.txt.

> 

> This use of ports is not part of the graph binding.


I'll add more details in the description.

> 

> > +

> > +Example:

> > +

> > +	xlnx_drm: xlnx_drm {

> > +		compatible = "xlnx,kms";

> 

> drm and kms are Linuxisms.


I agree. I'll remove linux subsystem specific terms.

> 

> Why do you need this node?


This node is used to represent a display pipeline as a single entity, which can consist of multiple components / IPs. I'll elaborate more per your suggestion.

Thanks,
-hyun

> 

> > +		ports = <&crtc_port>;

> > +	};

> > --

> > 2.7.4

> >

> > --

> > To unsubscribe from this list: send the line "unsubscribe devicetree" in

> > the body of a message to majordomo@vger.kernel.org

> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Jan. 11, 2018, 2:43 p.m. UTC | #3
On Wed, Jan 10, 2018 at 8:04 PM, Hyun Kwon <hyunk@xilinx.com> wrote:
> Hi Rob,
>
> Thanks for the feedback.
>
>> -----Original Message-----
>> From: Rob Herring [mailto:robh@kernel.org]
>> Sent: Monday, January 08, 2018 8:00 PM
>> To: Hyun Kwon <hyunk@xilinx.com>
>> Cc: dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org; Michal
>> Simek <michal.simek@xilinx.com>
>> Subject: Re: [PATCH 01/10] dt-bindings: display: xlnx: Add Xilinx kms
>> bindings
>>
>> On Thu, Jan 04, 2018 at 06:05:50PM -0800, Hyun Kwon wrote:
>> > The dt binding for Xilinx DRM KMS driver.
>>
>> Bindings are for h/w, not drivers.
>
> I'll rephrase this.
>
>>
>> >
>> > Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
>> > ---
>> >  .../devicetree/bindings/display/xlnx/xlnx,kms.txt    | 20
>> ++++++++++++++++++++
>> >  1 file changed, 20 insertions(+)
>> >  create mode 100644
>> Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
>> >
>> > diff --git a/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
>> b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
>> > new file mode 100644
>> > index 0000000..8dcd552
>> > --- /dev/null
>> > +++ b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
>> > @@ -0,0 +1,20 @@
>> > +Xilinx KMS Pipeline
>> > +-------------------
>> > +
>> > +Xilinx display pipelines can be designed with hardened video IPs and soft
>> video
>> > +IPs in programmable logic. This KMS module provides the common
>> functionality
>> > +of individual subdevice drivers, and glue logics between them.
>> > +
>> > +Required properties:
>> > +
>> > +- compatible: Must be "xlnx,kms".
>
> I'll also rephrase the description and rename this to xlnx,display.
>
>> > +
>> > +- ports: phandles for CRTC ports, using the DT bindings defined in
>> > +  Documentation/devicetree/bindings/graph.txt.
>>
>> This use of ports is not part of the graph binding.
>
> I'll add more details in the description.
>
>>
>> > +
>> > +Example:
>> > +
>> > +   xlnx_drm: xlnx_drm {
>> > +           compatible = "xlnx,kms";
>>
>> drm and kms are Linuxisms.
>
> I agree. I'll remove linux subsystem specific terms.
>
>>
>> Why do you need this node?
>
> This node is used to represent a display pipeline as a single entity, which can consist of multiple components / IPs. I'll elaborate more per your suggestion.

You generally don't need that. Just have the DRM driver match with the
first block in the display pipeline. Then use the OF graph to connect
to the other components in the pipeline. It would help to have a block
diagram showing the data pipelines and h/w blocks.

Rob
Hyun Kwon Jan. 11, 2018, 7:22 p.m. UTC | #4
Hi Rob,

> -----Original Message-----

> From: Rob Herring [mailto:robh@kernel.org]

> Sent: Thursday, January 11, 2018 6:43 AM

> To: Hyun Kwon <hyunk@xilinx.com>

> Cc: dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org; Michal

> Simek <michal.simek@xilinx.com>

> Subject: Re: [PATCH 01/10] dt-bindings: display: xlnx: Add Xilinx kms

> bindings

> 

> On Wed, Jan 10, 2018 at 8:04 PM, Hyun Kwon <hyunk@xilinx.com> wrote:

> > Hi Rob,

> >

> > Thanks for the feedback.

> >

> >> -----Original Message-----

> >> From: Rob Herring [mailto:robh@kernel.org]

> >> Sent: Monday, January 08, 2018 8:00 PM

> >> To: Hyun Kwon <hyunk@xilinx.com>

> >> Cc: dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org; Michal

> >> Simek <michal.simek@xilinx.com>

> >> Subject: Re: [PATCH 01/10] dt-bindings: display: xlnx: Add Xilinx kms

> >> bindings

> >>

> >> On Thu, Jan 04, 2018 at 06:05:50PM -0800, Hyun Kwon wrote:

> >> > The dt binding for Xilinx DRM KMS driver.

> >>

> >> Bindings are for h/w, not drivers.

> >

> > I'll rephrase this.

> >

> >>

> >> >

> >> > Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>

> >> > ---

> >> >  .../devicetree/bindings/display/xlnx/xlnx,kms.txt    | 20

> >> ++++++++++++++++++++

> >> >  1 file changed, 20 insertions(+)

> >> >  create mode 100644

> >> Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> >> >

> >> > diff --git

> a/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> >> b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> >> > new file mode 100644

> >> > index 0000000..8dcd552

> >> > --- /dev/null

> >> > +++ b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt

> >> > @@ -0,0 +1,20 @@

> >> > +Xilinx KMS Pipeline

> >> > +-------------------

> >> > +

> >> > +Xilinx display pipelines can be designed with hardened video IPs and

> soft

> >> video

> >> > +IPs in programmable logic. This KMS module provides the common

> >> functionality

> >> > +of individual subdevice drivers, and glue logics between them.

> >> > +

> >> > +Required properties:

> >> > +

> >> > +- compatible: Must be "xlnx,kms".

> >

> > I'll also rephrase the description and rename this to xlnx,display.

> >

> >> > +

> >> > +- ports: phandles for CRTC ports, using the DT bindings defined in

> >> > +  Documentation/devicetree/bindings/graph.txt.

> >>

> >> This use of ports is not part of the graph binding.

> >

> > I'll add more details in the description.

> >

> >>

> >> > +

> >> > +Example:

> >> > +

> >> > +   xlnx_drm: xlnx_drm {

> >> > +           compatible = "xlnx,kms";

> >>

> >> drm and kms are Linuxisms.

> >

> > I agree. I'll remove linux subsystem specific terms.

> >

> >>

> >> Why do you need this node?

> >

> > This node is used to represent a display pipeline as a single entity, which

> can consist of multiple components / IPs. I'll elaborate more per your

> suggestion.

> 

> You generally don't need that. Just have the DRM driver match with the

> first block in the display pipeline. Then use the OF graph to connect

> to the other components in the pipeline. It would help to have a block

> diagram showing the data pipelines and h/w blocks.

> 


Some examples are as following. In simple case, a pipeline is linear with multiple blocks:

ZynqMP DisplayPort pipeline:

	ZynqMP DMA -> ZynqMP Display controller -> ZynqMP DP encoder

FPGA display pipeline where each block comes as a separate device:

	FPGA DMA -> FPGA mixer -> FPGA HDMI encoder

It gets more interesting as those can be mixed:

	ZynqMP DMA -> ZynqMP Display controller -> ZynqMP DP encoder
		            |
	FPAG DMA ->
or

	ZynqMP DMA -> ZynqMP Display controller -> ZynqMP DP encoder
						         |
						         -> FPGA HDMI encoder
		            
Or even,

			ZynqMP DMA -> ZynqMP Display controller -> ZynqMP DP encoder
				            |			          |
	FPAG DMA -> FPGA mixer ->				          -> FPGA HDMI encoder

This node is representation of such variations as a single pipeline device.

Thanks,
-hyun

> Rob
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
new file mode 100644
index 0000000..8dcd552
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/xlnx/xlnx,kms.txt
@@ -0,0 +1,20 @@ 
+Xilinx KMS Pipeline
+-------------------
+
+Xilinx display pipelines can be designed with hardened video IPs and soft video
+IPs in programmable logic. This KMS module provides the common functionality
+of individual subdevice drivers, and glue logics between them.
+
+Required properties:
+
+- compatible: Must be "xlnx,kms".
+
+- ports: phandles for CRTC ports, using the DT bindings defined in
+  Documentation/devicetree/bindings/graph.txt.
+
+Example:
+
+	xlnx_drm: xlnx_drm {
+		compatible = "xlnx,kms";
+		ports = <&crtc_port>;
+	};