Lines Matching refs:i2c
48 static void rk_i2c_set_clk(struct rk_i2c *i2c, uint32_t scl_rate) in rk_i2c_set_clk() argument
54 i2c_rate = clk_get_rate(&i2c->clk); in rk_i2c_set_clk()
61 writel(I2C_CLKDIV_VAL(divl, divh), &i2c->regs->clkdiv); in rk_i2c_set_clk()
66 debug("set clk(I2C_CLKDIV: 0x%08x)\n", readl(&i2c->regs->clkdiv)); in rk_i2c_set_clk()
90 static int rk_i2c_send_start_bit(struct rk_i2c *i2c) in rk_i2c_send_start_bit() argument
92 struct i2c_regs *regs = i2c->regs; in rk_i2c_send_start_bit()
118 static int rk_i2c_send_stop_bit(struct rk_i2c *i2c) in rk_i2c_send_stop_bit() argument
120 struct i2c_regs *regs = i2c->regs; in rk_i2c_send_stop_bit()
146 static inline void rk_i2c_disable(struct rk_i2c *i2c) in rk_i2c_disable() argument
148 writel(0, &i2c->regs->con); in rk_i2c_disable()
151 static int rk_i2c_read(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len, in rk_i2c_read() argument
154 struct i2c_regs *regs = i2c->regs; in rk_i2c_read()
169 err = rk_i2c_send_start_bit(i2c); in rk_i2c_read()
244 rk_i2c_send_stop_bit(i2c); in rk_i2c_read()
245 rk_i2c_disable(i2c); in rk_i2c_read()
250 static int rk_i2c_write(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len, in rk_i2c_write() argument
253 struct i2c_regs *regs = i2c->regs; in rk_i2c_write()
265 err = rk_i2c_send_start_bit(i2c); in rk_i2c_write()
323 rk_i2c_send_stop_bit(i2c); in rk_i2c_write()
324 rk_i2c_disable(i2c); in rk_i2c_write()
332 struct rk_i2c *i2c = dev_get_priv(bus); in rockchip_i2c_xfer() local
339 ret = rk_i2c_read(i2c, msg->addr, 0, 0, msg->buf, in rockchip_i2c_xfer()
342 ret = rk_i2c_write(i2c, msg->addr, 0, 0, msg->buf, in rockchip_i2c_xfer()
356 struct rk_i2c *i2c = dev_get_priv(bus); in rockchip_i2c_set_bus_speed() local
358 rk_i2c_set_clk(i2c, speed); in rockchip_i2c_set_bus_speed()