Lines Matching defs:fc

11 static int flexcop_i2c_operation(struct flexcop_device *fc,
20 fc->write_ibi_reg(fc, tw_sm_c_100, ibi_zero);
21 fc->write_ibi_reg(fc, tw_sm_c_100, *r100); /* initiating i2c operation */
24 r = fc->read_ibi_reg(fc, tw_sm_c_100);
59 if (i2c->fc->dev_type == FC_SKY_REV27)
62 ret = flexcop_i2c_operation(i2c->fc, &r100);
66 ret = flexcop_i2c_operation(i2c->fc, &r100);
76 r104 = i2c->fc->read_ibi_reg(i2c->fc, tw_sm_c_104);
87 static int flexcop_i2c_write4(struct flexcop_device *fc,
103 fc->write_ibi_reg(fc, tw_sm_c_104, r104);
104 return flexcop_i2c_operation(fc, &r100);
147 ret = flexcop_i2c_write4(i2c->fc, r100, p);
180 if (mutex_lock_interruptible(&i2c->fc->i2c_mutex))
186 ret = i2c->fc->i2c_request(i2c, FC_READ, msgs[i].addr,
191 ret = i2c->fc->i2c_request(i2c, FC_WRITE, msgs[i].addr,
200 mutex_unlock(&i2c->fc->i2c_mutex);
217 int flexcop_i2c_init(struct flexcop_device *fc)
220 mutex_init(&fc->i2c_mutex);
222 fc->fc_i2c_adap[0].fc = fc;
223 fc->fc_i2c_adap[1].fc = fc;
224 fc->fc_i2c_adap[2].fc = fc;
225 fc->fc_i2c_adap[0].port = FC_I2C_PORT_DEMOD;
226 fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
227 fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
229 strscpy(fc->fc_i2c_adap[0].i2c_adap.name, "B2C2 FlexCop I2C to demod",
230 sizeof(fc->fc_i2c_adap[0].i2c_adap.name));
231 strscpy(fc->fc_i2c_adap[1].i2c_adap.name, "B2C2 FlexCop I2C to eeprom",
232 sizeof(fc->fc_i2c_adap[1].i2c_adap.name));
233 strscpy(fc->fc_i2c_adap[2].i2c_adap.name, "B2C2 FlexCop I2C to tuner",
234 sizeof(fc->fc_i2c_adap[2].i2c_adap.name));
236 i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]);
237 i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]);
238 i2c_set_adapdata(&fc->fc_i2c_adap[2].i2c_adap, &fc->fc_i2c_adap[2]);
240 fc->fc_i2c_adap[0].i2c_adap.algo =
241 fc->fc_i2c_adap[1].i2c_adap.algo =
242 fc->fc_i2c_adap[2].i2c_adap.algo = &flexcop_algo;
243 fc->fc_i2c_adap[0].i2c_adap.algo_data =
244 fc->fc_i2c_adap[1].i2c_adap.algo_data =
245 fc->fc_i2c_adap[2].i2c_adap.algo_data = NULL;
246 fc->fc_i2c_adap[0].i2c_adap.dev.parent =
247 fc->fc_i2c_adap[1].i2c_adap.dev.parent =
248 fc->fc_i2c_adap[2].i2c_adap.dev.parent = fc->dev;
250 ret = i2c_add_adapter(&fc->fc_i2c_adap[0].i2c_adap);
254 ret = i2c_add_adapter(&fc->fc_i2c_adap[1].i2c_adap);
258 ret = i2c_add_adapter(&fc->fc_i2c_adap[2].i2c_adap);
262 fc->init_state |= FC_STATE_I2C_INIT;
266 i2c_del_adapter(&fc->fc_i2c_adap[1].i2c_adap);
268 i2c_del_adapter(&fc->fc_i2c_adap[0].i2c_adap);
272 void flexcop_i2c_exit(struct flexcop_device *fc)
274 if (fc->init_state & FC_STATE_I2C_INIT) {
275 i2c_del_adapter(&fc->fc_i2c_adap[2].i2c_adap);
276 i2c_del_adapter(&fc->fc_i2c_adap[1].i2c_adap);
277 i2c_del_adapter(&fc->fc_i2c_adap[0].i2c_adap);
279 fc->init_state &= ~FC_STATE_I2C_INIT;