diff options
Diffstat (limited to 'test/usb_test/device_configuration.c')
-rw-r--r-- | test/usb_test/device_configuration.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/test/usb_test/device_configuration.c b/test/usb_test/device_configuration.c deleted file mode 100644 index 69f889c2d3..0000000000 --- a/test/usb_test/device_configuration.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2016 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include <errno.h> -#include <getopt.h> -#include <libusb.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Options */ -static uint16_t vid = 0x18d1; /* Google */ -static uint16_t pid = 0x5014; /* Cr50 */ - -static char *progname; - -static void usage(int errs) -{ - printf("\nUsage: %s [vid:pid] [value]\n" - "\n" - "Set/Get the USB Device Configuration value\n" - "\n" - "The default vid:pid is %04x:%04x\n" - "\n", progname, vid, pid); - - exit(!!errs); -} - -/* Globals */ -struct libusb_device_handle *devh = 0; - -static void stupid_usb(const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - - if (devh) - libusb_close(devh); - - libusb_exit(NULL); - - exit(1); -} - - -int main(int argc, char *argv[]) -{ - int r = 1; - int errorcnt = 0; - int do_set = 0; - uint16_t setval = 0; - uint8_t buf[80]; /* Arbitrary size */ - int i; - - progname = strrchr(argv[0], '/'); - if (progname) - progname++; - else - progname = argv[0]; - - opterr = 0; /* quiet, you */ - while ((i = getopt(argc, argv, "")) != -1) { - switch (i) { - case 'h': - usage(errorcnt); - break; - case 0: /* auto-handled option */ - break; - case '?': - if (optopt) - printf("Unrecognized option: -%c\n", optopt); - else - printf("Unrecognized option: %s\n", - argv[optind - 1]); - errorcnt++; - break; - case ':': - printf("Missing argument to %s\n", argv[optind - 1]); - errorcnt++; - break; - default: - printf("Internal error at %s:%d\n", __FILE__, __LINE__); - exit(1); - } - } - - if (errorcnt) - usage(errorcnt); - - if (optind < argc) { - uint16_t v, p; - - if (2 == sscanf(argv[optind], "%hx:%hx", &v, &p)) { - vid = v; - pid = p; - optind++; - } - } - - if (optind < argc) { - do_set = 1; - setval = atoi(argv[optind]); - } - - r = libusb_init(NULL); - if (r) { - printf("libusb_init() returned 0x%x: %s\n", - r, libusb_error_name(r)); - return 1; - } - - devh = libusb_open_device_with_vid_pid(NULL, vid, pid); - if (!devh) { - perror(progname); - stupid_usb("Can't open device %04x:%04x\n", vid, pid); - } - - - /* Set config*/ - if (do_set) { - printf("SetCfg %d\n", setval); - r = libusb_control_transfer( - devh, - 0x00, /* bmRequestType */ - 0x09, /* bRequest */ - setval, /* wValue */ - 0x0000, /* wIndex */ - NULL, /* data */ - 0x0000, /* wLength */ - 1000); /* timeout (ms) */ - - if (r < 0) - printf("transfer returned 0x%x %s\n", - r, libusb_error_name(r)); - } - - /* Get config */ - memset(buf, 0, sizeof(buf)); - - r = libusb_control_transfer( - devh, - 0x80, /* bmRequestType */ - 0x08, /* bRequest */ - 0x0000, /* wValue */ - 0x0000, /* wIndex */ - buf, /* data */ - 0x0001, /* wLength */ - 1000); /* timeout (ms) */ - - if (r <= 0) - stupid_usb("GetCfg transfer() returned 0x%x %s\n", - r, libusb_error_name(r)); - - printf("GetCfg returned %d bytes:", r); - for (i = 0; i < r; i++) - printf(" 0x%02x", buf[i]); - printf("\n"); - - /* done */ - if (devh) - libusb_close(devh); - libusb_exit(NULL); - - return 0; -} |