libqos: move common i2c code to libqos
[qemu/ar7.git] / tests / libqos / i2c.h
bloba4621145975cbde3730eef1d23b0a236c9c3fd3e
1 /*
2 * I2C libqos
4 * Copyright (c) 2012 Andreas Färber
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 */
9 #ifndef LIBQOS_I2C_H
10 #define LIBQOS_I2C_H
12 #include "libqtest.h"
14 typedef struct I2CAdapter I2CAdapter;
15 struct I2CAdapter {
16 void (*send)(I2CAdapter *adapter, uint8_t addr,
17 const uint8_t *buf, uint16_t len);
18 void (*recv)(I2CAdapter *adapter, uint8_t addr,
19 uint8_t *buf, uint16_t len);
21 QTestState *qts;
24 #define OMAP2_I2C_1_BASE 0x48070000
26 void i2c_send(I2CAdapter *i2c, uint8_t addr,
27 const uint8_t *buf, uint16_t len);
28 void i2c_recv(I2CAdapter *i2c, uint8_t addr,
29 uint8_t *buf, uint16_t len);
31 void i2c_read_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
32 uint8_t *buf, uint16_t len);
33 void i2c_write_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
34 const uint8_t *buf, uint16_t len);
35 uint8_t i2c_get8(I2CAdapter *i2c, uint8_t addr, uint8_t reg);
36 uint16_t i2c_get16(I2CAdapter *i2c, uint8_t addr, uint8_t reg);
37 void i2c_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
38 uint8_t value);
39 void i2c_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
40 uint16_t value);
42 /* libi2c-omap.c */
43 I2CAdapter *omap_i2c_create(QTestState *qts, uint64_t addr);
45 /* libi2c-imx.c */
46 I2CAdapter *imx_i2c_create(QTestState *qts, uint64_t addr);
48 #endif