diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h
index fa00098477..abefee78fd 100644
--- a/include/hw/i2c/i2c.h
+++ b/include/hw/i2c/i2c.h
@@ -6,8 +6,8 @@
 
 /*
  * The QEMU I2C implementation only supports simple transfers that complete
- * immediately.  It does not support slave devices that need to be able to
- * defer their response (eg. CPU slave interfaces where the data is supplied
+ * immediately.  It does not support target devices that need to be able to
+ * defer their response (eg. CPU target interfaces where the data is supplied
  * by the device driver in response to an interrupt).
  */
 
@@ -28,23 +28,23 @@ OBJECT_DECLARE_TYPE(I2CTarget, I2CTargetClass,
 struct I2CTargetClass {
     DeviceClass parent_class;
 
-    /* Master to slave. Returns non-zero for a NAK, 0 for success. */
+    /* Controller to target. Returns non-zero for a NAK, 0 for success. */
     int (*send)(I2CTarget *s, uint8_t data);
 
     /*
-     * Master to slave (asynchronous).
-     * Receiving slave must call i2c_ack().
+     * Controller to target (asynchronous).
+     * Receiving target must call i2c_ack().
      */
     void (*send_async)(I2CTarget *s, uint8_t data);
 
     /*
-     * Slave to master.  This cannot fail, the device should always
+     * Target to controller.  This cannot fail, the device should always
      * return something here.
      */
     uint8_t (*recv)(I2CTarget *s);
 
     /*
-     * Notify the slave of a bus state change.  For start event,
+     * Notify the target of a bus state change.  For start event,
      * returns non-zero to NAK an operation.  For other events the
      * return code is not used and should be zero.
      */
@@ -96,7 +96,7 @@ struct I2CBus {
     uint8_t saved_address;
     bool broadcast;
 
-    /* Set from slave currently mastering the bus. */
+    /* Set from target currently controlling the bus. */
     QEMUBH *bh;
 };
 
@@ -107,7 +107,7 @@ int i2c_bus_busy(I2CBus *bus);
  * i2c_start_transfer: start a transfer on an I2C bus.
  *
  * @bus: #I2CBus to be used
- * @address: address of the slave
+ * @address: address of the target
  * @is_recv: indicates the transfer direction
  *
  * When @is_recv is a known boolean constant, use the
@@ -121,7 +121,7 @@ int i2c_start_transfer(I2CBus *bus, uint8_t address, bool is_recv);
  * i2c_start_recv: start a 'receive' transfer on an I2C bus.
  *
  * @bus: #I2CBus to be used
- * @address: address of the slave
+ * @address: address of the target
  *
  * Returns: 0 on success, -1 on error
  */
@@ -131,7 +131,7 @@ int i2c_start_recv(I2CBus *bus, uint8_t address);
  * i2c_start_send: start a 'send' transfer on an I2C bus.
  *
  * @bus: #I2CBus to be used
- * @address: address of the slave
+ * @address: address of the target
  *
  * Returns: 0 on success, -1 on error
  */
@@ -141,7 +141,7 @@ int i2c_start_send(I2CBus *bus, uint8_t address);
  * i2c_start_send_async: start an asynchronous 'send' transfer on an I2C bus.
  *
  * @bus: #I2CBus to be used
- * @address: address of the slave
+ * @address: address of the target
  *
  * Return: 0 on success, -1 on error
  */
@@ -161,9 +161,9 @@ bool i2c_scan_bus(I2CBus *bus, uint8_t address, bool broadcast,
                   I2CNodeList *current_devs);
 
 /**
- * Create an I2C slave device on the heap.
+ * Create an I2C target device on the heap.
  * @name: a device type name
- * @addr: I2C address of the slave when put on a bus
+ * @addr: I2C address of the target when put on a bus
  *
  * This only initializes the device state structure and allows
  * properties to be set. Type @name must exist. The device still
@@ -172,10 +172,10 @@ bool i2c_scan_bus(I2CBus *bus, uint8_t address, bool broadcast,
 I2CTarget *i2c_target_new(const char *name, uint8_t addr);
 
 /**
- * Create and realize an I2C slave device on the heap.
+ * Create and realize an I2C target device on the heap.
  * @bus: I2C bus to put it on
- * @name: I2C slave device type name
- * @addr: I2C address of the slave when put on a bus
+ * @name: I2C target device type name
+ * @addr: I2C address of the target when put on a bus
  *
  * Create the device state structure, initialize it, put it on the
  * specified @bus, and drop the reference to it (the device is realized).
@@ -184,10 +184,10 @@ I2CTarget *i2c_target_create_simple(I2CBus *bus,
                                     const char *name, uint8_t addr);
 
 /**
- * Realize and drop a reference an I2C slave device
- * @dev: I2C slave device to realize
+ * Realize and drop a reference an I2C target device
+ * @dev: I2C target device to realize
  * @bus: I2C bus to put it on
- * @addr: I2C address of the slave on the bus
+ * @addr: I2C address of the target on the bus
  * @errp: pointer to NULL initialized error object
  *
  * Returns: %true on success, %false on failure.
@@ -196,27 +196,27 @@ I2CTarget *i2c_target_create_simple(I2CBus *bus,
  * reference to it.
  *
  * This function is useful if you have created @dev via qdev_new(),
- * i2c_target_new() or i2c_slave_try_new() (which take a reference to
+ * i2c_target_new() or i2c_target_try_new() (which take a reference to
  * the device it returns to you), so that you can set properties on it
  * before realizing it. If you don't need to set properties then
  * i2c_target_create_simple() is probably better (as it does the create,
  * init and realize in one step).
  *
- * If you are embedding the I2C slave into another QOM device and
+ * If you are embedding the I2C target into another QOM device and
  * initialized it via some variant on object_initialize_child() then
  * do not use this function, because that family of functions arrange
  * for the only reference to the child device to be held by the parent
  * via the child<> property, and so the reference-count-drop done here
- * would be incorrect.  (Instead you would want i2c_slave_realize(),
+ * would be incorrect.  (Instead you would want i2c_target_realize(),
  * which doesn't currently exist but would be trivial to create if we
  * had any code that wanted it.)
  */
 bool i2c_target_realize_and_unref(I2CTarget *dev, I2CBus *bus, Error **errp);
 
 /**
- * Set the I2C bus address of a slave device
- * @dev: I2C slave device
- * @address: I2C address of the slave when put on a bus
+ * Set the I2C bus address of a target device
+ * @dev: I2C target device
+ * @address: I2C address of the target when put on a bus
  */
 void i2c_target_set_address(I2CTarget *dev, uint8_t address);
 
diff --git a/hw/i2c/core.c b/hw/i2c/core.c
index fd34a6bc83..a8d12cae4e 100644
--- a/hw/i2c/core.c
+++ b/hw/i2c/core.c
@@ -103,7 +103,7 @@ bool i2c_scan_bus(I2CBus *bus, uint8_t address, bool broadcast,
     return broadcast;
 }
 
-/* TODO: Make this handle multiple masters.  */
+/* TODO: Make this handle multiple controllers.  */
 /*
  * Start or continue an i2c transaction.  When this is called for the
  * first time or after an i2c_end_transfer(), if it returns an error
