Lines Matching refs:adap

41 #define pca_outw(adap, reg, val) adap->write_byte(adap->data, reg, val)
42 #define pca_inw(adap, reg) adap->read_byte(adap->data, reg)
44 #define pca_status(adap) pca_inw(adap, I2C_PCA_STA)
45 #define pca_clock(adap) adap->i2c_clock
46 #define pca_set_con(adap, val) pca_outw(adap, I2C_PCA_CON, val)
47 #define pca_get_con(adap) pca_inw(adap, I2C_PCA_CON)
48 #define pca_wait(adap) adap->wait_for_completion(adap->data)
49 #define pca_reset(adap) adap->reset_chip(adap->data)
53 struct i2c_algo_pca_data *adap = pd;
54 pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IPRESET);
55 pca_outw(adap, I2C_PCA_IND, 0xA5);
56 pca_outw(adap, I2C_PCA_IND, 0x5A);
64 static int pca_start(struct i2c_algo_pca_data *adap)
66 int sta = pca_get_con(adap);
70 pca_set_con(adap, sta);
71 return pca_wait(adap);
79 static int pca_repeated_start(struct i2c_algo_pca_data *adap)
81 int sta = pca_get_con(adap);
85 pca_set_con(adap, sta);
86 return pca_wait(adap);
98 static void pca_stop(struct i2c_algo_pca_data *adap)
100 int sta = pca_get_con(adap);
104 pca_set_con(adap, sta);
112 static int pca_address(struct i2c_algo_pca_data *adap,
115 int sta = pca_get_con(adap);
124 pca_outw(adap, I2C_PCA_DAT, addr);
127 pca_set_con(adap, sta);
129 return pca_wait(adap);
137 static int pca_tx_byte(struct i2c_algo_pca_data *adap,
140 int sta = pca_get_con(adap);
142 pca_outw(adap, I2C_PCA_DAT, b);
145 pca_set_con(adap, sta);
147 return pca_wait(adap);
155 static void pca_rx_byte(struct i2c_algo_pca_data *adap,
158 *b = pca_inw(adap, I2C_PCA_DAT);
167 static int pca_rx_ack(struct i2c_algo_pca_data *adap,
170 int sta = pca_get_con(adap);
177 pca_set_con(adap, sta);
178 return pca_wait(adap);
185 struct i2c_algo_pca_data *adap = i2c_adap->algo_data;
194 while ((state = pca_status(adap)) != 0xf8) {
230 state = pca_status(adap);
237 completed = pca_start(adap);
242 completed = pca_address(adap, msg);
248 completed = pca_tx_byte(adap,
255 pca_stop(adap);
257 completed = pca_repeated_start(adap);
262 pca_stop(adap);
267 completed = pca_rx_ack(adap, msg->len > 1);
272 pca_rx_byte(adap, &msg->buf[numbytes], 1);
274 completed = pca_rx_ack(adap,
280 pca_stop(adap);
282 completed = pca_repeated_start(adap);
287 pca_stop(adap);
293 pca_stop(adap);
307 pca_start(adap);
312 pca_rx_byte(adap, &msg->buf[numbytes], 0);
315 pca_stop(adap);
317 completed = pca_repeated_start(adap);
322 pca_stop(adap);
328 pca_reset(adap);
332 pca_reset(adap);
336 pca_reset(adap);
351 curmsg, num, pca_status(adap),
352 pca_get_con(adap));
356 static u32 pca_func(struct i2c_adapter *adap)
366 static unsigned int pca_probe_chip(struct i2c_adapter *adap)
368 struct i2c_algo_pca_data *pca_data = adap->algo_data;
380 printk(KERN_INFO "%s: PCA9665 detected.\n", adap->name);
383 printk(KERN_INFO "%s: PCA9564 detected.\n", adap->name);
388 static int pca_init(struct i2c_adapter *adap)
390 struct i2c_algo_pca_data *pca_data = adap->algo_data;
392 adap->algo = &pca_algo;
394 if (pca_probe_chip(adap) == I2C_PCA_CHIP_9564) {
427 " Using default 59kHz.\n", adap->name);
434 " Use the nominal frequency.\n", adap->name);
441 adap->name, freqs[clock]);
466 " Using 1265.8kHz.\n", adap->name);
472 " Using 60.3kHz.\n", adap->name);
518 "%s: Clock frequency is %dHz\n", adap->name, clock * 100);
537 int i2c_pca_add_bus(struct i2c_adapter *adap)
541 rval = pca_init(adap);
545 return i2c_add_adapter(adap);
549 int i2c_pca_add_numbered_bus(struct i2c_adapter *adap)
553 rval = pca_init(adap);
557 return i2c_add_numbered_adapter(adap);