Lines Matching refs:i2c
119 struct cgbc_i2c_data *i2c = i2c_get_adapdata(adap); in cgbc_i2c_get_status() local
120 struct cgbc_device_data *cgbc = i2c->cgbc; in cgbc_i2c_get_status()
136 struct cgbc_i2c_data *i2c = i2c_get_adapdata(adap); in cgbc_i2c_set_frequency() local
137 struct cgbc_device_data *cgbc = i2c->cgbc; in cgbc_i2c_set_frequency()
143 dev_info(i2c->dev, "invalid frequency %u, using default\n", bus_frequency); in cgbc_i2c_set_frequency()
152 return dev_err_probe(i2c->dev, ret, in cgbc_i2c_set_frequency()
160 return dev_err_probe(i2c->dev, ret, in cgbc_i2c_set_frequency()
165 dev_dbg(i2c->dev, "%s is running at %d Hz\n", adap->name, bus_frequency); in cgbc_i2c_set_frequency()
204 struct cgbc_i2c_data *i2c = i2c_get_adapdata(adap); in cgbc_i2c_xfer_msg() local
205 struct cgbc_device_data *cgbc = i2c->cgbc; in cgbc_i2c_xfer_msg()
206 struct i2c_msg *msg = i2c->msg; in cgbc_i2c_xfer_msg()
217 if (i2c->state == CGBC_I2C_STATE_DONE) in cgbc_i2c_xfer_msg()
227 if (i2c->state == CGBC_I2C_STATE_INIT || in cgbc_i2c_xfer_msg()
228 (i2c->state == CGBC_I2C_STATE_WRITE && msg->flags & I2C_M_RD)) in cgbc_i2c_xfer_msg()
231 i2c->state = (msg->flags & I2C_M_RD) ? CGBC_I2C_STATE_READ : CGBC_I2C_STATE_WRITE; in cgbc_i2c_xfer_msg()
233 max_len = (i2c->state == CGBC_I2C_STATE_READ) ? in cgbc_i2c_xfer_msg()
236 if (msg->len - i2c->pos > max_len) { in cgbc_i2c_xfer_msg()
239 len = msg->len - i2c->pos; in cgbc_i2c_xfer_msg()
241 if (i2c->nmsgs == 1) in cgbc_i2c_xfer_msg()
245 if (i2c->state == CGBC_I2C_STATE_WRITE) { in cgbc_i2c_xfer_msg()
250 xfer.data[i] = msg->buf[i2c->pos + i]; in cgbc_i2c_xfer_msg()
257 } else if (i2c->state == CGBC_I2C_STATE_READ) { in cgbc_i2c_xfer_msg()
261 if (i2c->nmsgs > 1 || msg->len - i2c->pos > max_len) in cgbc_i2c_xfer_msg()
277 msg->buf + i2c->pos, len, NULL); in cgbc_i2c_xfer_msg()
282 if (len == (msg->len - i2c->pos)) { in cgbc_i2c_xfer_msg()
283 i2c->msg++; in cgbc_i2c_xfer_msg()
284 i2c->nmsgs--; in cgbc_i2c_xfer_msg()
285 i2c->pos = 0; in cgbc_i2c_xfer_msg()
287 i2c->pos += len; in cgbc_i2c_xfer_msg()
290 if (i2c->nmsgs == 0) in cgbc_i2c_xfer_msg()
291 i2c->state = CGBC_I2C_STATE_DONE; in cgbc_i2c_xfer_msg()
296 i2c->state = CGBC_I2C_STATE_ERROR; in cgbc_i2c_xfer_msg()
303 struct cgbc_i2c_data *i2c = i2c_get_adapdata(adap); in cgbc_i2c_xfer() local
307 i2c->state = CGBC_I2C_STATE_INIT; in cgbc_i2c_xfer()
308 i2c->msg = msgs; in cgbc_i2c_xfer()
309 i2c->nmsgs = num; in cgbc_i2c_xfer()
310 i2c->pos = 0; in cgbc_i2c_xfer()
314 if (i2c->state == CGBC_I2C_STATE_DONE) in cgbc_i2c_xfer()
317 if (i2c->state == CGBC_I2C_STATE_ERROR) in cgbc_i2c_xfer()
324 i2c->state = CGBC_I2C_STATE_ERROR; in cgbc_i2c_xfer()
365 struct cgbc_i2c_data *i2c; in cgbc_i2c_probe() local
368 i2c = devm_kzalloc(&pdev->dev, sizeof(*i2c), GFP_KERNEL); in cgbc_i2c_probe()
369 if (!i2c) in cgbc_i2c_probe()
372 i2c->cgbc = cgbc; in cgbc_i2c_probe()
373 i2c->dev = &pdev->dev; in cgbc_i2c_probe()
374 i2c->adap = cgbc_i2c_adapter[pdev->id]; in cgbc_i2c_probe()
375 i2c->adap.dev.parent = i2c->dev; in cgbc_i2c_probe()
376 i2c_set_adapdata(&i2c->adap, i2c); in cgbc_i2c_probe()
377 platform_set_drvdata(pdev, i2c); in cgbc_i2c_probe()
379 ret = cgbc_i2c_set_frequency(&i2c->adap, I2C_MAX_STANDARD_MODE_FREQ); in cgbc_i2c_probe()
383 return i2c_add_numbered_adapter(&i2c->adap); in cgbc_i2c_probe()
388 struct cgbc_i2c_data *i2c = platform_get_drvdata(pdev); in cgbc_i2c_remove() local
390 i2c_del_adapter(&i2c->adap); in cgbc_i2c_remove()