Commit | Line | Data |
---|---|---|
da98a79b MCC |
1 | .. _cec-intro: |
2 | ||
3 | Introduction | |
4 | ============ | |
5 | ||
b6b6e678 MCC |
6 | .. note:: |
7 | ||
8 | This documents the proposed CEC API. This API is not yet finalized | |
706f8a99 | 9 | and is currently only available as a staging kernel module. |
da98a79b MCC |
10 | |
11 | HDMI connectors provide a single pin for use by the Consumer Electronics | |
12 | Control protocol. This protocol allows different devices connected by an | |
13 | HDMI cable to communicate. The protocol for CEC version 1.4 is defined | |
14 | in supplements 1 (CEC) and 2 (HEAC or HDMI Ethernet and Audio Return | |
15 | Channel) of the HDMI 1.4a (:ref:`hdmi`) specification and the | |
16 | extensions added to CEC version 2.0 are defined in chapter 11 of the | |
17 | HDMI 2.0 (:ref:`hdmi2`) specification. | |
18 | ||
19 | The bitrate is very slow (effectively no more than 36 bytes per second) | |
20 | and is based on the ancient AV.link protocol used in old SCART | |
21 | connectors. The protocol closely resembles a crazy Rube Goldberg | |
22 | contraption and is an unholy mix of low and high level messages. Some | |
23 | messages, especially those part of the HEAC protocol layered on top of | |
24 | CEC, need to be handled by the kernel, others can be handled either by | |
25 | the kernel or by userspace. | |
26 | ||
27 | In addition, CEC can be implemented in HDMI receivers, transmitters and | |
28 | in USB devices that have an HDMI input and an HDMI output and that | |
29 | control just the CEC pin. | |
30 | ||
31 | Drivers that support CEC will create a CEC device node (/dev/cecX) to | |
32 | give userspace access to the CEC adapter. The | |
33 | :ref:`CEC_ADAP_G_CAPS` ioctl will tell userspace what it is allowed to do. |