Lines Matching defs:i2c

13 #include <i2c.h>
17 #include <asm/arch-rockchip/i2c.h>
23 /* i2c timerout */
27 /* rk i2c fifo max transfer bytes */
42 * @controller_type: i2c controller type
62 static void rk_i2c_set_clk(struct rk_i2c *i2c, uint32_t scl_rate)
67 /* First get i2c rate from pclk */
68 i2c_rate = clk_get_rate(&i2c->clk);
75 writel(I2C_CLKDIV_VAL(divl, divh), &i2c->regs->clkdiv);
77 debug("rk_i2c_set_clk: i2c rate = %d, scl rate = %d\n", i2c_rate,
79 debug("set i2c clk div = %d, divh = %d, divl = %d\n", div, divh, divl);
80 debug("set clk(I2C_CLKDIV: 0x%08x)\n", readl(&i2c->regs->clkdiv));
104 static int rk_i2c_send_start_bit(struct rk_i2c *i2c)
106 struct i2c_regs *regs = i2c->regs;
132 static int rk_i2c_send_stop_bit(struct rk_i2c *i2c)
134 struct i2c_regs *regs = i2c->regs;
160 static inline void rk_i2c_disable(struct rk_i2c *i2c)
162 writel(0, &i2c->regs->con);
165 static int rk_i2c_read(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len,
168 struct i2c_regs *regs = i2c->regs;
183 err = rk_i2c_send_start_bit(i2c);
258 rk_i2c_disable(i2c);
263 static int rk_i2c_write(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len,
266 struct i2c_regs *regs = i2c->regs;
278 err = rk_i2c_send_start_bit(i2c);
336 rk_i2c_disable(i2c);
344 struct rk_i2c *i2c = dev_get_priv(bus);
351 ret = rk_i2c_read(i2c, msg->addr, 0, 0, msg->buf,
354 ret = rk_i2c_write(i2c, msg->addr, 0, 0, msg->buf,
364 rk_i2c_send_stop_bit(i2c);
365 rk_i2c_disable(i2c);
372 struct rk_i2c *i2c = dev_get_priv(bus);
374 rk_i2c_set_clk(i2c, speed);
463 .compatible = "rockchip,rk3066-i2c",
467 .compatible = "rockchip,rk3188-i2c",
471 .compatible = "rockchip,rk3228-i2c",
475 .compatible = "rockchip,rk3288-i2c",
479 .compatible = "rockchip,rk3328-i2c",
483 .compatible = "rockchip,rk3399-i2c",