Lines Matching refs:xfer
179 static unsigned int cgbc_i2c_xfer_to_cmd(struct cgbc_i2c_transfer xfer, u8 *cmd) in cgbc_i2c_xfer_to_cmd() argument
183 cmd[i++] = CGBC_I2C_CMD_START | xfer.bus_id; in cgbc_i2c_xfer_to_cmd()
185 cmd[i] = (xfer.start) ? CGBC_I2C_START : 0x00; in cgbc_i2c_xfer_to_cmd()
186 if (xfer.stop) in cgbc_i2c_xfer_to_cmd()
188 cmd[i++] |= (xfer.start) ? xfer.write + 1 : xfer.write; in cgbc_i2c_xfer_to_cmd()
190 cmd[i++] = (xfer.last_ack) ? (xfer.read | CGBC_I2C_LAST_ACK) : xfer.read; in cgbc_i2c_xfer_to_cmd()
192 if (xfer.start) in cgbc_i2c_xfer_to_cmd()
193 cmd[i++] = xfer.addr; in cgbc_i2c_xfer_to_cmd()
195 if (xfer.write > 0) in cgbc_i2c_xfer_to_cmd()
196 memcpy(&cmd[i], &xfer.data, xfer.write); in cgbc_i2c_xfer_to_cmd()
198 return i + xfer.write; in cgbc_i2c_xfer_to_cmd()
212 struct cgbc_i2c_transfer xfer = { in cgbc_i2c_xfer_msg() local
229 xfer.start = true; in cgbc_i2c_xfer_msg()
242 xfer.stop = true; in cgbc_i2c_xfer_msg()
246 xfer.write = len; in cgbc_i2c_xfer_msg()
247 xfer.read = 0; in cgbc_i2c_xfer_msg()
250 xfer.data[i] = msg->buf[i2c->pos + i]; in cgbc_i2c_xfer_msg()
252 cmd_len = cgbc_i2c_xfer_to_cmd(xfer, &cmd[0]); in cgbc_i2c_xfer_msg()
258 xfer.write = 0; in cgbc_i2c_xfer_msg()
259 xfer.read = len; in cgbc_i2c_xfer_msg()
262 xfer.read |= CGBC_I2C_LAST_ACK; in cgbc_i2c_xfer_msg()
264 cmd_len = cgbc_i2c_xfer_to_cmd(xfer, &cmd[0]); in cgbc_i2c_xfer_msg()
334 .xfer = cgbc_i2c_xfer,