blob: 6d1d2689c765a1327299734a6881b4064d7ceb99 [file] [log] [blame]
"""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 Chrome OS version. The firmware was updated
# in Chrome OS 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 Chrome OS 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)