diff --git a/drivers/i2c/acpi_i2c.c b/drivers/i2c/acpi_i2c.c
index ef12789..142f411 100644
--- a/drivers/i2c/acpi_i2c.c
+++ b/drivers/i2c/acpi_i2c.c
@@ -174,7 +174,7 @@
 	return 0;
 }
 
-int acpi_i2c_ofdata_to_platdata(struct udevice *dev)
+int acpi_i2c_of_to_plat(struct udevice *dev)
 {
 	struct acpi_i2c_priv *priv = dev_get_priv(dev);
 
diff --git a/drivers/i2c/acpi_i2c.h b/drivers/i2c/acpi_i2c.h
index 1f4be29..fc6616a 100644
--- a/drivers/i2c/acpi_i2c.h
+++ b/drivers/i2c/acpi_i2c.h
@@ -10,6 +10,6 @@
 
 extern struct acpi_ops acpi_i2c_ops;
 
-int acpi_i2c_ofdata_to_platdata(struct udevice *dev);
+int acpi_i2c_of_to_plat(struct udevice *dev);
 
 #endif
diff --git a/drivers/i2c/ast_i2c.c b/drivers/i2c/ast_i2c.c
index 9a223d8..3aa8ad1 100644
--- a/drivers/i2c/ast_i2c.c
+++ b/drivers/i2c/ast_i2c.c
@@ -87,7 +87,7 @@
 	       | I2CD_INTR_ABNORMAL, &priv->regs->icr);
 }
 
-static int ast_i2c_ofdata_to_platdata(struct udevice *dev)
+static int ast_i2c_of_to_plat(struct udevice *dev)
 {
 	struct ast_i2c_priv *priv = dev_get_priv(dev);
 	int ret;
@@ -351,7 +351,7 @@
 	.id = UCLASS_I2C,
 	.of_match = ast_i2c_ids,
 	.probe = ast_i2c_probe,
-	.ofdata_to_platdata = ast_i2c_ofdata_to_platdata,
+	.of_to_plat = ast_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct ast_i2c_priv),
 	.ops = &ast_i2c_ops,
 };
diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c
index db2fbc9..3eb6db4 100644
--- a/drivers/i2c/at91_i2c.c
+++ b/drivers/i2c/at91_i2c.c
@@ -219,7 +219,7 @@
 	return bus->speed;
 }
 
-static int at91_i2c_ofdata_to_platdata(struct udevice *dev)
+static int at91_i2c_of_to_plat(struct udevice *dev)
 {
 	const void *blob = gd->fdt_blob;
 	struct at91_i2c_bus *bus = dev_get_priv(dev);
@@ -317,7 +317,7 @@
 	.id	= UCLASS_I2C,
 	.of_match = at91_i2c_ids,
 	.probe = at91_i2c_probe,
-	.ofdata_to_platdata = at91_i2c_ofdata_to_platdata,
+	.of_to_plat = at91_i2c_of_to_plat,
 	.per_child_auto	= sizeof(struct dm_i2c_chip),
 	.priv_auto	= sizeof(struct at91_i2c_bus),
 	.ops	= &at91_i2c_ops,
diff --git a/drivers/i2c/cros_ec_tunnel.c b/drivers/i2c/cros_ec_tunnel.c
index 1cc5c06..970b91cf 100644
--- a/drivers/i2c/cros_ec_tunnel.c
+++ b/drivers/i2c/cros_ec_tunnel.c
@@ -29,7 +29,7 @@
 	return cros_ec_i2c_tunnel(dev->parent, i2c_bus->remote_bus, msg, nmsgs);
 }
 
-static int cros_ec_i2c_ofdata_to_platdata(struct udevice *dev)
+static int cros_ec_i2c_of_to_plat(struct udevice *dev)
 {
 	struct cros_ec_i2c_bus *i2c_bus = dev_get_priv(dev);
 	const void *blob = gd->fdt_blob;
@@ -55,7 +55,7 @@
 	.name	= "cros_ec_tunnel",
 	.id	= UCLASS_I2C,
 	.of_match = cros_ec_i2c_ids,
-	.ofdata_to_platdata = cros_ec_i2c_ofdata_to_platdata,
+	.of_to_plat = cros_ec_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct cros_ec_i2c_bus),
 	.ops	= &cros_ec_i2c_ops,
 };
diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c
index 1a083d9..60111b8 100644
--- a/drivers/i2c/designware_i2c.c
+++ b/drivers/i2c/designware_i2c.c
@@ -762,7 +762,7 @@
 	return ret;
 }
 
-int designware_i2c_ofdata_to_platdata(struct udevice *bus)
+int designware_i2c_of_to_plat(struct udevice *bus)
 {
 	struct dw_i2c *priv = dev_get_priv(bus);
 	int ret;
@@ -842,7 +842,7 @@
 	.name	= "i2c_designware",
 	.id	= UCLASS_I2C,
 	.of_match = designware_i2c_ids,
-	.ofdata_to_platdata = designware_i2c_ofdata_to_platdata,
+	.of_to_plat = designware_i2c_of_to_plat,
 	.probe	= designware_i2c_probe,
 	.priv_auto	= sizeof(struct dw_i2c),
 	.remove = designware_i2c_remove,
diff --git a/drivers/i2c/designware_i2c.h b/drivers/i2c/designware_i2c.h
index 18acf4e..9b2349a 100644
--- a/drivers/i2c/designware_i2c.h
+++ b/drivers/i2c/designware_i2c.h
@@ -212,7 +212,7 @@
 
 int designware_i2c_probe(struct udevice *bus);
 int designware_i2c_remove(struct udevice *dev);
-int designware_i2c_ofdata_to_platdata(struct udevice *bus);
+int designware_i2c_of_to_plat(struct udevice *bus);
 
 /**
  * dw_i2c_gen_speed_config() - Calculate config info from requested speed
diff --git a/drivers/i2c/designware_i2c_pci.c b/drivers/i2c/designware_i2c_pci.c
index d62805a..8d7b1fe 100644
--- a/drivers/i2c/designware_i2c_pci.c
+++ b/drivers/i2c/designware_i2c_pci.c
@@ -34,7 +34,7 @@
 /* Have a weak function for now - possibly should be a new uclass */
 __weak void lpss_reset_release(void *regs);
 
-static int designware_i2c_pci_ofdata_to_platdata(struct udevice *dev)
+static int designware_i2c_pci_of_to_plat(struct udevice *dev)
 {
 	struct dw_i2c *priv = dev_get_priv(dev);
 
@@ -71,7 +71,7 @@
 	if (dev_get_driver_data(dev) == INTEL_APL)
 		priv->has_spk_cnt = true;
 
-	return designware_i2c_ofdata_to_platdata(dev);
+	return designware_i2c_of_to_plat(dev);
 }
 
 static int designware_i2c_pci_probe(struct udevice *dev)
@@ -211,7 +211,7 @@
 	.id	= UCLASS_I2C,
 	.of_match = designware_i2c_pci_ids,
 	.bind	= designware_i2c_pci_bind,
-	.ofdata_to_platdata	= designware_i2c_pci_ofdata_to_platdata,
+	.of_to_plat	= designware_i2c_pci_of_to_plat,
 	.probe	= designware_i2c_pci_probe,
 	.priv_auto	= sizeof(struct dw_i2c),
 	.remove = designware_i2c_remove,
diff --git a/drivers/i2c/exynos_hs_i2c.c b/drivers/i2c/exynos_hs_i2c.c
index 2ef6f53..7dbf0a4 100644
--- a/drivers/i2c/exynos_hs_i2c.c
+++ b/drivers/i2c/exynos_hs_i2c.c
@@ -517,7 +517,7 @@
 	return ret != I2C_OK;
 }
 
-static int s3c_i2c_ofdata_to_platdata(struct udevice *dev)
+static int s3c_i2c_of_to_plat(struct udevice *dev)
 {
 	const void *blob = gd->fdt_blob;
 	struct s3c24x0_i2c_bus *i2c_bus = dev_get_priv(dev);
@@ -557,7 +557,7 @@
 	.name	= "i2c_s3c_hs",
 	.id	= UCLASS_I2C,
 	.of_match = exynos_hs_i2c_ids,
-	.ofdata_to_platdata = s3c_i2c_ofdata_to_platdata,
+	.of_to_plat = s3c_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct s3c24x0_i2c_bus),
 	.ops	= &exynos_hs_i2c_ops,
 };
diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c
index f55b475..875d307 100644
--- a/drivers/i2c/fsl_i2c.c
+++ b/drivers/i2c/fsl_i2c.c
@@ -573,7 +573,7 @@
 	return __i2c_set_bus_speed(dev->base, speed, dev->i2c_clk);
 }
 
-static int fsl_i2c_ofdata_to_platdata(struct udevice *bus)
+static int fsl_i2c_of_to_plat(struct udevice *bus)
 {
 	struct fsl_i2c_dev *dev = dev_get_priv(bus);
 	struct clk clock;
@@ -649,7 +649,7 @@
 	.id = UCLASS_I2C,
 	.of_match = fsl_i2c_ids,
 	.probe = fsl_i2c_probe,
-	.ofdata_to_platdata = fsl_i2c_ofdata_to_platdata,
+	.of_to_plat = fsl_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct fsl_i2c_dev),
 	.ops = &fsl_i2c_ops,
 };
diff --git a/drivers/i2c/i2c-cdns.c b/drivers/i2c/i2c-cdns.c
index 2cf2233..db3c04f 100644
--- a/drivers/i2c/i2c-cdns.c
+++ b/drivers/i2c/i2c-cdns.c
@@ -460,7 +460,7 @@
 	return ret;
 }
 
-static int cdns_i2c_ofdata_to_platdata(struct udevice *dev)
+static int cdns_i2c_of_to_plat(struct udevice *dev)
 {
 	struct i2c_cdns_bus *i2c_bus = dev_get_priv(dev);
 	struct cdns_i2c_platform_data *pdata =
@@ -503,7 +503,7 @@
 	.name = "i2c_cdns",
 	.id = UCLASS_I2C,
 	.of_match = cdns_i2c_of_match,
-	.ofdata_to_platdata = cdns_i2c_ofdata_to_platdata,
+	.of_to_plat = cdns_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct i2c_cdns_bus),
 	.ops = &cdns_i2c_ops,
 };
diff --git a/drivers/i2c/i2c-cortina.c b/drivers/i2c/i2c-cortina.c
index 420dfdb..960ae8c 100644
--- a/drivers/i2c/i2c-cortina.c
+++ b/drivers/i2c/i2c-cortina.c
@@ -322,7 +322,7 @@
 	return 0;
 }
 
-static int ca_i2c_ofdata_to_platdata(struct udevice *bus)
+static int ca_i2c_of_to_plat(struct udevice *bus)
 {
 	struct ca_i2c *priv = dev_get_priv(bus);
 
@@ -339,7 +339,7 @@
 	.name	= "i2c_cortina",
 	.id	= UCLASS_I2C,
 	.of_match = ca_i2c_ids,
-	.ofdata_to_platdata = ca_i2c_ofdata_to_platdata,
+	.of_to_plat = ca_i2c_of_to_plat,
 	.probe	= ca_i2c_probe,
 	.priv_auto	= sizeof(struct ca_i2c),
 	.ops	= &ca_i2c_ops,
diff --git a/drivers/i2c/i2c-gpio.c b/drivers/i2c/i2c-gpio.c
index 9b2f6f2..8bd96a0 100644
--- a/drivers/i2c/i2c-gpio.c
+++ b/drivers/i2c/i2c-gpio.c
@@ -329,7 +329,7 @@
 	return 0;
 }
 
-static int i2c_gpio_ofdata_to_platdata(struct udevice *dev)
+static int i2c_gpio_of_to_plat(struct udevice *dev)
 {
 	struct i2c_gpio_bus *bus = dev_get_priv(dev);
 	int ret;
@@ -371,7 +371,7 @@
 	.id	= UCLASS_I2C,
 	.of_match = i2c_gpio_ids,
 	.probe	= i2c_gpio_drv_probe,
-	.ofdata_to_platdata = i2c_gpio_ofdata_to_platdata,
+	.of_to_plat = i2c_gpio_of_to_plat,
 	.priv_auto	= sizeof(struct i2c_gpio_bus),
 	.ops	= &i2c_gpio_ops,
 };
diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
index e814205..490437b 100644
--- a/drivers/i2c/i2c-uclass.c
+++ b/drivers/i2c/i2c-uclass.c
@@ -617,7 +617,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
-int i2c_chip_ofdata_to_platdata(struct udevice *dev, struct dm_i2c_chip *chip)
+int i2c_chip_of_to_plat(struct udevice *dev, struct dm_i2c_chip *chip)
 {
 	int addr;
 
@@ -680,7 +680,7 @@
 
 	if (!dev_of_valid(dev))
 		return 0;
-	return i2c_chip_ofdata_to_platdata(dev, plat);
+	return i2c_chip_of_to_plat(dev, plat);
 #else
 	return 0;
 #endif
@@ -765,7 +765,7 @@
 	.id		= UCLASS_I2C_GENERIC,
 	.of_match	= generic_chip_i2c_ids,
 #if CONFIG_IS_ENABLED(ACPIGEN)
-	.ofdata_to_platdata	= acpi_i2c_ofdata_to_platdata,
+	.of_to_plat	= acpi_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct acpi_i2c_priv),
 #endif
 	ACPI_OPS_PTR(&acpi_i2c_ops)
diff --git a/drivers/i2c/iproc_i2c.c b/drivers/i2c/iproc_i2c.c
index 20e2595..83301bb 100644
--- a/drivers/i2c/iproc_i2c.c
+++ b/drivers/i2c/iproc_i2c.c
@@ -672,7 +672,7 @@
 	return iproc_i2c_init(bus);
 }
 
-static int iproc_i2c_ofdata_to_platdata(struct udevice *bus)
+static int iproc_i2c_of_to_plat(struct udevice *bus)
 {
 	struct iproc_i2c *bus_prvdata = dev_get_priv(bus);
 	int node = dev_of_offset(bus);
@@ -705,7 +705,7 @@
 	.name	= "iproc_i2c",
 	.id	= UCLASS_I2C,
 	.of_match = iproc_i2c_ids,
-	.ofdata_to_platdata = iproc_i2c_ofdata_to_platdata,
+	.of_to_plat = iproc_i2c_of_to_plat,
 	.probe	= iproc_i2c_probe,
 	.priv_auto	= sizeof(struct iproc_i2c),
 	.ops	= &iproc_i2c_ops,
diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c
index 06efe84..d21a84c 100644
--- a/drivers/i2c/muxes/pca954x.c
+++ b/drivers/i2c/muxes/pca954x.c
@@ -108,7 +108,7 @@
 	{ }
 };
 
-static int pca954x_ofdata_to_platdata(struct udevice *dev)
+static int pca954x_of_to_plat(struct udevice *dev)
 {
 	struct pca954x_priv *priv = dev_get_priv(dev);
 	const struct chip_desc *chip = &chips[dev_get_driver_data(dev)];
@@ -171,6 +171,6 @@
 	.probe = pca954x_probe,
 	.remove = pca954x_remove,
 	.ops = &pca954x_ops,
-	.ofdata_to_platdata = pca954x_ofdata_to_platdata,
+	.of_to_plat = pca954x_of_to_plat,
 	.priv_auto	= sizeof(struct pca954x_priv),
 };
diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c
index dd9cfeb..1fcb8c6 100644
--- a/drivers/i2c/mvtwsi.c
+++ b/drivers/i2c/mvtwsi.c
@@ -794,7 +794,7 @@
 	return 0;
 }
 
-static int mvtwsi_i2c_ofdata_to_platdata(struct udevice *bus)
+static int mvtwsi_i2c_of_to_plat(struct udevice *bus)
 {
 	struct mvtwsi_i2c_dev *dev = dev_get_priv(bus);
 
@@ -888,7 +888,7 @@
 	.of_match = mvtwsi_i2c_ids,
 	.bind = mvtwsi_i2c_bind,
 	.probe = mvtwsi_i2c_probe,
-	.ofdata_to_platdata = mvtwsi_i2c_ofdata_to_platdata,
+	.of_to_plat = mvtwsi_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct mvtwsi_i2c_dev),
 	.ops = &mvtwsi_i2c_ops,
 };
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index 9d05a1f..322d721 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -1063,7 +1063,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
-static int omap_i2c_ofdata_to_platdata(struct udevice *bus)
+static int omap_i2c_of_to_plat(struct udevice *bus)
 {
 	struct omap_i2c_platdata *plat = dev_get_plat(bus);
 
@@ -1093,7 +1093,7 @@
 	.id	= UCLASS_I2C,
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
 	.of_match = omap_i2c_ids,
-	.ofdata_to_platdata = omap_i2c_ofdata_to_platdata,
+	.of_to_plat = omap_i2c_of_to_plat,
 	.plat_auto	= sizeof(struct omap_i2c_platdata),
 #endif
 	.probe	= omap_i2c_probe,
diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c
index e9717e5..704bafe 100644
--- a/drivers/i2c/rk_i2c.c
+++ b/drivers/i2c/rk_i2c.c
@@ -375,7 +375,7 @@
 	return 0;
 }
 
-static int rockchip_i2c_ofdata_to_platdata(struct udevice *bus)
+static int rockchip_i2c_of_to_plat(struct udevice *bus)
 {
 	struct rk_i2c *priv = dev_get_priv(bus);
 	int ret;
@@ -489,7 +489,7 @@
 	.name	= "rockchip_rk3066_i2c",
 	.id	= UCLASS_I2C,
 	.of_match = rockchip_i2c_ids,
-	.ofdata_to_platdata = rockchip_i2c_ofdata_to_platdata,
+	.of_to_plat = rockchip_i2c_of_to_plat,
 	.probe	= rockchip_i2c_probe,
 	.priv_auto	= sizeof(struct rk_i2c),
 	.ops	= &rockchip_i2c_ops,
diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
index ca94d29..ff2c345 100644
--- a/drivers/i2c/s3c24x0_i2c.c
+++ b/drivers/i2c/s3c24x0_i2c.c
@@ -302,7 +302,7 @@
 	return ret ? -EREMOTEIO : 0;
 }
 
-static int s3c_i2c_ofdata_to_platdata(struct udevice *dev)
+static int s3c_i2c_of_to_plat(struct udevice *dev)
 {
 	const void *blob = gd->fdt_blob;
 	struct s3c24x0_i2c_bus *i2c_bus = dev_get_priv(dev);
@@ -342,7 +342,7 @@
 	.name	= "i2c_s3c",
 	.id	= UCLASS_I2C,
 	.of_match = s3c_i2c_ids,
-	.ofdata_to_platdata = s3c_i2c_ofdata_to_platdata,
+	.of_to_plat = s3c_i2c_of_to_plat,
 	.priv_auto	= sizeof(struct s3c24x0_i2c_bus),
 	.ops	= &s3c_i2c_ops,
 };
diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c
index 483d834..6553bdc 100644
--- a/drivers/i2c/stm32f7_i2c.c
+++ b/drivers/i2c/stm32f7_i2c.c
@@ -901,7 +901,7 @@
 	return ret;
 }
 
-static int stm32_ofdata_to_platdata(struct udevice *dev)
+static int stm32_of_to_plat(struct udevice *dev)
 {
 	struct stm32_i2c_priv *i2c_priv = dev_get_priv(dev);
 	u32 rise_time, fall_time;
@@ -953,7 +953,7 @@
 	.name = "stm32f7-i2c",
 	.id = UCLASS_I2C,
 	.of_match = stm32_i2c_of_match,
-	.ofdata_to_platdata = stm32_ofdata_to_platdata,
+	.of_to_plat = stm32_of_to_plat,
 	.probe = stm32_i2c_probe,
 	.priv_auto	= sizeof(struct stm32_i2c_priv),
 	.ops = &stm32_i2c_ops,
