Lines Matching refs:iop3xx_adap

62 iop3xx_i2c_reset(struct i2c_algo_iop3xx_data *iop3xx_adap)  in iop3xx_i2c_reset()  argument
65 __raw_writel(IOP3XX_ICR_UNIT_RESET, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_reset()
66 __raw_writel(IOP3XX_ISR_CLEARBITS, iop3xx_adap->ioaddr + SR_OFFSET); in iop3xx_i2c_reset()
67 __raw_writel(0, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_reset()
71 iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap) in iop3xx_i2c_enable() argument
80 if (iop3xx_adap->id == 0) { in iop3xx_i2c_enable()
89 iop3xx_adap->SR_enabled = in iop3xx_i2c_enable()
96 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_enable()
100 iop3xx_i2c_transaction_cleanup(struct i2c_algo_iop3xx_data *iop3xx_adap) in iop3xx_i2c_transaction_cleanup() argument
102 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_transaction_cleanup()
107 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_transaction_cleanup()
117 struct i2c_algo_iop3xx_data *iop3xx_adap = dev_id; in iop3xx_i2c_irq_handler() local
118 u32 sr = __raw_readl(iop3xx_adap->ioaddr + SR_OFFSET); in iop3xx_i2c_irq_handler()
120 if ((sr &= iop3xx_adap->SR_enabled)) { in iop3xx_i2c_irq_handler()
121 __raw_writel(sr, iop3xx_adap->ioaddr + SR_OFFSET); in iop3xx_i2c_irq_handler()
122 iop3xx_adap->SR_received |= sr; in iop3xx_i2c_irq_handler()
123 wake_up_interruptible(&iop3xx_adap->waitq); in iop3xx_i2c_irq_handler()
144 iop3xx_i2c_get_srstat(struct i2c_algo_iop3xx_data *iop3xx_adap) in iop3xx_i2c_get_srstat() argument
149 spin_lock_irqsave(&iop3xx_adap->lock, flags); in iop3xx_i2c_get_srstat()
150 sr = iop3xx_adap->SR_received; in iop3xx_i2c_get_srstat()
151 iop3xx_adap->SR_received = 0; in iop3xx_i2c_get_srstat()
152 spin_unlock_irqrestore(&iop3xx_adap->lock, flags); in iop3xx_i2c_get_srstat()
165 iop3xx_i2c_wait_event(struct i2c_algo_iop3xx_data *iop3xx_adap, in iop3xx_i2c_wait_event() argument
176 iop3xx_adap->waitq, in iop3xx_i2c_wait_event()
177 (done = compare( sr = iop3xx_i2c_get_srstat(iop3xx_adap) ,flags )), in iop3xx_i2c_wait_event()
210 iop3xx_i2c_wait_tx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status) in iop3xx_i2c_wait_tx_done() argument
213 iop3xx_adap, in iop3xx_i2c_wait_tx_done()
219 iop3xx_i2c_wait_rx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status) in iop3xx_i2c_wait_rx_done() argument
222 iop3xx_adap, in iop3xx_i2c_wait_rx_done()
228 iop3xx_i2c_wait_idle(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status) in iop3xx_i2c_wait_idle() argument
231 iop3xx_adap, IOP3XX_ISR_UNITBUSY, status, all_bits_clear); in iop3xx_i2c_wait_idle()
235 iop3xx_i2c_send_target_addr(struct i2c_algo_iop3xx_data *iop3xx_adap, in iop3xx_i2c_send_target_addr() argument
238 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_send_target_addr()
249 __raw_writel(iic_cook_addr(msg), iop3xx_adap->ioaddr + DBR_OFFSET); in iop3xx_i2c_send_target_addr()
254 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_send_target_addr()
255 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status); in iop3xx_i2c_send_target_addr()
261 iop3xx_i2c_write_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char byte, in iop3xx_i2c_write_byte() argument
264 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_write_byte()
268 __raw_writel(byte, iop3xx_adap->ioaddr + DBR_OFFSET); in iop3xx_i2c_write_byte()
276 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_write_byte()
277 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status); in iop3xx_i2c_write_byte()
283 iop3xx_i2c_read_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char* byte, in iop3xx_i2c_read_byte() argument
286 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_read_byte()
298 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET); in iop3xx_i2c_read_byte()
300 rc = iop3xx_i2c_wait_rx_done(iop3xx_adap, &status); in iop3xx_i2c_read_byte()
302 *byte = __raw_readl(iop3xx_adap->ioaddr + DBR_OFFSET); in iop3xx_i2c_read_byte()
310 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data; in iop3xx_i2c_writebytes() local
315 rc = iop3xx_i2c_write_byte(iop3xx_adap, buf[ii], ii==count-1); in iop3xx_i2c_writebytes()
322 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data; in iop3xx_i2c_readbytes() local
327 rc = iop3xx_i2c_read_byte(iop3xx_adap, &buf[ii], ii==count-1); in iop3xx_i2c_readbytes()
342 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data; in iop3xx_i2c_handle_msg() local
345 rc = iop3xx_i2c_send_target_addr(iop3xx_adap, pmsg); in iop3xx_i2c_handle_msg()
364 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data; in iop3xx_i2c_master_xfer() local
369 iop3xx_i2c_wait_idle(iop3xx_adap, &status); in iop3xx_i2c_master_xfer()
370 iop3xx_i2c_reset(iop3xx_adap); in iop3xx_i2c_master_xfer()
371 iop3xx_i2c_enable(iop3xx_adap); in iop3xx_i2c_master_xfer()
377 iop3xx_i2c_transaction_cleanup(iop3xx_adap); in iop3xx_i2c_master_xfer()