Lines Matching defs:i2c

21 #include <i2c.h>
29 * @param i2c- pointer to the appropriate i2c register bank.
35 static int WaitForXfer(struct s3c24x0_i2c *i2c)
40 if (readl(&i2c->iiccon) & I2CCON_IRPND)
41 return (readl(&i2c->iicstat) & I2CSTAT_NACK) ?
48 static void read_write_byte(struct s3c24x0_i2c *i2c)
50 clrbits_le32(&i2c->iiccon, I2CCON_IRPND);
53 static void i2c_ch_init(struct s3c24x0_i2c *i2c, int speed, int slaveadd)
71 writel((div & 0x0F) | 0xA0 | ((pres == 512) ? 0x40 : 0), &i2c->iiccon);
74 writel(0, &i2c->iicstat);
75 writel(slaveadd, &i2c->iicadd);
77 writel(I2C_MODE_MT | I2C_TXRX_ENA, &i2c->iicstat);
101 static int i2c_transfer(struct s3c24x0_i2c *i2c,
118 while (readl(&i2c->iicstat) & I2CSTAT_BSY) {
123 writel(readl(&i2c->iiccon) | I2CCON_ACKGEN, &i2c->iiccon);
126 writel(chip, &i2c->iicds);
129 &i2c->iicstat);
132 &i2c->iicstat);
135 result = WaitForXfer(i2c);
142 writel(addr[i++], &i2c->iicds);
143 read_write_byte(i2c);
144 result = WaitForXfer(i2c);
154 writel(data[i++], &i2c->iicds);
155 read_write_byte(i2c);
156 result = WaitForXfer(i2c);
166 writel(chip, &i2c->iicds);
170 &i2c->iicstat);
171 read_write_byte(i2c);
172 result = WaitForXfer(i2c);
181 writel(readl(&i2c->iiccon)
183 &i2c->iiccon);
184 read_write_byte(i2c);
185 result = WaitForXfer(i2c);
186 data[i++] = readl(&i2c->iicds);
200 writel(I2C_MODE_MR | I2C_TXRX_ENA, &i2c->iicstat);
201 read_write_byte(i2c);
227 struct s3c24x0_i2c *i2c = i2c_bus->regs;
234 setbits_le32(&i2c->iiccon, I2CCON_ACKGEN);
238 writel(addr, &i2c->iicds);
244 writel(status, &i2c->iicstat);
246 read_write_byte(i2c);
249 ret = WaitForXfer(i2c);
257 clrbits_le32(&i2c->iiccon, I2CCON_ACKGEN);
258 read_write_byte(i2c);
259 ret = WaitForXfer(i2c);
260 msg->buf[i] = readl(&i2c->iicds);
266 writel(msg->buf[i], &i2c->iicds);
267 read_write_byte(i2c);
268 ret = WaitForXfer(i2c);
280 struct s3c24x0_i2c *i2c = i2c_bus->regs;
285 while (readl(&i2c->iicstat) & I2CSTAT_BSY) {
296 writel(I2C_MODE_MR | I2C_TXRX_ENA, &i2c->iicstat);
297 read_write_byte(i2c);
334 { .compatible = "samsung,s3c2440-i2c" },