summaryrefslogtreecommitdiff
path: root/util/comm-host.c
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2018-01-12 10:22:52 +0100
committerchrome-bot <chrome-bot@chromium.org>2018-01-17 06:20:37 -0800
commit9d38e4664150579503f70b03b35e1dd1bedb7920 (patch)
tree64b9f0d008d1a499b16114f6650a6b21ea711ec3 /util/comm-host.c
parent1e1b5d4463c2f273c593f90fd1f60b7c06139f86 (diff)
downloadchrome-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.c5
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))