Lines Matching refs:adap

35 #define pca_outw(adap, reg, val) adap->write_byte(adap->data, reg, val)  argument
36 #define pca_inw(adap, reg) adap->read_byte(adap->data, reg) argument
38 #define pca_status(adap) pca_inw(adap, I2C_PCA_STA) argument
39 #define pca_clock(adap) adap->i2c_clock argument
40 #define pca_set_con(adap, val) pca_outw(adap, I2C_PCA_CON, val) argument
41 #define pca_get_con(adap) pca_inw(adap, I2C_PCA_CON) argument
42 #define pca_wait(adap) adap->wait_for_completion(adap->data) argument
44 static void pca_reset(struct i2c_algo_pca_data *adap) in pca_reset() argument
46 if (adap->chip == I2C_PCA_CHIP_9665) { in pca_reset()
50 pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IPRESET); in pca_reset()
51 pca_outw(adap, I2C_PCA_IND, 0xA5); in pca_reset()
52 pca_outw(adap, I2C_PCA_IND, 0x5A); in pca_reset()
54 adap->reset_chip(adap->data); in pca_reset()
63 static int pca_start(struct i2c_algo_pca_data *adap) in pca_start() argument
65 int sta = pca_get_con(adap); in pca_start()
69 pca_set_con(adap, sta); in pca_start()
70 return pca_wait(adap); in pca_start()
78 static int pca_repeated_start(struct i2c_algo_pca_data *adap) in pca_repeated_start() argument
80 int sta = pca_get_con(adap); in pca_repeated_start()
84 pca_set_con(adap, sta); in pca_repeated_start()
85 return pca_wait(adap); in pca_repeated_start()
97 static void pca_stop(struct i2c_algo_pca_data *adap) in pca_stop() argument
99 int sta = pca_get_con(adap); in pca_stop()
103 pca_set_con(adap, sta); in pca_stop()
111 static int pca_address(struct i2c_algo_pca_data *adap, in pca_address() argument
114 int sta = pca_get_con(adap); in pca_address()
123 pca_outw(adap, I2C_PCA_DAT, addr); in pca_address()
126 pca_set_con(adap, sta); in pca_address()
128 return pca_wait(adap); in pca_address()
136 static int pca_tx_byte(struct i2c_algo_pca_data *adap, in pca_tx_byte() argument
139 int sta = pca_get_con(adap); in pca_tx_byte()
141 pca_outw(adap, I2C_PCA_DAT, b); in pca_tx_byte()
144 pca_set_con(adap, sta); in pca_tx_byte()
146 return pca_wait(adap); in pca_tx_byte()
154 static void pca_rx_byte(struct i2c_algo_pca_data *adap, in pca_rx_byte() argument
157 *b = pca_inw(adap, I2C_PCA_DAT); in pca_rx_byte()
166 static int pca_rx_ack(struct i2c_algo_pca_data *adap, in pca_rx_ack() argument
169 int sta = pca_get_con(adap); in pca_rx_ack()
176 pca_set_con(adap, sta); in pca_rx_ack()
177 return pca_wait(adap); in pca_rx_ack()
184 struct i2c_algo_pca_data *adap = i2c_adap->algo_data; in pca_xfer() local
193 while ((state = pca_status(adap)) != 0xf8) { in pca_xfer()
229 state = pca_status(adap); in pca_xfer()
236 completed = pca_start(adap); in pca_xfer()
241 completed = pca_address(adap, msg); in pca_xfer()
247 completed = pca_tx_byte(adap, in pca_xfer()
254 pca_stop(adap); in pca_xfer()
256 completed = pca_repeated_start(adap); in pca_xfer()
261 pca_stop(adap); in pca_xfer()
266 completed = pca_rx_ack(adap, msg->len > 1); in pca_xfer()
271 pca_rx_byte(adap, &msg->buf[numbytes], 1); in pca_xfer()
273 completed = pca_rx_ack(adap, in pca_xfer()
279 pca_stop(adap); in pca_xfer()
281 completed = pca_repeated_start(adap); in pca_xfer()
286 pca_stop(adap); in pca_xfer()
292 pca_stop(adap); in pca_xfer()
306 pca_start(adap); in pca_xfer()
311 pca_rx_byte(adap, &msg->buf[numbytes], 0); in pca_xfer()
314 pca_stop(adap); in pca_xfer()
316 completed = pca_repeated_start(adap); in pca_xfer()
321 pca_stop(adap); in pca_xfer()
327 pca_reset(adap); in pca_xfer()
331 pca_reset(adap); in pca_xfer()
335 pca_reset(adap); in pca_xfer()
350 curmsg, num, pca_status(adap), in pca_xfer()
351 pca_get_con(adap)); in pca_xfer()
355 static u32 pca_func(struct i2c_adapter *adap) in pca_func() argument
365 static unsigned int pca_probe_chip(struct i2c_adapter *adap) in pca_probe_chip() argument
367 struct i2c_algo_pca_data *pca_data = adap->algo_data; in pca_probe_chip()
379 printk(KERN_INFO "%s: PCA9665 detected.\n", adap->name); in pca_probe_chip()
382 printk(KERN_INFO "%s: PCA9564 detected.\n", adap->name); in pca_probe_chip()
388 static int pca_init(struct i2c_adapter *adap) in pca_init() argument
390 struct i2c_algo_pca_data *pca_data = adap->algo_data; in pca_init()
392 adap->algo = &pca_algo; in pca_init()
394 if (pca_probe_chip(adap) == I2C_PCA_CHIP_9564) { in pca_init()
427 " Using default 59kHz.\n", adap->name); in pca_init()
434 " Use the nominal frequency.\n", adap->name); in pca_init()
441 adap->name, freqs[clock]); in pca_init()
461 " Using 1265.8kHz.\n", adap->name); in pca_init()
467 " Using 60.3kHz.\n", adap->name); in pca_init()
513 "%s: Clock frequency is %dHz\n", adap->name, clock * 100); in pca_init()
532 int i2c_pca_add_bus(struct i2c_adapter *adap) in i2c_pca_add_bus() argument
536 rval = pca_init(adap); in i2c_pca_add_bus()
540 return i2c_add_adapter(adap); in i2c_pca_add_bus()
544 int i2c_pca_add_numbered_bus(struct i2c_adapter *adap) in i2c_pca_add_numbered_bus() argument
548 rval = pca_init(adap); in i2c_pca_add_numbered_bus()
552 return i2c_add_numbered_adapter(adap); in i2c_pca_add_numbered_bus()