aboutsummaryrefslogtreecommitdiff
path: root/client/common_lib/cros/cfm/usb/cfm_usb_devices.py
blob: 67059a9f31f65a2251c45e48910a78cb03f49b91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
"""CfM USB device constants.

This module contains constants for known USB device specs.

A UsbDeviceSpec instance represents a known USB device and its spec;
 - VendorID
 - ProdID
 - interfaces

This is different from a UsbDevice instance which represents a device actually
connected to the CfM and found by the usb-device command.

A UsbDevice instance found connected to a CfM is expected to match a known
UsbDeviceSpec (mapping is done using vid:pid), but due to bugs that might
not be the case (list of interfaces might be different for example).
"""

from autotest_lib.client.common_lib.cros.cfm.usb import usb_device_spec

# Cameras
AVER_CAM520_CAMERA = usb_device_spec.UsbDeviceSpec(
    vid='2574',
    pid='0910',
    product='CAM520',
    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
)

AVER_VC520_CAMERA = usb_device_spec.UsbDeviceSpec(
    vid='2574',
    pid='0901',
    product='VC520+',
    interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio',
                'snd-usb-audio', 'snd-usb-audio', 'usbhid'],
)

HUDDLY_GO = usb_device_spec.UsbDeviceSpec(
    vid='2bd9',
    pid='0011',
    product='Huddly GO',
    interfaces=['uvcvideo', 'uvcvideo', 'uvcvideo', 'uvcvideo'],
)

LOGITECH_WEBCAM_C930E = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='0843',
    product='Logitech Webcam C930e',
    interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio']
)

HD_PRO_WEBCAM_C920 = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='082d',
    product='HD Pro Webcam C920',
    interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio'],
)

PTZ_PRO_CAMERA = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='0853',
    product='PTZ Pro Camera',
    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
)

PTZ_PRO_2_CAMERA = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='085f',
    product='PTZ Pro 2 Camera',
    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
)

# Devices with Camera and Audio

# Camera in Logitech MeetUp Device
LOGITECH_MEETUP = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='0866',
    product='Logitech MeetUp',
    interfaces=['uvcvideo', 'uvcvideo', 'usbhid'],
)

# Audio peripheral in Logitech MeetUp Device
LOGITECH_MEETUP_SPEAKERPHONE = usb_device_spec.UsbDeviceSpec(
    vid='046d',
    pid='0867',
    product='Logitech MeetUp Speakerphone',
    interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio', 'usbhid'],
)

# Audio peripherals
ATRUS = usb_device_spec.UsbDeviceSpec(
    vid='18d1',
    pid='8001',
    product='Hangouts Meet speakermic',
    interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio', 'usbhid'],
)

JABRA_SPEAK_410 = usb_device_spec.UsbDeviceSpec(
    vid='0b0e',
    pid='0412',
    product='Jabra SPEAK 410',
    interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio'],
)

# MiMOs
MIMO_VUE_HD_DISPLAY = usb_device_spec.UsbDeviceSpec(
    vid='17e9',
    pid='016b',
    product='MIMO VUE HD',
    interfaces=['udl'],
)

# The MiMO's firmware is tied to the ChromeOS version. The firmware was updated
# in ChromeOS 65.0.3319.0. This resulted in the PID being changed from 016b to
# 416d. The following device is the device with the new PID. We need to support
# both versions since we want to support tests at the ToT revision running
# against older ChromeOS versions.
MIMO_VUE_HD_DISPLAY_PLANKTON = usb_device_spec.UsbDeviceSpec(
    vid='17e9',
    pid='416d',
    product='MIMO VUE HD',
    interfaces=['udl'],
)

# Tuple with all known MIMO display specs that we support.
ALL_MIMO_DISPLAYS = (MIMO_VUE_HD_DISPLAY, MIMO_VUE_HD_DISPLAY_PLANKTON)

MIMO_VUE_HID_TOUCH_CONTROLLER = usb_device_spec.UsbDeviceSpec(
    vid='266e',
    pid='0110',
    product='SiS HID Touch Controller',
    interfaces=['usbhid'],
)

# Utility methods
def get_usb_device_spec(vid_pid):
  """
  Look up UsbDeviceSpec based on vid_pid.
  @return UsbDeviceSpec with matching vid_pid or None if no match.
  """
  return usb_device_spec.UsbDeviceSpec.get_usb_device_spec(vid_pid)