Am 14.12.2012 12:34, schrieb Andreas Färber: > Hello, > > Here's I2C support for the libqos framework and an OMAP driver. > The design was inspired by QEMU's i2c_bus and Linux' i2c_adapter. > Seems like low hanging fruit (while we're still waiting for PCI support :)), > hopefully motivating more people to contribute qtests for new devices or > bug fixes.
Ping! See below... > I found a bug in omap_i2c related to the SBD bit not getting cleared after > a single-byte read; the patch has been dropped as we were not able to verify > it against a TRM or hardware. The driver was therefore changed to ignore the > SBD bit, like the Linux driver does. > > I've split up the proposed tmp105.h header further to facilitate reuse of > the register enum in qtest. > > The test case itself initially fails; in lack of a v2 patch by Alex I'm > appending my own fix proposal that makes the test pass. > > I'm also appending a QOM'ish cleanup of the file, replacing the current API > with a QOM property. > To do a qom-set for testing a non-zero temperature reading, we'll need either > a canonical path for the TMP105 or Jason's qtest_qmp_resp() to iterate over > qom-list /machine/unassigned output looking for type "tmp105" with qom-get. [...] > v1 -> v2: > * Factor out libqos API for I2C and an OMAP driver > * Avoid casts by using uint8_t* in API, suggested by Blue > * Ignore SBD bit in omap_i2c driver > * Drop omap_i2c patch clearing SBD > * Incorporate Alex' tmp105.h patch > * Split out tmp105_regs.h for qtest, inspired by rtc-test > * Append replacement for Alex' fix > * Append QOM cleanup and turn setter function into QOM property [...] > Alex Horn (1): > tmp105: Create API for TMP105 temperature sensor This was applied by Anthony meanwhile. > Andreas Färber (6): > libqtest: Prepare I2C libqos > tmp105: Split out I2C message constants from header > tests: Add tmp105 qtest test case > tmp105: Fix I2C protocol bug > tmp105: QOM'ify > tmp105: Add temperature QOM property These need to be rebased due to the header reorganization and gcov. Anyone any feedback, especially on the libqos part? Anthony? Stefan? Thanks, Andreas > hw/i2c.h | 3 - > hw/tmp105.c | 101 ++++++++++++++++++------------- > hw/tmp105.h | 47 +++++++++++++++ > hw/tmp105_regs.h | 50 ++++++++++++++++ > tests/Makefile | 3 + > tests/libi2c-omap.c | 166 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/libi2c.c | 22 +++++++ > tests/libi2c.h | 30 ++++++++++ > tests/tmp105-test.c | 76 +++++++++++++++++++++++ > 9 Dateien geändert, 453 Zeilen hinzugefügt(+), 45 Zeilen entfernt(-) > create mode 100644 hw/tmp105.h > create mode 100644 hw/tmp105_regs.h > create mode 100644 tests/libi2c-omap.c > create mode 100644 tests/libi2c.c > create mode 100644 tests/libi2c.h > create mode 100644 tests/tmp105-test.c