Lines Matching full:slave
27 #define I2C_OFS_SVA0 0x0c /* slave address */
70 struct i2c_client *slave; member
148 /* Send slave address and R/W type */ in __em_i2c_xfer()
156 /* Received NACK (result of setting slave address and R/W) */ in __em_i2c_xfer()
233 if (!priv->slave) in em_i2c_slave_irq()
244 /* Stop detected, we don't know if it's for slave or master */ in em_i2c_slave_irq()
246 /* Notify slave device */ in em_i2c_slave_irq()
247 i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value); in em_i2c_slave_irq()
269 i2c_slave_event(priv->slave, event, &value); in em_i2c_slave_irq()
283 i2c_slave_event(priv->slave, I2C_SLAVE_WRITE_REQUESTED, in em_i2c_slave_irq()
288 ret = i2c_slave_event(priv->slave, in em_i2c_slave_irq()
316 static int em_i2c_reg_slave(struct i2c_client *slave) in em_i2c_reg_slave() argument
318 struct em_i2c_device *priv = i2c_get_adapdata(slave->adapter); in em_i2c_reg_slave()
320 if (priv->slave) in em_i2c_reg_slave()
323 if (slave->flags & I2C_CLIENT_TEN) in em_i2c_reg_slave()
326 priv->slave = slave; in em_i2c_reg_slave()
328 /* Set slave address */ in em_i2c_reg_slave()
329 writeb(slave->addr << 1, priv->base + I2C_OFS_SVA0); in em_i2c_reg_slave()
334 static int em_i2c_unreg_slave(struct i2c_client *slave) in em_i2c_unreg_slave() argument
336 struct em_i2c_device *priv = i2c_get_adapdata(slave->adapter); in em_i2c_unreg_slave()
338 WARN_ON(!priv->slave); in em_i2c_unreg_slave()
343 * Wait for interrupt to finish. New slave irqs cannot happen because we in em_i2c_unreg_slave()
344 * cleared the slave address and, thus, only extension codes will be in em_i2c_unreg_slave()
345 * detected which do not use the slave ptr. in em_i2c_unreg_slave()
348 priv->slave = NULL; in em_i2c_unreg_slave()