2 * QTest testcase for the TMP105 temperature sensor
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.
10 #include "libqos/i2c.h"
11 #include "hw/misc/tmp105_regs.h"
15 #define OMAP2_I2C_1_BASE 0x48070000
17 #define N8X0_ADDR 0x48
19 static I2CAdapter
*i2c
;
22 static void send_and_receive(void)
27 cmd
[0] = TMP105_REG_TEMPERATURE
;
28 i2c_send(i2c
, addr
, cmd
, 1);
29 i2c_recv(i2c
, addr
, resp
, 2);
30 g_assert_cmpuint(((uint16_t)resp
[0] << 8) | resp
[1], ==, 0);
32 cmd
[0] = TMP105_REG_CONFIG
;
33 cmd
[1] = 0x0; /* matches the reset value */
34 i2c_send(i2c
, addr
, cmd
, 2);
35 i2c_recv(i2c
, addr
, resp
, 1);
36 g_assert_cmphex(resp
[0], ==, cmd
[1]);
38 cmd
[0] = TMP105_REG_T_LOW
;
41 i2c_send(i2c
, addr
, cmd
, 3);
42 i2c_recv(i2c
, addr
, resp
, 2);
43 g_assert_cmphex(resp
[0], ==, cmd
[1]);
44 g_assert_cmphex(resp
[1], ==, cmd
[2]);
46 cmd
[0] = TMP105_REG_T_HIGH
;
49 i2c_send(i2c
, addr
, cmd
, 3);
50 i2c_recv(i2c
, addr
, resp
, 2);
51 g_assert_cmphex(resp
[0], ==, cmd
[1]);
52 g_assert_cmphex(resp
[1], ==, cmd
[2]);
55 int main(int argc
, char **argv
)
60 g_test_init(&argc
, &argv
, NULL
);
62 s
= qtest_start("-display none -machine n800");
63 i2c
= omap_i2c_create(OMAP2_I2C_1_BASE
);
66 qtest_add_func("/tmp105/tx-rx", send_and_receive
);