[PATCH v2 0/2] Add SECO CEC driver for MEC Based boards

From: ektor5
Date: Tue Feb 15 2022 - 13:14:19 EST


From: Ettore Chimenti <ek5.chimenti@xxxxxxxxx>

Hi all,

Changes in v2:
* Fixed a missing counter increment in the probe function.

Here's the patch for the SECO CEC driver for MAC-based Boards. The
boards have a Microchip MEC microcontroller as a general-purpose
Embedded Controller, and they communicate through a mailbox interface.

The EC used is more powerful and enables management of several CEC lines
at once (up to 4). The focus is on Intel-based SBC-D61 board and UDOO
Vision (SBC-D02) in this version, as the UDOO BOLT firmware
implementation is still ongoing. Moreover, there is no CEC Notifier
functionality inside amdgpu yet.

Similarly to the previous implementation, there are several commands
that can be issued, like WRITE and READ commands for sending and
receiving CEC messages. The retrieval and send confirmation are
triggered by a single GPIO interrupt connected directly to the SoC.

After every STATUS command, the MEC returns a data struct with all the
channels status, and it automatically clears the interrupt state afterwards.

In this implementation, the driver sends also the physical address to
the EC. This way it is possible to wake up the board upon receiving an
SET_STREAM_PATH with the matching physical address when the CPU is in S3
or S5 (depending on BIOS settings). The only time that it seems to be
already set is in the LA assignment (in the .enable callback it is not
set yet).

Best Regards,
Ettore

Ettore Chimenti (2):
media: cec: add SECO MEC-based cec driver
media: cec: seco: add newlines in debug messages

MAINTAINERS | 2 +
drivers/media/cec/platform/Kconfig | 22 +-
drivers/media/cec/platform/seco/Makefile | 3 +-
drivers/media/cec/platform/seco/seco-cec.c | 54 +-
drivers/media/cec/platform/seco/seco-meccec.c | 824 ++++++++++++++++++
drivers/media/cec/platform/seco/seco-meccec.h | 130 +++
6 files changed, 1005 insertions(+), 30 deletions(-)
create mode 100644 drivers/media/cec/platform/seco/seco-meccec.c
create mode 100644 drivers/media/cec/platform/seco/seco-meccec.h

--
2.17.1