Lines Matching refs:i2c
81 static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd) in ddb_i2c_cmd() argument
83 struct ddb *dev = i2c->dev; in ddb_i2c_cmd()
87 i2c->done = 0; in ddb_i2c_cmd()
88 ddbwritel((adr << 9) | cmd, i2c->regs + I2C_COMMAND); in ddb_i2c_cmd()
89 stat = wait_event_timeout(i2c->wq, i2c->done == 1, HZ); in ddb_i2c_cmd()
99 val = ddbreadl(i2c->regs+I2C_COMMAND); in ddb_i2c_cmd()
108 struct ddb_i2c *i2c = (struct ddb_i2c *)i2c_get_adapdata(adapter); in ddb_i2c_master_xfer() local
109 struct ddb *dev = i2c->dev; in ddb_i2c_master_xfer()
117 memcpy_toio(dev->regs + I2C_TASKMEM_BASE + i2c->wbuf, in ddb_i2c_master_xfer()
120 i2c->regs+I2C_TASKLENGTH); in ddb_i2c_master_xfer()
121 if (!ddb_i2c_cmd(i2c, addr, 1)) { in ddb_i2c_master_xfer()
123 dev->regs + I2C_TASKMEM_BASE + i2c->rbuf, in ddb_i2c_master_xfer()
130 ddbcpyto(I2C_TASKMEM_BASE + i2c->wbuf, msg[0].buf, msg[0].len); in ddb_i2c_master_xfer()
131 ddbwritel(msg[0].len, i2c->regs + I2C_TASKLENGTH); in ddb_i2c_master_xfer()
132 if (!ddb_i2c_cmd(i2c, addr, 2)) in ddb_i2c_master_xfer()
136 ddbwritel(msg[0].len << 16, i2c->regs + I2C_TASKLENGTH); in ddb_i2c_master_xfer()
137 if (!ddb_i2c_cmd(i2c, addr, 3)) { in ddb_i2c_master_xfer()
139 I2C_TASKMEM_BASE + i2c->rbuf, msg[0].len); in ddb_i2c_master_xfer()
160 struct ddb_i2c *i2c; in ddb_i2c_release() local
164 i2c = &dev->i2c[i]; in ddb_i2c_release()
165 adap = &i2c->adap; in ddb_i2c_release()
173 struct ddb_i2c *i2c; in ddb_i2c_init() local
177 i2c = &dev->i2c[i]; in ddb_i2c_init()
178 i2c->dev = dev; in ddb_i2c_init()
179 i2c->nr = i; in ddb_i2c_init()
180 i2c->wbuf = i * (I2C_TASKMEM_SIZE / 4); in ddb_i2c_init()
181 i2c->rbuf = i2c->wbuf + (I2C_TASKMEM_SIZE / 8); in ddb_i2c_init()
182 i2c->regs = 0x80 + i * 0x20; in ddb_i2c_init()
183 ddbwritel(I2C_SPEED_100, i2c->regs + I2C_TIMING); in ddb_i2c_init()
184 ddbwritel((i2c->rbuf << 16) | i2c->wbuf, in ddb_i2c_init()
185 i2c->regs + I2C_TASKADDRESS); in ddb_i2c_init()
186 init_waitqueue_head(&i2c->wq); in ddb_i2c_init()
188 adap = &i2c->adap; in ddb_i2c_init()
189 i2c_set_adapdata(adap, i2c); in ddb_i2c_init()
199 adap->algo_data = (void *)i2c; in ddb_i2c_init()
207 i2c = &dev->i2c[j]; in ddb_i2c_init()
208 adap = &i2c->adap; in ddb_i2c_init()
575 struct i2c_adapter *i2c = &input->port->i2c->adap; in demod_attach_drxk() local
584 fe = input->fe = dvb_attach(drxk_attach, &config, i2c); in demod_attach_drxk()
597 struct i2c_adapter *i2c = &input->port->i2c->adap; in tuner_attach_tda18271() local
602 fe = dvb_attach(tda18271c2dd_attach, input->fe, i2c, 0x60); in tuner_attach_tda18271()
668 struct i2c_adapter *i2c = &input->port->i2c->adap; in demod_attach_stv0900() local
671 input->fe = dvb_attach(stv090x_attach, feconf, i2c, in demod_attach_stv0900()
678 if (!dvb_attach(lnbh24_attach, input->fe, i2c, 0, in demod_attach_stv0900()
689 struct i2c_adapter *i2c = &input->port->i2c->adap; in tuner_attach_stv6110() local
695 ctl = dvb_attach(stv6110x_attach, input->fe, tunerconf, i2c); in tuner_attach_stv6110()
1057 port->en = cxd2099_attach(&cxd_cfg, port, &port->i2c->adap); in ddb_ci_attach()
1141 return i2c_read_reg(&port->i2c->adap, 0x40, 0, &val) ? 0 : 1; in port_has_ci()
1147 if (i2c_read_reg16(&port->i2c->adap, 0x69, 0xf100, &val) < 0) in port_has_stv0900()
1155 if (i2c_read_reg16(&port->i2c->adap, 0x68, 0xf100, &val) < 0) in port_has_stv0900_aa()
1163 if (i2c_read(&port->i2c->adap, 0x29, &val) < 0) in port_has_drxks()
1165 if (i2c_read(&port->i2c->adap, 0x2a, &val) < 0) in port_has_drxks()
1180 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING); in ddb_port_probe()
1185 ddbwritel(I2C_SPEED_100, port->i2c->regs + I2C_TIMING); in ddb_port_probe()
1190 ddbwritel(I2C_SPEED_100, port->i2c->regs + I2C_TIMING); in ddb_port_probe()
1195 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING); in ddb_port_probe()
1244 port->i2c = &dev->i2c[i]; in ddb_ports_init()
1277 struct ddb_i2c *i2c = &dev->i2c[n]; in irq_handle_i2c() local
1279 i2c->done = 1; in irq_handle_i2c()
1280 wake_up(&i2c->wq); in irq_handle_i2c()