1 """CfM USB device constants. 2 3 This module contains constants for known USB device specs. 4 5 A UsbDeviceSpec instance represents a known USB device and its spec; 6 - VendorID 7 - ProdID 8 - interfaces 9 10 This is different from a UsbDevice instance which represents a device actually 11 connected to the CfM and found by the usb-device command. 12 13 A UsbDevice instance found connected to a CfM is expected to match a known 14 UsbDeviceSpec (mapping is done using vid:pid), but due to bugs that might 15 not be the case (list of interfaces might be different for example). 16 """ 17 18 from autotest_lib.client.common_lib.cros.cfm.usb import usb_device_spec 19 20 # Cameras 21 AVER_CAM520_CAMERA = usb_device_spec.UsbDeviceSpec( 22 vid='2574', 23 pid='0910', 24 product='CAM520', 25 interfaces=['uvcvideo', 'uvcvideo', 'usbhid'], 26 ) 27 28 AVER_VC520_CAMERA = usb_device_spec.UsbDeviceSpec( 29 vid='2574', 30 pid='0901', 31 product='VC520+', 32 interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 33 'snd-usb-audio', 'snd-usb-audio', 'usbhid'], 34 ) 35 36 HUDDLY_GO = usb_device_spec.UsbDeviceSpec( 37 vid='2bd9', 38 pid='0011', 39 product='Huddly GO', 40 interfaces=['uvcvideo', 'uvcvideo', 'uvcvideo', 'uvcvideo'], 41 ) 42 43 LOGITECH_WEBCAM_C930E = usb_device_spec.UsbDeviceSpec( 44 vid='046d', 45 pid='0843', 46 product='Logitech Webcam C930e', 47 interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio'] 48 ) 49 50 HD_PRO_WEBCAM_C920 = usb_device_spec.UsbDeviceSpec( 51 vid='046d', 52 pid='082d', 53 product='HD Pro Webcam C920', 54 interfaces=['uvcvideo', 'uvcvideo', 'snd-usb-audio', 'snd-usb-audio'], 55 ) 56 57 PTZ_PRO_CAMERA = usb_device_spec.UsbDeviceSpec( 58 vid='046d', 59 pid='0853', 60 product='PTZ Pro Camera', 61 interfaces=['uvcvideo', 'uvcvideo', 'usbhid'], 62 ) 63 64 PTZ_PRO_2_CAMERA = usb_device_spec.UsbDeviceSpec( 65 vid='046d', 66 pid='085f', 67 product='PTZ Pro 2 Camera', 68 interfaces=['uvcvideo', 'uvcvideo', 'usbhid'], 69 ) 70 71 # Devices with Camera and Audio 72 73 # Camera in Logitech MeetUp Device 74 LOGITECH_MEETUP = usb_device_spec.UsbDeviceSpec( 75 vid='046d', 76 pid='0866', 77 product='Logitech MeetUp', 78 interfaces=['uvcvideo', 'uvcvideo', 'usbhid'], 79 ) 80 81 # Audio peripheral in Logitech MeetUp Device 82 LOGITECH_MEETUP_SPEAKERPHONE = usb_device_spec.UsbDeviceSpec( 83 vid='046d', 84 pid='0867', 85 product='Logitech MeetUp Speakerphone', 86 interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio', 'usbhid'], 87 ) 88 89 # Audio peripherals 90 ATRUS = usb_device_spec.UsbDeviceSpec( 91 vid='18d1', 92 pid='8001', 93 product='Hangouts Meet speakermic', 94 interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio', 'usbhid'], 95 ) 96 97 JABRA_SPEAK_410 = usb_device_spec.UsbDeviceSpec( 98 vid='0b0e', 99 pid='0412', 100 product='Jabra SPEAK 410', 101 interfaces=['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio'], 102 ) 103 104 # MiMOs 105 MIMO_VUE_HD_DISPLAY = usb_device_spec.UsbDeviceSpec( 106 vid='17e9', 107 pid='016b', 108 product='MIMO VUE HD', 109 interfaces=['udl'], 110 ) 111 112 # The MiMO's firmware is tied to the Chrome OS version. The firmware was updated 113 # in Chrome OS 65.0.3319.0. This resulted in the PID being changed from 016b to 114 # 416d. The following device is the device with the new PID. We need to support 115 # both versions since we want to support tests at the ToT revision running 116 # against older Chrome OS versions. 117 MIMO_VUE_HD_DISPLAY_PLANKTON = usb_device_spec.UsbDeviceSpec( 118 vid='17e9', 119 pid='416d', 120 product='MIMO VUE HD', 121 interfaces=['udl'], 122 ) 123 124 # Tuple with all known MIMO display specs that we support. 125 ALL_MIMO_DISPLAYS = (MIMO_VUE_HD_DISPLAY, MIMO_VUE_HD_DISPLAY_PLANKTON) 126 127 MIMO_VUE_HID_TOUCH_CONTROLLER = usb_device_spec.UsbDeviceSpec( 128 vid='266e', 129 pid='0110', 130 product='SiS HID Touch Controller', 131 interfaces=['usbhid'], 132 ) 133 134 # Utility methods 135 def get_usb_device_spec(vid_pid): 136 """ 137 Look up UsbDeviceSpec based on vid_pid. 138 @return UsbDeviceSpec with matching vid_pid or None if no match. 139 """ 140 return usb_device_spec.UsbDeviceSpec.get_usb_device_spec(vid_pid) 141