projects
/
sdk
/
emulator
/
qemu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tizen 2.0 Release
[sdk/emulator/qemu.git]
/
hw
/
bitbang_i2c.c
diff --git
a/hw/bitbang_i2c.c
b/hw/bitbang_i2c.c
index
4ee99a1
..
431359d
100644
(file)
--- a/
hw/bitbang_i2c.c
+++ b/
hw/bitbang_i2c.c
@@
-4,7
+4,7
@@
*
* Copyright (c) 2008 Jan Kiszka
*
*
* Copyright (c) 2008 Jan Kiszka
*
- * This code is licen
c
ed under the GNU GPL v2.
+ * This code is licen
s
ed under the GNU GPL v2.
*/
#include "hw.h"
#include "bitbang_i2c.h"
*/
#include "hw.h"
#include "bitbang_i2c.h"
@@
-38,7
+38,8
@@
typedef enum bitbang_i2c_state {
RECEIVING_BIT2,
RECEIVING_BIT1,
RECEIVING_BIT0,
RECEIVING_BIT2,
RECEIVING_BIT1,
RECEIVING_BIT0,
- SENDING_ACK
+ SENDING_ACK,
+ SENT_NACK
} bitbang_i2c_state;
struct bitbang_i2c_interface {
} bitbang_i2c_state;
struct bitbang_i2c_interface {
@@
-115,6
+116,7
@@
int bitbang_i2c_set(bitbang_i2c_interface *i2c, int line, int level)
}
switch (i2c->state) {
case STOPPED:
}
switch (i2c->state) {
case STOPPED:
+ case SENT_NACK:
return bitbang_i2c_ret(i2c, 1);
case SENDING_BIT7 ... SENDING_BIT0:
return bitbang_i2c_ret(i2c, 1);
case SENDING_BIT7 ... SENDING_BIT0:
@@
-155,6
+157,7
@@
int bitbang_i2c_set(bitbang_i2c_interface *i2c, int line, int level)
i2c->state = RECEIVING_BIT7;
if (data != 0) {
DPRINTF("NACKED\n");
i2c->state = RECEIVING_BIT7;
if (data != 0) {
DPRINTF("NACKED\n");
+ i2c->state = SENT_NACK;
i2c_nack(i2c->bus);
} else {
DPRINTF("ACKED\n");
i2c_nack(i2c->bus);
} else {
DPRINTF("ACKED\n");
@@
-168,7
+171,7
@@
bitbang_i2c_interface *bitbang_i2c_init(i2c_bus *bus)
{
bitbang_i2c_interface *s;
{
bitbang_i2c_interface *s;
- s =
qemu_mallocz
(sizeof(bitbang_i2c_interface));
+ s =
g_malloc0
(sizeof(bitbang_i2c_interface));
s->bus = bus;
s->last_data = 1;
s->bus = bus;
s->last_data = 1;