Lines Matching +full:stop +full:- +full:ack

4  * Copyright (c) 2013 Jean-Christophe Dubois
36 qtest_writeb(s->parent.qts, s->addr + I2DR_ADDR, in imx_i2c_set_slave_addr()
59 qtest_writeb(i2c->qts, s->addr + I2CR_ADDR, data); in imx_i2c_send()
60 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
65 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
69 /* ack the interrupt */ in imx_i2c_send()
70 qtest_writeb(i2c->qts, s->addr + I2SR_ADDR, 0); in imx_i2c_send()
71 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
76 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
80 qtest_writeb(i2c->qts, s->addr + I2DR_ADDR, buf[size]); in imx_i2c_send()
81 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
85 /* ack the interrupt */ in imx_i2c_send()
86 qtest_writeb(i2c->qts, s->addr + I2SR_ADDR, 0); in imx_i2c_send()
87 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
95 qtest_writeb(i2c->qts, s->addr + I2CR_ADDR, data); in imx_i2c_send()
96 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_send()
119 qtest_writeb(i2c->qts, s->addr + I2CR_ADDR, data); in imx_i2c_recv()
120 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
125 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
129 /* ack the interrupt */ in imx_i2c_recv()
130 qtest_writeb(i2c->qts, s->addr + I2SR_ADDR, 0); in imx_i2c_recv()
131 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
136 /* if only one byte don't ack */ in imx_i2c_recv()
140 qtest_writeb(i2c->qts, s->addr + I2CR_ADDR, data); in imx_i2c_recv()
141 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
145 qtest_readb(i2c->qts, s->addr + I2DR_ADDR); in imx_i2c_recv()
146 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
149 /* ack the interrupt */ in imx_i2c_recv()
150 qtest_writeb(i2c->qts, s->addr + I2SR_ADDR, 0); in imx_i2c_recv()
151 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
156 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
159 if (size == (len - 1)) { in imx_i2c_recv()
160 /* stop the read transaction */ in imx_i2c_recv()
163 /* ack the data read */ in imx_i2c_recv()
166 qtest_writeb(i2c->qts, s->addr + I2CR_ADDR, data); in imx_i2c_recv()
169 buf[size] = qtest_readb(i2c->qts, s->addr + I2DR_ADDR); in imx_i2c_recv()
171 if (size != (len - 1)) { in imx_i2c_recv()
172 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
175 /* ack the interrupt */ in imx_i2c_recv()
176 qtest_writeb(i2c->qts, s->addr + I2SR_ADDR, 0); in imx_i2c_recv()
179 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
185 status = qtest_readb(i2c->qts, s->addr + I2SR_ADDR); in imx_i2c_recv()
192 if (!g_strcmp0(interface, "i2c-bus")) { in imx_i2c_get_driver()
193 return &s->parent; in imx_i2c_get_driver()
195 fprintf(stderr, "%s not present in imx-i2c\n", interface); in imx_i2c_get_driver()
201 s->addr = addr; in imx_i2c_init()
203 s->obj.get_driver = imx_i2c_get_driver; in imx_i2c_init()
205 s->parent.send = imx_i2c_send; in imx_i2c_init()
206 s->parent.recv = imx_i2c_recv; in imx_i2c_init()
207 s->parent.qts = qts; in imx_i2c_init()
213 qos_node_produces(TYPE_IMX_I2C, "i2c-bus"); in imx_i2c_register_nodes()