
Add DocBook documentation for the CEC API. Signed-off-by: Hans Verkuil <hansverk@cisco.com> [k.debski@samsung.com: add documentation for passthrough mode] [k.debski@samsung.com: minor fixes and change of reserved field sizes] Signed-off-by: Kamil Debski <kamil@wypas.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
76 lines
2.7 KiB
XML
76 lines
2.7 KiB
XML
<partinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Hans</firstname>
|
|
<surname>Verkuil</surname>
|
|
<affiliation><address><email>hans.verkuil@cisco.com</email></address></affiliation>
|
|
<contrib>Initial version.</contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2016</year>
|
|
<holder>Hans Verkuil</holder>
|
|
</copyright>
|
|
|
|
<revhistory>
|
|
<!-- Put document revisions here, newest first. -->
|
|
<revision>
|
|
<revnumber>1.0.0</revnumber>
|
|
<date>2016-03-17</date>
|
|
<authorinitials>hv</authorinitials>
|
|
<revremark>Initial revision</revremark>
|
|
</revision>
|
|
</revhistory>
|
|
</partinfo>
|
|
|
|
<title>CEC API</title>
|
|
|
|
<chapter id="cec-api">
|
|
<title>CEC: Consumer Electronics Control</title>
|
|
|
|
<section id="cec-intro">
|
|
<title>Introduction</title>
|
|
<para>
|
|
Note: this documents the proposed CEC API. This API is not yet finalized and
|
|
is currently only available as a staging kernel module.
|
|
</para>
|
|
<para>HDMI connectors provide a single pin for use by the Consumer Electronics
|
|
Control protocol. This protocol allows different devices connected by an HDMI cable
|
|
to communicate. The protocol for CEC version 1.4 is defined in supplements 1 (CEC)
|
|
and 2 (HEAC or HDMI Ethernet and Audio Return Channel) of the HDMI 1.4a
|
|
(<xref linkend="hdmi" />) specification and the extensions added to CEC version 2.0
|
|
are defined in chapter 11 of the HDMI 2.0 (<xref linkend="hdmi2" />) specification.
|
|
</para>
|
|
|
|
<para>The bitrate is very slow (effectively no more than 36 bytes per second) and
|
|
is based on the ancient AV.link protocol used in old SCART connectors. The protocol
|
|
closely resembles a crazy Rube Goldberg contraption and is an unholy mix of low and
|
|
high level messages. Some messages, especially those part of the HEAC protocol layered
|
|
on top of CEC, need to be handled by the kernel, others can be handled either by the
|
|
kernel or by userspace.</para>
|
|
|
|
<para>In addition, CEC can be implemented in HDMI receivers, transmitters and in USB
|
|
devices that have an HDMI input and an HDMI output and that control just the CEC pin.</para>
|
|
|
|
<para>Drivers that support CEC will create a CEC device node (/dev/cecX)
|
|
to give userspace access to the CEC adapter. The &CEC-ADAP-G-CAPS; ioctl will tell userspace
|
|
what it is allowed to do.</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<appendix id="cec-user-func">
|
|
<title>Function Reference</title>
|
|
<!-- Keep this alphabetically sorted. -->
|
|
&sub-cec-func-open;
|
|
&sub-cec-func-close;
|
|
&sub-cec-func-ioctl;
|
|
&sub-cec-func-poll;
|
|
<!-- All ioctls go here. -->
|
|
&sub-cec-ioc-adap-g-caps;
|
|
&sub-cec-ioc-adap-g-log-addrs;
|
|
&sub-cec-ioc-adap-g-phys-addr;
|
|
&sub-cec-ioc-dqevent;
|
|
&sub-cec-ioc-g-mode;
|
|
&sub-cec-ioc-receive;
|
|
</appendix>
|