Lines Matching refs:adap

38 #define set_pcf(adap, ctl, val) adap->setpcf(adap->data, ctl, val)
39 #define get_pcf(adap, ctl) adap->getpcf(adap->data, ctl)
40 #define get_own(adap) adap->getown(adap->data)
41 #define get_clock(adap) adap->getclock(adap->data)
42 #define i2c_outb(adap, val) adap->setpcf(adap->data, 0, val)
43 #define i2c_inb(adap) adap->getpcf(adap->data, 0)
47 static void i2c_start(struct i2c_algo_pcf_data *adap)
50 set_pcf(adap, 1, I2C_PCF_START);
53 static void i2c_repstart(struct i2c_algo_pcf_data *adap)
56 set_pcf(adap, 1, I2C_PCF_REPSTART);
59 static void i2c_stop(struct i2c_algo_pcf_data *adap)
62 set_pcf(adap, 1, I2C_PCF_STOP);
65 static void handle_lab(struct i2c_algo_pcf_data *adap, const int *status)
76 set_pcf(adap, 1, I2C_PCF_PIN);
77 set_pcf(adap, 1, I2C_PCF_ESO);
87 if (adap->lab_mdelay)
88 mdelay(adap->lab_mdelay);
92 get_pcf(adap, 1)));
95 static int wait_for_bb(struct i2c_algo_pcf_data *adap)
101 status = get_pcf(adap, 1);
105 status = get_pcf(adap, 1);
116 static int wait_for_pin(struct i2c_algo_pcf_data *adap, int *status)
121 *status = get_pcf(adap, 1);
124 adap->waitforpin(adap->data);
125 *status = get_pcf(adap, 1);
128 handle_lab(adap, status);
149 static int pcf_init_8584 (struct i2c_algo_pcf_data *adap)
154 get_pcf(adap, 1)));
157 set_pcf(adap, 1, I2C_PCF_PIN);
162 if (((temp = get_pcf(adap, 1)) & 0x7f) != (0)) {
168 i2c_outb(adap, get_own(adap));
170 if ((temp = i2c_inb(adap)) != get_own(adap)) {
176 set_pcf(adap, 1, I2C_PCF_PIN | I2C_PCF_ES1);
178 if (((temp = get_pcf(adap, 1)) & 0x7f) != I2C_PCF_ES1) {
184 i2c_outb(adap, get_clock(adap));
186 if (((temp = i2c_inb(adap)) & 0x1f) != get_clock(adap)) {
192 set_pcf(adap, 1, I2C_PCF_IDLE);
195 if ((temp = get_pcf(adap, 1)) != (I2C_PCF_PIN | I2C_PCF_BB)) {
208 struct i2c_algo_pcf_data *adap = i2c_adap->algo_data;
214 i2c_outb(adap, buf[wrcount]);
215 timeout = wait_for_pin(adap, &status);
220 i2c_stop(adap);
225 i2c_stop(adap);
231 i2c_stop(adap);
233 i2c_repstart(adap);
242 struct i2c_algo_pcf_data *adap = i2c_adap->algo_data;
248 if ((wfp = wait_for_pin(adap, &status))) {
252 i2c_stop(adap);
258 i2c_stop(adap);
264 set_pcf(adap, 1, I2C_PCF_ESO);
267 i2c_stop(adap);
269 i2c_repstart(adap);
273 buf[i - 1] = i2c_inb(adap);
275 i2c_inb(adap); /* dummy read */
282 static int pcf_doAddress(struct i2c_algo_pcf_data *adap,
289 i2c_outb(adap, addr);
298 struct i2c_algo_pcf_data *adap = i2c_adap->algo_data;
303 if (adap->xfer_begin)
304 adap->xfer_begin(adap->data);
307 timeout = wait_for_bb(adap);
322 ret = pcf_doAddress(adap, pmsg);
326 i2c_start(adap);
329 timeout = wait_for_pin(adap, &status);
336 i2c_stop(adap);
345 i2c_stop(adap);
378 if (adap->xfer_end)
379 adap->xfer_end(adap->data);
383 static u32 pcf_func(struct i2c_adapter *adap)
398 int i2c_pcf_add_bus(struct i2c_adapter *adap)
400 struct i2c_algo_pcf_data *pcf_adap = adap->algo_data;
403 DEB2(dev_dbg(&adap->dev, "hw routines registered.\n"));
406 adap->algo = &pcf_algo;
411 rval = i2c_add_adapter(adap);