aboutsummaryrefslogtreecommitdiff
path: root/elksmart-comm.c
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2026-03-18 11:37:35 +0100
committerPřemysl Eric Janouch <p@janouch.name>2026-03-18 11:37:35 +0100
commit13cdcd24b0020c69cda561db1c587e6c76e7ce6b (patch)
treea98f412937a03d7d59cb1d79c10d6774e6138f39 /elksmart-comm.c
parent5035750647f1fc8c3588bcc12a11320dff51adaf (diff)
downloadusb-drivers-13cdcd24b0020c69cda561db1c587e6c76e7ce6b.tar.gz
usb-drivers-13cdcd24b0020c69cda561db1c587e6c76e7ce6b.tar.xz
usb-drivers-13cdcd24b0020c69cda561db1c587e6c76e7ce6b.zip
WIP: EKX5S-T 2025HEADmaster
Diffstat (limited to 'elksmart-comm.c')
-rw-r--r--elksmart-comm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/elksmart-comm.c b/elksmart-comm.c
index 1e281cc..8d2a146 100644
--- a/elksmart-comm.c
+++ b/elksmart-comm.c
@@ -251,6 +251,8 @@ enum {
// 0x184 (EKX5S-T, international edition)
USB_PRODUCT_SMTCTL_SMART_EKX4S = 0x0195,
USB_PRODUCT_SMTCTL_SMART_EKX5S_T = 0x0184,
+ // 0x132 (EKX5S-T, to be reverse-engineered)
+ USB_PRODUCT_SMTCTL_SMART_EKX5S_T_2025 = 0x0132,
// There should only ever be one interface.
USB_INTERFACE = 0,
@@ -277,7 +279,8 @@ init_device_from_desc(struct libusb_config_descriptor *desc, struct error **e)
return error_set(e, "unexpected alternate setting count");
const struct libusb_interface_descriptor *asd = desc->interface->altsetting;
- if (asd->bInterfaceClass != LIBUSB_CLASS_COMM)
+ if (asd->bInterfaceClass != LIBUSB_CLASS_COMM &&
+ asd->bInterfaceClass != LIBUSB_CLASS_VENDOR_SPEC /* 045c:0132 */)
return error_set(e, "unexpected USB interface class");
if (asd->bNumEndpoints != 2)
return error_set(e, "unexpected endpoint count");
@@ -647,6 +650,9 @@ main(int argc, char *argv[])
if (!device && !result)
device = find_device(
USB_VENDOR_SMTCTL, USB_PRODUCT_SMTCTL_SMART_EKX5S_T, &result);
+ if (!device && !result)
+ device = find_device(
+ USB_VENDOR_SMTCTL, USB_PRODUCT_SMTCTL_SMART_EKX5S_T_2025, &result);
if (result)
exit_fatal("couldn't open device: %s", libusb_strerror(result));