^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * HDMI CEC GPIO driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) The HDMI CEC GPIO module supports CEC implementations where the CEC line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) is hooked up to a pull-up GPIO line and - optionally - the HPD line is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) hooked up to another GPIO line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Please note: the maximum voltage for the CEC line is 3.63V, for the HPD and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) 5V lines it is 5.3V. So you may need some sort of level conversion circuitry
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) when connecting them to a GPIO line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - compatible: value must be "cec-gpio".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - cec-gpios: gpio that the CEC line is connected to. The line should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) tagged as open drain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) If the CEC line is associated with an HDMI receiver/transmitter, then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) following property is also required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) - hdmi-phandle - phandle to the HDMI controller, see also cec.txt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) If the CEC line is not associated with an HDMI receiver/transmitter, then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) the following property is optional and can be used for debugging HPD changes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - hpd-gpios: gpio that the HPD line is connected to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) This property is optional and can be used for debugging changes on the 5V line:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - v5-gpios: gpio that the 5V line is connected to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) Example for the Raspberry Pi 3 where the CEC line is connected to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) pin 26 aka BCM7 aka CE1 on the GPIO pin header, the HPD line is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) connected to pin 11 aka BCM17 and the 5V line is connected to pin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 15 aka BCM22 (some level shifter is needed for the HPD and 5V lines!):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #include <dt-bindings/gpio/gpio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) cec-gpio {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) compatible = "cec-gpio";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) cec-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) v5-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) };