linux/drivers/platform/chrome/wilco_ec
Enric Balletbo i Serra 22c040fa21 platform/chrome: cros_ec_lpc: Choose Microchip EC at runtime
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>
2019-06-20 12:00:32 +02:00
..
core.c platform/chrome: wilco_ec: Add telemetry char device interface 2019-06-05 10:14:50 +02:00
debugfs.c platform/chrome: wilco_ec: Add telemetry char device interface 2019-06-05 10:14:50 +02:00
event.c platform/chrome: wilco_ec: Fix unreleased lock in event_read() 2019-06-18 10:37:21 +02:00
Kconfig platform/chrome: cros_ec_lpc: Choose Microchip EC at runtime 2019-06-20 12:00:32 +02:00
mailbox.c platform/chrome: wilco_ec: Remove 256 byte transfers 2019-05-20 10:18:10 +02:00
Makefile platform/chrome: wilco_ec: Add telemetry char device interface 2019-06-05 10:14:50 +02:00
properties.c platform/chrome: wilco_ec: Add property helper library 2019-05-20 10:18:09 +02:00
sysfs.c platform/chrome: wilco_ec: Add version sysfs entries 2019-06-05 17:28:42 +02:00
telemetry.c platform/chrome: wilco_ec: Add telemetry char device interface 2019-06-05 10:14:50 +02:00