diff mbox

[4/9] Doc/DT: Add DT binding documentation for HDMI Connector

Message ID 1393590016-9361-5-git-send-email-tomi.valkeinen@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tomi Valkeinen Feb. 28, 2014, 12:20 p.m. UTC
Add DT binding documentation for HDMI Connector.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit@ti.com>
---
 .../devicetree/bindings/video/hdmi-connector.txt   | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/video/hdmi-connector.txt

Comments

Russell King - ARM Linux Feb. 28, 2014, 4:06 p.m. UTC | #1
On Fri, Feb 28, 2014 at 02:20:11PM +0200, Tomi Valkeinen wrote:
> Add DT binding documentation for HDMI Connector.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Reviewed-by: Archit Taneja <archit@ti.com>
> ---
>  .../devicetree/bindings/video/hdmi-connector.txt   | 23 ++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/video/hdmi-connector.txt
> 
> diff --git a/Documentation/devicetree/bindings/video/hdmi-connector.txt b/Documentation/devicetree/bindings/video/hdmi-connector.txt
> new file mode 100644
> index 000000000000..5d25f6a432bb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/video/hdmi-connector.txt
> @@ -0,0 +1,23 @@
> +HDMI Connector
> +==============
> +
> +Required properties:
> +- compatible: "hdmi-connector"
> +
> +Optional properties:
> +- label: a symbolic name for the connector
> +
> +Required nodes:
> +- Video port for HDMI input
> +
> +Example
> +-------
> +
> +hdmi0: connector@1 {
> +	compatible = "hdmi-connector";
> +	label = "hdmi";
> +
> +	hdmi_connector_in: endpoint {
> +		remote-endpoint = <&tpd12s015_out>;
> +	};
> +};

It seems rather weird to have DVI connectors having an optional I2C
property, but HDMI (which augments DVI) not having that as at least an
optional property.

I can quite well see the iMX HDMI support needing an i2c bus here.

Also, HDMI has two connector standards - type A and type B, much like
the single vs dual link of DVI.  Again, DRM exposes this to userspace.
Tomi Valkeinen Feb. 28, 2014, 4:15 p.m. UTC | #2
On 28/02/14 18:06, Russell King - ARM Linux wrote:

>> +hdmi0: connector@1 {
>> +	compatible = "hdmi-connector";
>> +	label = "hdmi";
>> +
>> +	hdmi_connector_in: endpoint {
>> +		remote-endpoint = <&tpd12s015_out>;
>> +	};
>> +};
> 
> It seems rather weird to have DVI connectors having an optional I2C
> property, but HDMI (which augments DVI) not having that as at least an
> optional property.

I have added only the properties that I have used. I did think about the
i2c for HDMI also, but thought that I don't use it, and so can't test
it, and so I could well create a bad binding.

And, as I don't see any issue in adding it later, when someone uses it,
I decided to leave it out.

> I can quite well see the iMX HDMI support needing an i2c bus here.
> 
> Also, HDMI has two connector standards - type A and type B, much like
> the single vs dual link of DVI.  Again, DRM exposes this to userspace.

True, but isn't that just a form factor? No functional differences? But
I agree, we can add the two types here also to the compatible string.

 Tomi
Russell King - ARM Linux Feb. 28, 2014, 4:34 p.m. UTC | #3
On Fri, Feb 28, 2014 at 06:15:05PM +0200, Tomi Valkeinen wrote:
> On 28/02/14 18:06, Russell King - ARM Linux wrote:
> 
> >> +hdmi0: connector@1 {
> >> +	compatible = "hdmi-connector";
> >> +	label = "hdmi";
> >> +
> >> +	hdmi_connector_in: endpoint {
> >> +		remote-endpoint = <&tpd12s015_out>;
> >> +	};
> >> +};
> > 
> > It seems rather weird to have DVI connectors having an optional I2C
> > property, but HDMI (which augments DVI) not having that as at least an
> > optional property.
> 
> I have added only the properties that I have used. I did think about the
> i2c for HDMI also, but thought that I don't use it, and so can't test
> it, and so I could well create a bad binding.
> 
> And, as I don't see any issue in adding it later, when someone uses it,
> I decided to leave it out.
> 
> > I can quite well see the iMX HDMI support needing an i2c bus here.
> > 
> > Also, HDMI has two connector standards - type A and type B, much like
> > the single vs dual link of DVI.  Again, DRM exposes this to userspace.
> 
> True, but isn't that just a form factor? No functional differences? But
> I agree, we can add the two types here also to the compatible string.

HDMI A is 19 pins carrying TMDS channels 0-2.  HDMI B is 29 pins
carrying TMDS channels 0-5.  So, the difference is the same as the
single vs dual link on DVI-D/I connectors.

There's actually three HDMI connectors:

  All three connectors carry all required HDMI signals, including a TMDS
  link. The Type B connector is slightly larger and carries a second TMDS
  link, which is necessary to support very high resolution displays using
  dual link. The Type C connector carries the same signals as the Type A
  but is more compact and intended for mobile applications.

So, Type C and Type A are electrically the same.
Geert Uytterhoeven March 1, 2014, 6:58 p.m. UTC | #4
On Fri, Feb 28, 2014 at 5:34 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> There's actually three HDMI connectors:
>
>   All three connectors carry all required HDMI signals, including a TMDS
>   link. The Type B connector is slightly larger and carries a second TMDS
>   link, which is necessary to support very high resolution displays using
>   dual link. The Type C connector carries the same signals as the Type A
>   but is more compact and intended for mobile applications.
>
> So, Type C and Type A are electrically the same.

There's also D (e.g. on BeagleBone Black) and E:

http://en.wikipedia.org/wiki/HDMI#Connectors

Electrically they seem to be the same as A/C.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Tomi Valkeinen March 3, 2014, 7:23 a.m. UTC | #5
On 01/03/14 20:58, Geert Uytterhoeven wrote:
> On Fri, Feb 28, 2014 at 5:34 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
>> There's actually three HDMI connectors:
>>
>>   All three connectors carry all required HDMI signals, including a TMDS
>>   link. The Type B connector is slightly larger and carries a second TMDS
>>   link, which is necessary to support very high resolution displays using
>>   dual link. The Type C connector carries the same signals as the Type A
>>   but is more compact and intended for mobile applications.
>>
>> So, Type C and Type A are electrically the same.
> 
> There's also D (e.g. on BeagleBone Black) and E:
> 
> http://en.wikipedia.org/wiki/HDMI#Connectors
> 
> Electrically they seem to be the same as A/C.

Right. And then there are the HDMI versions, and things like HDMI
Ethernet Channel. After looking at these a bit, I don't think the HDMI
connector needs any of those (hdmi version, eth) defined.

So...

	compatible = "hdmi-connector";
	type = "a";

Or

	compatible = "hdmi-connector";
	type-a;

I don't right away see any big pro with either one compared to the other.

 Tomi
Daniel Vetter March 4, 2014, 12:59 p.m. UTC | #6
On Fri, Feb 28, 2014 at 04:06:12PM +0000, Russell King - ARM Linux wrote:
> On Fri, Feb 28, 2014 at 02:20:11PM +0200, Tomi Valkeinen wrote:
> > Add DT binding documentation for HDMI Connector.
> > 
> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > Reviewed-by: Archit Taneja <archit@ti.com>
> > ---
> >  .../devicetree/bindings/video/hdmi-connector.txt   | 23 ++++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/video/hdmi-connector.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/video/hdmi-connector.txt b/Documentation/devicetree/bindings/video/hdmi-connector.txt
> > new file mode 100644
> > index 000000000000..5d25f6a432bb
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/video/hdmi-connector.txt
> > @@ -0,0 +1,23 @@
> > +HDMI Connector
> > +==============
> > +
> > +Required properties:
> > +- compatible: "hdmi-connector"
> > +
> > +Optional properties:
> > +- label: a symbolic name for the connector
> > +
> > +Required nodes:
> > +- Video port for HDMI input
> > +
> > +Example
> > +-------
> > +
> > +hdmi0: connector@1 {
> > +	compatible = "hdmi-connector";
> > +	label = "hdmi";
> > +
> > +	hdmi_connector_in: endpoint {
> > +		remote-endpoint = <&tpd12s015_out>;
> > +	};
> > +};
> 
> It seems rather weird to have DVI connectors having an optional I2C
> property, but HDMI (which augments DVI) not having that as at least an
> optional property.
> 
> I can quite well see the iMX HDMI support needing an i2c bus here.
> 
> Also, HDMI has two connector standards - type A and type B, much like
> the single vs dual link of DVI.  Again, DRM exposes this to userspace.

Yeah, there's a dual-link hdmi standard somewhere. I've never seen it in
the wild anywhere though, and newer hdmi all just increase the max link
clock to push higher res modes over the wire. Imo can't hurt to just
enumerate all type of physical connectors standardized.

HDMI revisions themselves are only relevant for the sink (as advertised
capabilities in the EDID) and for your hdmi encoder chip (where pretty
much just the max dotclock is interesting really). So I don't think we
need a hdmi revision in dt for the physical connector.
-Daniel
Tomi Valkeinen March 5, 2014, 8:42 a.m. UTC | #7
On 01/03/14 20:58, Geert Uytterhoeven wrote:
> On Fri, Feb 28, 2014 at 5:34 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
>> There's actually three HDMI connectors:
>>
>>   All three connectors carry all required HDMI signals, including a TMDS
>>   link. The Type B connector is slightly larger and carries a second TMDS
>>   link, which is necessary to support very high resolution displays using
>>   dual link. The Type C connector carries the same signals as the Type A
>>   but is more compact and intended for mobile applications.
>>
>> So, Type C and Type A are electrically the same.
> 
> There's also D (e.g. on BeagleBone Black) and E:
> 
> http://en.wikipedia.org/wiki/HDMI#Connectors
> 
> Electrically they seem to be the same as A/C.

I made the following change compared to the posted version.

 Tomi

@@ -3,6 +3,7 @@ HDMI Connector

 Required properties:
 - compatible: "hdmi-connector"
+- type: the HDMI connector type: "a", "b", "c", "d" or "e"

 Optional properties:
 - label: a symbolic name for the connector
@@ -17,6 +18,8 @@ hdmi0: connector@1 {
        compatible = "hdmi-connector";
        label = "hdmi";

+       type = "a";
+
        hdmi_connector_in: endpoint {
                remote-endpoint = <&tpd12s015_out>;
        };
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/video/hdmi-connector.txt b/Documentation/devicetree/bindings/video/hdmi-connector.txt
new file mode 100644
index 000000000000..5d25f6a432bb
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/hdmi-connector.txt
@@ -0,0 +1,23 @@ 
+HDMI Connector
+==============
+
+Required properties:
+- compatible: "hdmi-connector"
+
+Optional properties:
+- label: a symbolic name for the connector
+
+Required nodes:
+- Video port for HDMI input
+
+Example
+-------
+
+hdmi0: connector@1 {
+	compatible = "hdmi-connector";
+	label = "hdmi";
+
+	hdmi_connector_in: endpoint {
+		remote-endpoint = <&tpd12s015_out>;
+	};
+};