Lines Matching +full:num +full:- +full:addresses

1 // SPDX-License-Identifier: GPL-2.0-or-later
17 #include <media/v4l2-common.h>
28 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_slave_did_write_ack()
35 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_slave_did_read_ack()
58 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_is_read_busy()
81 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_is_write_done()
104 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_is_busy()
130 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_sendbytes()
131 u8 i2c_speed = dev->board.i2c_clk_divider; in i2c_sendbytes()
137 if (((dev->board.tuner_type == TUNER_XC5000) || in i2c_sendbytes()
138 (dev->board.tuner_type == TUNER_XC5000C)) && in i2c_sendbytes()
139 (dev->board.tuner_addr == msg->addr)) { in i2c_sendbytes()
145 if (msg->len == 64) in i2c_sendbytes()
153 /* Hardware needs 8 bit addresses */ in i2c_sendbytes()
154 au0828_write(dev, AU0828_I2C_DEST_ADDR_203, msg->addr << 1); in i2c_sendbytes()
156 dprintk(4, "SEND: %02x\n", msg->addr); in i2c_sendbytes()
159 if (msg->len == 0) { in i2c_sendbytes()
170 return -EIO; in i2c_sendbytes()
173 return -EIO; in i2c_sendbytes()
178 for (i = 0; i < msg->len;) { in i2c_sendbytes()
180 dprintk(4, " %02x\n", msg->buf[i]); in i2c_sendbytes()
182 au0828_write(dev, AU0828_I2C_WRITE_FIFO_205, msg->buf[i]); in i2c_sendbytes()
187 if ((strobe >= 4) || (i >= msg->len)) { in i2c_sendbytes()
190 if (i < msg->len) in i2c_sendbytes()
202 return -EIO; in i2c_sendbytes()
208 return -EIO; in i2c_sendbytes()
212 return msg->len; in i2c_sendbytes()
219 struct au0828_dev *dev = i2c_adap->algo_data; in i2c_readbytes()
220 u8 i2c_speed = dev->board.i2c_clk_divider; in i2c_readbytes()
231 if (((dev->board.tuner_type == TUNER_XC5000) || in i2c_readbytes()
232 (dev->board.tuner_type == TUNER_XC5000C)) && in i2c_readbytes()
233 (dev->board.tuner_addr == msg->addr)) in i2c_readbytes()
239 /* Hardware needs 8 bit addresses */ in i2c_readbytes()
240 au0828_write(dev, AU0828_I2C_DEST_ADDR_203, msg->addr << 1); in i2c_readbytes()
245 if (msg->len == 0) { in i2c_readbytes()
250 return -EIO; in i2c_readbytes()
254 for (i = 0; i < msg->len;) { in i2c_readbytes()
258 if (i < msg->len) in i2c_readbytes()
267 return -EIO; in i2c_readbytes()
269 msg->buf[i-1] = au0828_read(dev, AU0828_I2C_READ_FIFO_209) & in i2c_readbytes()
272 dprintk(4, " %02x\n", msg->buf[i-1]); in i2c_readbytes()
275 return -EIO; in i2c_readbytes()
279 return msg->len; in i2c_readbytes()
283 struct i2c_msg *msgs, int num) in i2c_xfer() argument
287 dprintk(4, "%s(num = %d)\n", __func__, num); in i2c_xfer()
289 for (i = 0; i < num; i++) { in i2c_xfer()
290 dprintk(4, "%s(num = %d) addr = 0x%02x len = 0x%x\n", in i2c_xfer()
291 __func__, num, msgs[i].addr, msgs[i].len); in i2c_xfer()
295 } else if (i + 1 < num && (msgs[i + 1].flags & I2C_M_RD) && in i2c_xfer()
311 return num; in i2c_xfer()
327 /* ----------------------------------------------------------------------- */
351 c->addr = i; in do_i2c_scan()
365 dev->i2c_adap = au0828_i2c_adap_template; in au0828_i2c_register()
366 dev->i2c_algo = au0828_i2c_algo_template; in au0828_i2c_register()
367 dev->i2c_client = au0828_i2c_client_template; in au0828_i2c_register()
369 dev->i2c_adap.dev.parent = &dev->usbdev->dev; in au0828_i2c_register()
371 strscpy(dev->i2c_adap.name, KBUILD_MODNAME, in au0828_i2c_register()
372 sizeof(dev->i2c_adap.name)); in au0828_i2c_register()
374 dev->i2c_adap.algo = &dev->i2c_algo; in au0828_i2c_register()
375 dev->i2c_adap.algo_data = dev; in au0828_i2c_register()
377 i2c_set_adapdata(&dev->i2c_adap, &dev->v4l2_dev); in au0828_i2c_register()
379 i2c_set_adapdata(&dev->i2c_adap, dev); in au0828_i2c_register()
381 i2c_add_adapter(&dev->i2c_adap); in au0828_i2c_register()
383 dev->i2c_client.adapter = &dev->i2c_adap; in au0828_i2c_register()
385 if (0 == dev->i2c_rc) { in au0828_i2c_register()
388 do_i2c_scan(KBUILD_MODNAME, &dev->i2c_client); in au0828_i2c_register()
392 return dev->i2c_rc; in au0828_i2c_register()
397 i2c_del_adapter(&dev->i2c_adap); in au0828_i2c_unregister()