Lines Matching defs:iop3xx_adap

56 iop3xx_i2c_reset(struct i2c_algo_iop3xx_data *iop3xx_adap)
59 __raw_writel(IOP3XX_ICR_UNIT_RESET, iop3xx_adap->ioaddr + CR_OFFSET);
60 __raw_writel(IOP3XX_ISR_CLEARBITS, iop3xx_adap->ioaddr + SR_OFFSET);
61 __raw_writel(0, iop3xx_adap->ioaddr + CR_OFFSET);
65 iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap)
76 if (iop3xx_adap->gpio_scl)
77 gpiod_set_raw_value(iop3xx_adap->gpio_scl, 0);
78 if (iop3xx_adap->gpio_sda)
79 gpiod_set_raw_value(iop3xx_adap->gpio_sda, 0);
82 iop3xx_adap->SR_enabled =
89 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
93 iop3xx_i2c_transaction_cleanup(struct i2c_algo_iop3xx_data *iop3xx_adap)
95 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
100 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
110 struct i2c_algo_iop3xx_data *iop3xx_adap = dev_id;
111 u32 sr = __raw_readl(iop3xx_adap->ioaddr + SR_OFFSET);
113 if ((sr &= iop3xx_adap->SR_enabled)) {
114 __raw_writel(sr, iop3xx_adap->ioaddr + SR_OFFSET);
115 iop3xx_adap->SR_received |= sr;
116 wake_up_interruptible(&iop3xx_adap->waitq);
137 iop3xx_i2c_get_srstat(struct i2c_algo_iop3xx_data *iop3xx_adap)
142 spin_lock_irqsave(&iop3xx_adap->lock, flags);
143 sr = iop3xx_adap->SR_received;
144 iop3xx_adap->SR_received = 0;
145 spin_unlock_irqrestore(&iop3xx_adap->lock, flags);
158 iop3xx_i2c_wait_event(struct i2c_algo_iop3xx_data *iop3xx_adap,
169 iop3xx_adap->waitq,
170 (done = compare( sr = iop3xx_i2c_get_srstat(iop3xx_adap) ,flags )),
203 iop3xx_i2c_wait_tx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
206 iop3xx_adap,
212 iop3xx_i2c_wait_rx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
215 iop3xx_adap,
221 iop3xx_i2c_wait_idle(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
224 iop3xx_adap, IOP3XX_ISR_UNITBUSY, status, all_bits_clear);
228 iop3xx_i2c_send_target_addr(struct i2c_algo_iop3xx_data *iop3xx_adap,
231 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
242 __raw_writel(iic_cook_addr(msg), iop3xx_adap->ioaddr + DBR_OFFSET);
247 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
248 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status);
254 iop3xx_i2c_write_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char byte,
257 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
261 __raw_writel(byte, iop3xx_adap->ioaddr + DBR_OFFSET);
269 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
270 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status);
276 iop3xx_i2c_read_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char* byte,
279 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
291 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
293 rc = iop3xx_i2c_wait_rx_done(iop3xx_adap, &status);
295 *byte = __raw_readl(iop3xx_adap->ioaddr + DBR_OFFSET);
303 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
308 rc = iop3xx_i2c_write_byte(iop3xx_adap, buf[ii], ii==count-1);
315 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
320 rc = iop3xx_i2c_read_byte(iop3xx_adap, &buf[ii], ii==count-1);
335 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
338 rc = iop3xx_i2c_send_target_addr(iop3xx_adap, pmsg);
357 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
362 iop3xx_i2c_wait_idle(iop3xx_adap, &status);
363 iop3xx_i2c_reset(iop3xx_adap);
364 iop3xx_i2c_enable(iop3xx_adap);
370 iop3xx_i2c_transaction_cleanup(iop3xx_adap);