• Enric Balletbo i Serra's avatar
    platform/chrome: cros_ec_lpc: Choose Microchip EC at runtime · 22c040fa
    Enric Balletbo i Serra authored
    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: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
    Reviewed-by: default avatarEzequiel Garcia <ezequiel@collabora.com>
    Tested-by: default avatarNick Crews <ncrews@chromium.org>
    Reviewed-by: default avatarNick Crews <ncrews@chromium.org>
    22c040fa
Kconfig 1.31 KB