mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-28 21:46:02 -04:00
On many boards, communication between the kernel and the Embedded Controller happens over an LPC bus. In these cases, the kernel config CONFIG_CROS_EC_LPC is enabled. Some of these LPC boards contain a Microchip Embedded Controller (MEC) that is different from the regular EC. On these devices, the same LPC bus is used, but the protocol is a little different. In these cases, the CONFIG_CROS_EC_LPC_MEC kernel config is enabled. Currently, the kernel decides at compile-time whether or not to use the MEC variant, and, when that kernel option is selected it breaks the other boards. We would like a kind of runtime detection to avoid this. This patch adds that detection mechanism by probing the protocol at runtime, first we assume that a MEC variant is connected, and if the protocol fails it fallbacks to the regular EC. This adds a bit of overload because we try to read twice on those LPC boards that doesn't contain a MEC variant, but is a better solution than having to select the EC variant at compile-time. While here also fix the alignment in Kconfig file for this config option replacing the spaces by tabs. Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> Tested-by: Nick Crews <ncrews@chromium.org> Reviewed-by: Nick Crews <ncrews@chromium.org>
37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
config WILCO_EC
|
|
tristate "ChromeOS Wilco Embedded Controller"
|
|
depends on ACPI && X86 && CROS_EC_LPC
|
|
help
|
|
If you say Y here, you get support for talking to the ChromeOS
|
|
Wilco EC over an eSPI bus. This uses a simple byte-level protocol
|
|
with a checksum.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called wilco_ec.
|
|
|
|
config WILCO_EC_DEBUGFS
|
|
tristate "Enable raw access to EC via debugfs"
|
|
depends on WILCO_EC
|
|
help
|
|
If you say Y here, you get support for sending raw commands to
|
|
the Wilco EC via debugfs. These commands do not do any byte
|
|
manipulation and allow for testing arbitrary commands. This
|
|
interface is intended for debug only and will not be present
|
|
on production devices.
|
|
|
|
config WILCO_EC_EVENTS
|
|
tristate "Enable event forwarding from EC to userspace"
|
|
depends on WILCO_EC
|
|
help
|
|
If you say Y here, you get support for the EC to send events
|
|
(such as power state changes) to userspace. The EC sends the events
|
|
over ACPI, and a driver queues up the events to be read by a
|
|
userspace daemon from /dev/wilco_event using read() and poll().
|
|
|
|
config WILCO_EC_TELEMETRY
|
|
tristate "Enable querying telemetry data from EC"
|
|
depends on WILCO_EC
|
|
help
|
|
If you say Y here, you get support to query EC telemetry data from
|
|
/dev/wilco_telem0 using write() and then read().
|