cfm_usb_devices.py revision 6a0cc28d3fc2a71de8e47eb6876cdc56673ca86d
1"""CfM USB device constants.
2
3This module contains constants for known USB device specs.
4
5A UsbDeviceSpec instance represents a known USB device and its spec;
6 - VendorID
7 - ProdID
8 - interfaces
9
10This is different from a UsbDevice instance which represents a device actually
11connected to the CfM and found by the usb-device command.
12
13A UsbDevice instance found connected to a CfM is expected to match a known
14UsbDeviceSpec (mapping is done using vid:pid), but due to bugs that might
15not be the case (list of interfaces might be different for example).
16"""
17
18from autotest_lib.client.common_lib.cros.cfm.usb import usb_device_spec
19
20# Cameras
21HUDDLY_GO = usb_device_spec.UsbDeviceSpec(
22    vid='2bd9',
23    pid='0011',
24    product='Huddly GO',
25    interfaces=['uvcvideo', 'uvcvideo', 'uvcvideo', 'uvcvideo'],
26)
27
28LOGITECH_WEBCAM_C930E = usb_device_spec.UsbDeviceSpec(
29    vid='046d',
30    pid='0843',
31    product='Logitech Webcam C930e',
32    interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio']
33)
34
35HD_PRO_WEBCAM_C920 = usb_device_spec.UsbDeviceSpec(
36    vid='046d',
37    pid='082d',
38    product='HD Pro Webcam C920',
39    interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio'],
40)
41
42PTZ_PRO_CAMERA = usb_device_spec.UsbDeviceSpec(
43    vid='046d',
44    pid='0853',
45    product='PTZ Pro Camera',
46    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
47)
48
49PTZ_PRO_2_CAMERA = usb_device_spec.UsbDeviceSpec(
50    vid='046d',
51    pid='085f',
52    product='PTZ Pro 2 Camera',
53    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
54)
55
56# Audio peripherals
57ATRUS = usb_device_spec.UsbDeviceSpec(
58    vid='18d1',
59    pid='8001',
60    product='Hangouts Meet speakermic',
61    interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio', 'usbhid'],
62)
63
64JABRA_SPEAK_410 = usb_device_spec.UsbDeviceSpec(
65    vid='0b0e',
66    pid='0412',
67    product='Jabra SPEAK 410',
68    interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio'],
69)
70
71# MiMOs
72MIMO_VUE_HD_DISPLAY = usb_device_spec.UsbDeviceSpec(
73    vid='17e9',
74    pid='016b',
75    product='MIMO VUE HD',
76    interfaces=['udl'],
77)
78
79MIMO_VUE_HID_TOUCH_CONTROLLER = usb_device_spec.UsbDeviceSpec(
80    vid='266e',
81    pid='0110',
82    product='SiS HID Touch Controller',
83    interfaces=['usbhid'],
84)
85
86# Utility methods
87def get_usb_device_spec(vid_pid):
88  """
89  Look up UsbDeviceSpec based on vid_pid.
90  @return UsbDeviceSpec with matching vid_pid or None if no match.
91  """
92  return usb_device_spec.UsbDeviceSpec.get_usb_device_spec(vid_pid)
93