diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-03-18 15:06:50 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-06-03 14:03:02 +0200 |
commit | 06599472ec40efef3de7cb2bc98d61e8d4b18a63 (patch) | |
tree | 284d2baa0ab63e29a7c0e70adca2d80602a7e16e /tests/pca9552-test.c | |
parent | 8130dbcbcda15b3fe5ae1da76bf48868c4ce90fb (diff) |
libqos: i2c: move address into QI2CDevice
This removes the hardcoded I2C address from the tests. The address
is passed via QOSGraphEdgeOptions to i2c_device_create and stored
in the QI2CDevice.
The i2c_send and i2c_recv functions, along with their wrappers,
therefore, can be changed to take a QI2CDevice rather than an
adapter/address pair.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tests/pca9552-test.c')
-rw-r--r-- | tests/pca9552-test.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/tests/pca9552-test.c b/tests/pca9552-test.c index 0598d0b1eb..4b800d3c3e 100644 --- a/tests/pca9552-test.c +++ b/tests/pca9552-test.c @@ -19,65 +19,61 @@ static void pca9552_init(QI2CDevice *i2cdev) { - I2CAdapter *i2c = i2cdev->bus; - /* Switch on LEDs 0 and 12 */ - i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0, 0x54); - i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS3, 0x54); + i2c_set8(i2cdev, PCA9552_LS0, 0x54); + i2c_set8(i2cdev, PCA9552_LS3, 0x54); } static void receive_autoinc(void *obj, void *data, QGuestAllocator *alloc) { QI2CDevice *i2cdev = (QI2CDevice *)obj; - I2CAdapter *i2c = i2cdev->bus; uint8_t resp; uint8_t reg = PCA9552_LS0 | PCA9552_AUTOINC; pca9552_init(i2cdev); - i2c_send(i2c, PCA9552_TEST_ADDR, ®, 1); + i2c_send(i2cdev, ®, 1); /* PCA9552_LS0 */ - i2c_recv(i2c, PCA9552_TEST_ADDR, &resp, 1); + i2c_recv(i2cdev, &resp, 1); g_assert_cmphex(resp, ==, 0x54); /* PCA9552_LS1 */ - i2c_recv(i2c, PCA9552_TEST_ADDR, &resp, 1); + i2c_recv(i2cdev, &resp, 1); g_assert_cmphex(resp, ==, 0x55); /* PCA9552_LS2 */ - i2c_recv(i2c, PCA9552_TEST_ADDR, &resp, 1); + i2c_recv(i2cdev, &resp, 1); g_assert_cmphex(resp, ==, 0x55); /* PCA9552_LS3 */ - i2c_recv(i2c, PCA9552_TEST_ADDR, &resp, 1); + i2c_recv(i2cdev, &resp, 1); g_assert_cmphex(resp, ==, 0x54); } static void send_and_receive(void *obj, void *data, QGuestAllocator *alloc) { QI2CDevice *i2cdev = (QI2CDevice *)obj; - I2CAdapter *i2c = i2cdev->bus; uint8_t value; - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0); + value = i2c_get8(i2cdev, PCA9552_LS0); g_assert_cmphex(value, ==, 0x55); - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_INPUT0); + value = i2c_get8(i2cdev, PCA9552_INPUT0); g_assert_cmphex(value, ==, 0x0); pca9552_init(i2cdev); - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0); + value = i2c_get8(i2cdev, PCA9552_LS0); g_assert_cmphex(value, ==, 0x54); - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_INPUT0); + value = i2c_get8(i2cdev, PCA9552_INPUT0); g_assert_cmphex(value, ==, 0x01); - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_LS3); + value = i2c_get8(i2cdev, PCA9552_LS3); g_assert_cmphex(value, ==, 0x54); - value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_INPUT1); + value = i2c_get8(i2cdev, PCA9552_INPUT1); g_assert_cmphex(value, ==, 0x10); } @@ -86,6 +82,7 @@ static void pca9552_register_nodes(void) QOSGraphEdgeOptions opts = { .extra_device_opts = "address=0x60" }; + add_qi2c_address(&opts, &(QI2CAddress) { 0x60 }); qos_node_create_driver("pca9552", i2c_device_create); qos_node_consumes("pca9552", "i2c-bus", &opts); |