diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2018-01-12 10:22:52 +0100 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-01-17 06:20:37 -0800 |
commit | 9d38e4664150579503f70b03b35e1dd1bedb7920 (patch) | |
tree | 64b9f0d008d1a499b16114f6650a6b21ea711ec3 /util/comm-host.c | |
parent | 1e1b5d4463c2f273c593f90fd1f60b7c06139f86 (diff) | |
download | chrome-ec-9d38e4664150579503f70b03b35e1dd1bedb7920.tar.gz |
ectool: add servo v2 spi support
Add a new transport for ectool to send host command V3 over the Servo v2
SPI interface using libftdi.
Build this new communication mechanism only for the 'build' architecture
as it has a dependency on libftdi, the new ectool binary is called
ectool_servo.
Fix the 'build' tools build if they don't have a source file matching
their binary name.
The serial number of the servo board can be passed in the 'name'
parameter, e.g. :
sudo ectool_servo --name=905537-00474 version
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=none
BUG=b:70320279
TEST=with ZerbleBarn connected to a servo V2, run:
sudo ectool_servo version
Change-Id: Ia7067d465a42f76695fed5932f32fac9a6d0988e
Reviewed-on: https://chromium-review.googlesource.com/864164
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'util/comm-host.c')
-rw-r--r-- | util/comm-host.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/util/comm-host.c b/util/comm-host.c index 9fc65ab634..ad3d5053d0 100644 --- a/util/comm-host.c +++ b/util/comm-host.c @@ -29,6 +29,7 @@ static int command_offset; int comm_init_dev(const char *device_name) __attribute__((weak)); int comm_init_lpc(void) __attribute__((weak)); int comm_init_i2c(void) __attribute__((weak)); +int comm_init_servo_spi(const char *device_name) __attribute__((weak)); static int fake_readmem(int offset, int bytes, void *dest) { @@ -97,6 +98,10 @@ int comm_init(int interfaces, const char *device_name) !comm_init_dev(device_name)) goto init_ok; + if ((interfaces & COMM_SERVO) && comm_init_servo_spi && + !comm_init_servo_spi(device_name)) + goto init_ok; + /* Do not fallback to other communication methods if target is not a * cros_ec device */ if (strcmp(CROS_EC_DEV_NAME, device_name)) |