Lines Matching +full:ao +full:- +full:cec

1 .. SPDX-License-Identifier: GPL-2.0
4 HDMI CEC
12 - Exynos4
13 - Exynos5
14 - STIH4xx HDMI CEC
15 - V4L2 adv7511 (same HW, but a different driver from the drm adv7511)
16 - stm32
17 - Allwinner A10 (sun4i)
18 - Raspberry Pi
19 - dw-hdmi (Synopsis IP)
20 - amlogic (meson ao-cec and ao-cec-g12a)
21 - drm adv7511/adv7533
22 - omap4
23 - tegra
24 - rk3288, rk3399
25 - tda998x
26 - DisplayPort CEC-Tunneling-over-AUX on i915, nouveau and amdgpu
27 - ChromeOS EC CEC
28 - CEC for SECO boards (UDOO x86).
29 - Chrontel CH7322
34 - adv7604/11/12
35 - adv7842
36 - tc358743
41 - Pulse-Eight: the pulse8-cec driver implements the following module option:
46 - RainShadow Tech. Note: this driver does not support the persistent_config
47 module option of the Pulse-Eight driver. The hardware supports it, but I
48 have no plans to add this feature. But I accept patches :-)
50 - Extron DA HD 4K PLUS HDMI Distribution Amplifier. See
55 - vivid: emulates a CEC receiver and CEC transmitter.
56 Can be used to test CEC applications without actual CEC hardware.
58 - cec-gpio. If the CEC pin is hooked up to a GPIO pin then
59 you can control the CEC line through this driver. This supports error
62 - cec-gpio and Allwinner A10 (or any other driver that uses the CEC pin
63 framework to drive the CEC pin directly): the CEC pin framework uses
64 high-resolution timers. These timers are affected by NTP daemons that
67 1/12th. This will cause the CEC timings to go out of spec. To fix this,
69 frequency change to 1/25th, which keeps the CEC timings within spec.
75 Utilities are available here: https://git.linuxtv.org/v4l-utils.git
77 ``utils/cec-ctl``: control a CEC device
79 ``utils/cec-compliance``: test compliance of a remote CEC device
81 ``utils/cec-follower``: emulate a CEC follower device
83 Note that ``cec-ctl`` has support for the CEC Hospitality Profile as is
86 Note that the libcec library (https://github.com/Pulse-Eight/libcec) supports
87 the linux CEC framework.
89 If you want to get the CEC specification, then look at the References of
90 the HDMI wikipedia page: https://en.wikipedia.org/wiki/HDMI. CEC is part
92 HDMI 1.4 w.r.t. CEC) and should be good enough for most things.
95 DisplayPort to HDMI Adapters with working CEC
98 Background: most adapters do not support the CEC Tunneling feature,
99 and of those that do many did not actually connect the CEC pin.
100 Unfortunately, this means that while a CEC device is created, it
102 CEC devices.
104 This is a list of known working adapters that have CEC Tunneling AND
105 that properly connected the CEC pin. If you find adapters that work
108 To test: hook up your DP-to-HDMI adapter to a CEC capable device
111 cec-ctl --playback # Configure the PC as a CEC Playback device
112 cec-ctl -S # Show the CEC topology
114 The ``cec-ctl -S`` command should show at least two CEC devices,
115 ourselves and the CEC device you are connected to (i.e. typically the TV).
118 PS186 chipsets and the MegaChips 2900. While MegaChips 28x0 claims CEC support,
121 USB-C to HDMI
122 -------------
124 Samsung Multiport Adapter EE-PW700: https://www.samsung.com/ie/support/model/EE-PW700BBEGWW/
126 Kramer ADC-U31C/HF: https://www.kramerav.com/product/ADC-U31C/HF
128 Club3D CAC-2504: https://www.club-3d.com/en/detail/2449/usb_3.1_type_c_to_hdmi_2.0_uhd_4k_60hz_acti…
131 -------------------
133 Club3D CAC-1080: https://www.club-3d.com/en/detail/2442/displayport_1.4_to_hdmi_2.0b_hdr/
135 …ion (SKU: CD0712): https://www.cablecreation.com/products/active-displayport-to-hdmi-adapter-4k-hdr
137 …I True 4k Adapter (P/N 2JA63AA): https://www.hp.com/us-en/shop/pdp/hp-displayport-to-hdmi-true-4k-
139 Mini-DisplayPort to HDMI
140 ------------------------
142 Club3D CAC-1180: https://www.club-3d.com/en/detail/2443/mini_displayport_1.4_to_hdmi_2.0b_hdr/
147 are PS176 based and do NOT have the CEC pin hooked up, so only the three Club3D
151 whereas with the PS176 it is more hit-and-miss (mostly miss). The PS186 is
152 likely to have the CEC pin hooked up, it looks like they changed the reference
156 USB CEC Dongles
160 utility to create the ``/dev/cecX`` devices. Support for the Pulse-Eight
166 …ERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="2548", ATTRS{idProduct}=="1002", ACTION=="add", TAG+="sys…
167 …ERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="2548", ATTRS{idProduct}=="1001", ACTION=="add", TAG+="sys…
168 …NEL=="ttyACM[0-9]*", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="ff59", ACTION=="add", TAG+="syste…
172 For Pulse-Eight make /lib/systemd/system/pulse8-cec-inputattach@.service::
175 Description=inputattach for pulse8-cec device on %I
179 ExecStart=/usr/bin/inputattach --pulse8-cec /dev/%I
181 For the RainShadow Tech make /lib/systemd/system/rainshadow-cec-inputattach@.service::
184 Description=inputattach for rainshadow-cec device on %I
188 ExecStart=/usr/bin/inputattach --rainshadow-cec /dev/%I
191 For proper suspend/resume support create: /lib/systemd/system/restart-cec-inputattach.service::
194 Description=restart inputattach for cec devices
199-c 'for d in /dev/serial/by-id/usb-Pulse-Eight*; do /usr/bin/inputattach --daemon --pulse8-cec $d;…
204 And run ``systemctl enable restart-cec-inputattach``.
206 To automatically set the physical address of the CEC device whenever the
207 EDID changes, you can use ``cec-ctl`` with the ``-E`` option::
209 cec-ctl -E /sys/class/drm/card0-DP-1/edid
211 This assumes the dongle is connected to the card0-DP-1 output (``xrandr`` will tell
216 ``crontab -e`` and add this line::
218 @reboot /usr/local/bin/cec-ctl -E /sys/class/drm/card0-DP-1/edid
224 CEC Without HPD
228 CEC is still enabled so connected devices can send an <Image View On> CEC
229 message in order to wake up such displays. Unfortunately, not all CEC
230 adapters can support this. An example is the Odroid-U3 SBC that has a
231 level-shifter that is powered off when the HPD signal is low, thus
232 blocking the CEC pin. Even though the SoC can use CEC without a HPD,
233 the level-shifter will prevent this from functioning.
235 There is a CEC capability flag to signal this: ``CEC_CAP_NEEDS_HPD``.
238 Note for CEC application implementers: the <Image View On> message must
240 Certain very bad but unfortunately not uncommon CEC implementations
247 1) Get a Pulse-Eight USB CEC dongle, connect an HDMI cable from your
248 device to the Pulse-Eight, but do not connect the Pulse-Eight to
251 Now configure the Pulse-Eight dongle::
253 cec-ctl -p0.0.0.0 --tv
257 sudo cec-ctl -M
261 cec-ctl --playback
266 cec-ctl -t0 --image-view-on
268 The Pulse-Eight should see the <Image View On> message. If not,
269 then something (hardware and/or software) is preventing the CEC
273 Pulse-Eight to a CEC-enabled display and run the same command
275 arriving at the Pulse-Eight.
277 2) If you have another linux device supporting CEC without HPD, then
280 want for this test), but the second device can monitor the CEC pin.
284 If CEC messages do not come through when there is no HPD, then you
286 or the software powers off the CEC core when the HPD goes low. The
291 Microcontrollers & CEC
294 We have seen some CEC implementations in displays that use a microcontroller
296 have timing issues. This is hard to discover unless you can hook up a low-level
297 CEC debugger (see the next section).
299 You will see cases where the CEC transmitter holds the CEC line high or low for
309 Making a CEC debugger
313 your own low-level CEC debugger.
315 The critical component is one of these HDMI female-female passthrough connectors
318 …om/collections/camera/products/hdmi-af-af-v1a-hdmi-type-a-female-to-hdmi-type-a-female-pass-throug…
320 The video quality is variable and certainly not enough to pass-through 4kp60
322 be limited to 1080p60 (148.5 MHz). But for CEC testing that is fine.
326 http://www.dx.com/p/diy-40p-male-to-female-male-to-male-female-to-female-dupont-line-wire-3pcs-3560…
339 The CEC pin of the HDMI connector needs to be connected to these pins:
346 This device tree addition in ``arch/arm/boot/dts/bcm2711-rpi-4-b.dts``
347 will hook up the cec-gpio driver correctly::
349 cec@6 {
350 compatible = "cec-gpio";
351 cec-gpios = <&gpio 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
352 hpd-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
353 v5-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
356 cec@7 {
357 compatible = "cec-gpio";
358 cec-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
359 hpd-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
360 v5-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
366 This dts change will enable two cec GPIO devices: I typically use one to
367 send/receive CEC commands and the other to monitor. If you monitor using
368 an unconfigured CEC adapter then it will use GPIO interrupts which makes
372 The minimum configuration is one HDMI female-female passthrough connector
373 and two female-female breadboard wires: one for connecting the HDMI ground
375 CEC pin to GPIO 6 on the Raspberry Pi.
379 ``cec-ctl --monitor-pin`` will do low-level CEC bus sniffing and analysis.
380 You can also store the CEC traffic to file using ``--store-pin`` and analyze
381 it later using ``--analyze-pin``.
383 You can also use this as a full-fledged CEC device by configuring it
384 using ``cec-ctl --tv -p0.0.0.0`` or ``cec-ctl --playback -p1.0.0.0``.
388 Extron DA HD 4K PLUS CEC Adapter driver
398 Note that older Extron hardware revisions have a problem with the CEC voltage,
399 which may mean that CEC will not work. This is fixed in hardware revisions
402 The CEC support has two modes: the first is a manual mode where userspace has
403 to manually control CEC for the HDMI Input and all HDMI Outputs. While this gives
407 ``vendor_id`` is set. In that case the driver controls CEC and CEC messages
424 The status of the Extron is reported in ``/sys/kernel/debug/cec/cecX/status``.
426 The extron-da-hd-4k-plus driver implements the following module options:
429 ---------
434 -------------
436 The CEC Vendor ID to report to connected displays.
438 If set, then the driver will take care of distributing CEC messages received
439 on the input to the HDMI outputs. This is done for the following CEC messages:
441 - <Standby>
442 - <Image View On> and <Text View On>
443 - <Give Device Power Status>
444 - <Set System Audio Mode>
445 - <Request Current Latency>
448 configure the CEC devices for HDMI Input and the HDMI Outputs manually.
451 ---------------------
460 -----------------