Lines Matching refs:adap

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