38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
# Copyright (c) 2012 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.
|
|
|
|
|
|
# DESCRIPTION :
|
|
#
|
|
# This is a hardware test for Probing I2C device. The test uses i2cdetect
|
|
# utility to check if there's an device on specific bus.
|
|
|
|
|
|
import re
|
|
import logging
|
|
|
|
from autotest_lib.client.bin import test, utils
|
|
from autotest_lib.client.common_lib import error
|
|
|
|
|
|
def i2c_detect(bus, addr):
|
|
full_cmd = 'i2cdetect -y %d 0x%x 0x%x' % (bus, addr, addr)
|
|
result = utils.system_output(full_cmd)
|
|
logging.debug('Command: %s', full_cmd)
|
|
logging.debug('Result: %s', result)
|
|
return result
|
|
|
|
def i2c_probe(bus, addr):
|
|
response = i2c_detect(bus, addr)
|
|
return (re.search('^\d\d:\s+(UU|[0-9a-f]{2})', response, re.MULTILINE) is
|
|
not None)
|
|
|
|
class hardware_I2CProbe(test.test):
|
|
version = 1
|
|
|
|
def run_once(self, bus, addr):
|
|
if not i2c_probe(bus, addr):
|
|
raise error.TestError('No I2C device on bus %d addr 0x%x' %
|
|
(bus, addr))
|