Lines Matching defs:itv

163 static int ivtv_i2c_new_ir(struct ivtv *itv, u32 hw, const char *type, u8 addr)
166 struct i2c_adapter *adap = &itv->i2c_adap;
167 struct IR_i2c_init_data *init_data = &itv->ir_i2c_init_data;
171 if (itv->hw_flags & IVTV_HW_IR_ANY)
188 init_data->name = itv->card_name;
196 init_data->name = itv->card_name;
200 init_data->name = itv->card_name;
216 void ivtv_i2c_new_ir_legacy(struct ivtv *itv)
238 i2c_new_scanned_device(&itv->i2c_adap, &info, addr_list, NULL);
241 int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
243 struct i2c_adapter *adap = &itv->i2c_adap;
256 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev, adap, type, 0,
257 itv->card_i2c->radio);
260 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev, adap, type, 0,
261 itv->card_i2c->demod);
264 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev, adap, type, 0,
265 itv->card_i2c->tv);
272 return ivtv_i2c_new_ir(itv, hw, type, hw_addrs[idx]);
280 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev,
291 pdata.pvr150_workaround = itv->pvr150_workaround;
292 sd = v4l2_i2c_new_subdev_board(&itv->v4l2_dev, adap,
295 sd = v4l2_i2c_new_subdev(&itv->v4l2_dev,
303 struct v4l2_subdev *ivtv_find_hw(struct ivtv *itv, u32 hw)
308 spin_lock(&itv->v4l2_dev.lock);
309 v4l2_device_for_each_subdev(sd, &itv->v4l2_dev) {
315 spin_unlock(&itv->v4l2_dev.lock);
320 static void ivtv_setscl(struct ivtv *itv, int state)
328 static void ivtv_setsda(struct ivtv *itv, int state)
336 static int ivtv_getscl(struct ivtv *itv)
342 static int ivtv_getsda(struct ivtv *itv)
348 static void ivtv_scldelay(struct ivtv *itv)
353 ivtv_getscl(itv);
357 static int ivtv_waitscl(struct ivtv *itv, int val)
361 ivtv_scldelay(itv);
363 if (ivtv_getscl(itv) == val)
370 static int ivtv_waitsda(struct ivtv *itv, int val)
374 ivtv_scldelay(itv);
376 if (ivtv_getsda(itv) == val)
383 static int ivtv_ack(struct ivtv *itv)
387 if (ivtv_getscl(itv) == 1) {
389 ivtv_setscl(itv, 0);
390 if (!ivtv_waitscl(itv, 0)) {
395 ivtv_setsda(itv, 1);
396 ivtv_scldelay(itv);
397 ivtv_setscl(itv, 1);
398 if (!ivtv_waitsda(itv, 0)) {
402 ivtv_setscl(itv, 0);
403 if (!ivtv_waitscl(itv, 0)) {
411 static int ivtv_sendbyte(struct ivtv *itv, unsigned char byte)
417 ivtv_setscl(itv, 0);
418 if (!ivtv_waitscl(itv, 0)) {
423 ivtv_setsda(itv, bit);
424 if (!ivtv_waitsda(itv, bit)) {
428 ivtv_setscl(itv, 1);
429 if (!ivtv_waitscl(itv, 1)) {
434 ivtv_setscl(itv, 0);
435 if (!ivtv_waitscl(itv, 0)) {
439 return ivtv_ack(itv);
444 static int ivtv_readbyte(struct ivtv *itv, unsigned char *byte, int nack)
450 ivtv_setsda(itv, 1);
451 ivtv_scldelay(itv);
453 ivtv_setscl(itv, 0);
454 ivtv_scldelay(itv);
455 ivtv_setscl(itv, 1);
456 if (!ivtv_waitscl(itv, 1)) {
460 *byte = ((*byte)<<1)|ivtv_getsda(itv);
462 ivtv_setscl(itv, 0);
463 ivtv_scldelay(itv);
464 ivtv_setsda(itv, nack);
465 ivtv_scldelay(itv);
466 ivtv_setscl(itv, 1);
467 ivtv_scldelay(itv);
468 ivtv_setscl(itv, 0);
469 ivtv_scldelay(itv);
476 static int ivtv_start(struct ivtv *itv)
480 sda = ivtv_getsda(itv);
483 ivtv_setsda(itv, 1);
484 if (!ivtv_waitsda(itv, 1)) {
489 if (ivtv_getscl(itv) != 1) {
490 ivtv_setscl(itv, 1);
491 if (!ivtv_waitscl(itv, 1)) {
496 ivtv_setsda(itv, 0);
497 ivtv_scldelay(itv);
502 static int ivtv_stop(struct ivtv *itv)
506 if (ivtv_getscl(itv) != 0) {
508 ivtv_setscl(itv, 0);
509 if (!ivtv_waitscl(itv, 0)) {
513 ivtv_setsda(itv, 0);
514 ivtv_scldelay(itv);
515 ivtv_setscl(itv, 1);
516 if (!ivtv_waitscl(itv, 1)) {
520 ivtv_scldelay(itv);
521 ivtv_setsda(itv, 1);
522 if (!ivtv_waitsda(itv, 1)) {
525 ivtv_setscl(itv, 0);
526 ivtv_scldelay(itv);
527 ivtv_setscl(itv, 1);
528 ivtv_scldelay(itv);
529 ivtv_setsda(itv, 1);
531 ivtv_waitsda(itv, 1);
539 static int ivtv_write(struct ivtv *itv, unsigned char addr, unsigned char *data, u32 len, int do_stop)
545 ret = ivtv_start(itv);
548 ret = ivtv_sendbyte(itv, addr<<1);
550 ret = ivtv_sendbyte(itv, data[i]);
553 ivtv_stop(itv);
562 static int ivtv_read(struct ivtv *itv, unsigned char addr, unsigned char *data, u32 len)
568 ret = ivtv_start(itv);
570 ret = ivtv_sendbyte(itv, (addr << 1) | 1);
572 ret = ivtv_readbyte(itv, &data[i], i == len - 1);
574 ivtv_stop(itv);
587 struct ivtv *itv = to_ivtv(v4l2_dev);
591 mutex_lock(&itv->i2c_bus_lock);
594 retval = ivtv_read(itv, msgs[i].addr, msgs[i].buf, msgs[i].len);
599 retval = ivtv_write(itv, msgs[i].addr, msgs[i].buf, msgs[i].len, stop);
602 mutex_unlock(&itv->i2c_bus_lock);
627 struct ivtv *itv = (struct ivtv *)data;
630 itv->i2c_state |= 0x01;
632 itv->i2c_state &= ~0x01;
636 write_reg(~itv->i2c_state, IVTV_REG_I2C_SETSCL_OFFSET);
641 struct ivtv *itv = (struct ivtv *)data;
644 itv->i2c_state |= 0x01;
646 itv->i2c_state &= ~0x01;
650 write_reg(~itv->i2c_state, IVTV_REG_I2C_SETSDA_OFFSET);
655 struct ivtv *itv = (struct ivtv *)data;
662 struct ivtv *itv = (struct ivtv *)data;
691 int init_ivtv_i2c(struct ivtv *itv)
704 if (itv->options.newi2c > 0) {
705 itv->i2c_adap = ivtv_i2c_adap_hw_template;
707 itv->i2c_adap = ivtv_i2c_adap_template;
708 itv->i2c_algo = ivtv_i2c_algo_template;
710 itv->i2c_algo.udelay = itv->options.i2c_clock_period / 2;
711 itv->i2c_algo.data = itv;
712 itv->i2c_adap.algo_data = &itv->i2c_algo;
714 sprintf(itv->i2c_adap.name + strlen(itv->i2c_adap.name), " #%d",
715 itv->instance);
716 i2c_set_adapdata(&itv->i2c_adap, &itv->v4l2_dev);
718 itv->i2c_client = ivtv_i2c_client_template;
719 itv->i2c_client.adapter = &itv->i2c_adap;
720 itv->i2c_adap.dev.parent = &itv->pdev->dev;
723 ivtv_setscl(itv, 1);
724 ivtv_setsda(itv, 1);
726 if (itv->options.newi2c > 0)
727 retval = i2c_add_adapter(&itv->i2c_adap);
729 retval = i2c_bit_add_bus(&itv->i2c_adap);
734 void exit_ivtv_i2c(struct ivtv *itv)
738 i2c_del_adapter(&itv->i2c_adap);