ec/google: Support Google's Chrome EC on I2C interface.

Google's Chrome EC can be installed on LPC or I2C bus, using different command
protocol.  This commit adds I2C support for devices like Google/Snow.

Note: I2C interface cannot be automatically probed so the bus and chip number
must be explicitly set.

Verified by booting Google/Snow, with following console output:
  Google Chrome EC: Hello got back 11223344 status (0)
  Google Chrome EC: version:
     ro: snow_v1.3.108-30f8374
     rw: snow_v1.3.128-e35f60e
    running image: 1

Change-Id: I8023eb96cf477755d277fd7991bdb7d9392f10f7
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: http://review.coreboot.org/3074
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Hung-Te Lin
2013-04-15 18:27:24 +08:00
committed by Ronald G. Minnich
parent 07e0f1bf1a
commit 6bfbb33a64
6 changed files with 197 additions and 4 deletions

View File

@@ -10,9 +10,25 @@ config EC_GOOGLE_API_ROOT
help
Path to the ec API file (ec/ec_commands.h).
config EC_GOOGLE_CHROMEEC_LPC
depends on EC_GOOGLE_CHROMEEC
config EC_GOOGLE_CHROMEEC_I2C
depends on EC_GOOGLE_CHROMEEC && !EC_GOOGLE_CHROMEEC_LPC
bool
default y if ARCH_X86
default y
help
Google's Chrome EC via I2C bus.
config EC_GOOGLE_CHROMEEC_I2C_BUS
depends on EC_GOOGLE_CHROMEEC_I2C
hex "I2C bus for Google's Chrome EC"
config EC_GOOGLE_CHROMEEC_I2C_CHIP
depends on EC_GOOGLE_CHROMEEC_I2C
hex
default 0x1e
config EC_GOOGLE_CHROMEEC_LPC
depends on EC_GOOGLE_CHROMEEC && ARCH_X86 # Needs Plug-and-play.
bool
default y
help
Google Chrome EC via LPC bus.