"""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)