Lines Matching refs:i2c_bus
229 static int cdns_i2c_write_data(struct i2c_cdns_bus *i2c_bus, u32 addr, u8 *data, in cdns_i2c_write_data() argument
233 struct cdns_i2c_regs *regs = i2c_bus->regs; in cdns_i2c_write_data()
263 if (!i2c_bus->hold_flag) in cdns_i2c_write_data()
277 static int cdns_i2c_read_data(struct i2c_cdns_bus *i2c_bus, u32 addr, u8 *data, in cdns_i2c_read_data() argument
281 struct cdns_i2c_regs *regs = i2c_bus->regs; in cdns_i2c_read_data()
310 hold_quirk = (i2c_bus->quirks & CDNS_I2C_BROKEN_HOLD_BIT) && updatetx; in cdns_i2c_read_data()
315 !i2c_bus->hold_flag) { in cdns_i2c_read_data()
370 struct i2c_cdns_bus *i2c_bus = dev_get_priv(dev); in cdns_i2c_xfer() local
374 hold_quirk = !!(i2c_bus->quirks & CDNS_I2C_BROKEN_HOLD_BIT); in cdns_i2c_xfer()
391 i2c_bus->hold_flag = 1; in cdns_i2c_xfer()
392 setbits_le32(&i2c_bus->regs->control, CDNS_I2C_CONTROL_HOLD); in cdns_i2c_xfer()
394 i2c_bus->hold_flag = 0; in cdns_i2c_xfer()
401 ret = cdns_i2c_read_data(i2c_bus, msg->addr, msg->buf, in cdns_i2c_xfer()
404 ret = cdns_i2c_write_data(i2c_bus, msg->addr, msg->buf, in cdns_i2c_xfer()
418 struct i2c_cdns_bus *i2c_bus = dev_get_priv(dev); in cdns_i2c_ofdata_to_platdata() local
422 i2c_bus->regs = (struct cdns_i2c_regs *)devfdt_get_addr(dev); in cdns_i2c_ofdata_to_platdata()
423 if (!i2c_bus->regs) in cdns_i2c_ofdata_to_platdata()
427 i2c_bus->quirks = pdata->quirks; in cdns_i2c_ofdata_to_platdata()
429 i2c_bus->input_freq = 100000000; /* TODO hardcode input freq for now */ in cdns_i2c_ofdata_to_platdata()