Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
* HDMI CEC GPIO driver

The HDMI CEC GPIO module supports CEC implementations where the CEC line
is hooked up to a pull-up GPIO line and - optionally - the HPD line is
hooked up to another GPIO line.

Please note: the maximum voltage for the CEC line is 3.63V, for the HPD and
5V lines it is 5.3V. So you may need some sort of level conversion circuitry
when connecting them to a GPIO line.

Required properties:
  - compatible: value must be "cec-gpio".
  - cec-gpios: gpio that the CEC line is connected to. The line should be
    tagged as open drain.

If the CEC line is associated with an HDMI receiver/transmitter, then the
following property is also required:

  - hdmi-phandle - phandle to the HDMI controller, see also cec.txt.

If the CEC line is not associated with an HDMI receiver/transmitter, then
the following property is optional and can be used for debugging HPD changes:

  - hpd-gpios: gpio that the HPD line is connected to.

This property is optional and can be used for debugging changes on the 5V line:

  - v5-gpios: gpio that the 5V line is connected to.

Example for the Raspberry Pi 3 where the CEC line is connected to
pin 26 aka BCM7 aka CE1 on the GPIO pin header, the HPD line is
connected to pin 11 aka BCM17 and the 5V line is connected to pin
15 aka BCM22 (some level shifter is needed for the HPD and 5V lines!):

#include <dt-bindings/gpio/gpio.h>

cec-gpio {
	compatible = "cec-gpio";
	cec-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
	hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
	v5-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
};