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);
139 iop3xx_i2c_get_srstat(struct i2c_algo_iop3xx_data *iop3xx_adap)
144 spin_lock_irqsave(&iop3xx_adap->lock, flags);
145 sr = iop3xx_adap->SR_received;
146 iop3xx_adap->SR_received = 0;
147 spin_unlock_irqrestore(&iop3xx_adap->lock, flags);
160 iop3xx_i2c_wait_event(struct i2c_algo_iop3xx_data *iop3xx_adap,
171 iop3xx_adap->waitq,
172 (done = compare(sr = iop3xx_i2c_get_srstat(iop3xx_adap), flags)),
205 iop3xx_i2c_wait_tx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
208 iop3xx_adap,
214 iop3xx_i2c_wait_rx_done(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
217 iop3xx_adap,
223 iop3xx_i2c_wait_idle(struct i2c_algo_iop3xx_data *iop3xx_adap, int *status)
226 iop3xx_adap, IOP3XX_ISR_UNITBUSY, status, all_bits_clear);
230 iop3xx_i2c_send_target_addr(struct i2c_algo_iop3xx_data *iop3xx_adap,
233 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
244 __raw_writel(iic_cook_addr(msg), iop3xx_adap->ioaddr + DBR_OFFSET);
249 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
250 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status);
256 iop3xx_i2c_write_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char byte,
259 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
263 __raw_writel(byte, iop3xx_adap->ioaddr + DBR_OFFSET);
271 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
272 rc = iop3xx_i2c_wait_tx_done(iop3xx_adap, &status);
278 iop3xx_i2c_read_byte(struct i2c_algo_iop3xx_data *iop3xx_adap, char *byte,
281 unsigned long cr = __raw_readl(iop3xx_adap->ioaddr + CR_OFFSET);
293 __raw_writel(cr, iop3xx_adap->ioaddr + CR_OFFSET);
295 rc = iop3xx_i2c_wait_rx_done(iop3xx_adap, &status);
297 *byte = __raw_readl(iop3xx_adap->ioaddr + DBR_OFFSET);
305 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
310 rc = iop3xx_i2c_write_byte(iop3xx_adap, buf[ii], ii == count-1);
317 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
322 rc = iop3xx_i2c_read_byte(iop3xx_adap, &buf[ii], ii == count-1);
337 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
340 rc = iop3xx_i2c_send_target_addr(iop3xx_adap, pmsg);
359 struct i2c_algo_iop3xx_data *iop3xx_adap = i2c_adap->algo_data;
364 iop3xx_i2c_wait_idle(iop3xx_adap, &status);
365 iop3xx_i2c_reset(iop3xx_adap);
366 iop3xx_i2c_enable(iop3xx_adap);
372 iop3xx_i2c_transaction_cleanup(iop3xx_adap);