You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.3 KiB

# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
ATMEL_USB_VENDOR_ID = "03eb"
SERVO_USB_KBD_DEV_ID = ATMEL_USB_VENDOR_ID + ":2042"
def is_servo_usb_keyboard_present(host):
"""
Check if DUT can see the servo USB keyboard.
Run lsusb and look for USB devices with SERVO_USB_KBD_DEV_ID.
@param host: An Autotest host object
@return Boolean, True if the USB device is found. False otherwise.
"""
return host.run(
"lsusb -d " + SERVO_USB_KBD_DEV_ID, ignore_status=True).exit_status == 0
def is_servo_usb_wake_capable(host):
"""
Check if servo USB keyboard can wake the DUT from S3/S0ix.
Run lsusb -vv -d SERVO_USB_KBD_DEV_ID and check if the keyboard has wake
capability.
@param host: An Autotest host object
@return Boolean, True if the USB device is found and has wake capability.
False otherwise.
"""
# If the DUT cannot see the USB device return False.
if not is_servo_usb_keyboard_present(host):
return False
result = host.run(
"lsusb -vv -d " + SERVO_USB_KBD_DEV_ID,
ignore_status=True).stdout.strip()
# lsusb should print "Remote Wakeup" if the device has remote wake
# capability.
return "Remote Wakeup" in result