[PATCH v3 1/2] i2c: Inline i2c_chip_of_to_plat() into i2c_child_post_bind()

Marek Vasut marek.vasut+renesas at mailbox.org
Mon Nov 24 15:51:00 CET 2025


The i2c_chip_of_to_plat() is called only from i2c_child_post_bind(),
inline i2c_chip_of_to_plat() into i2c_child_post_bind(). Drop the
if CONFIG_IS_ENABLED(OF_REAL) and depend on if (!dev_has_ofnode(dev))
which does check CONFIG_IS_ENABLED(OF_REAL) internally too.

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: Heiko Schocher <hs at nabladev.com>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at lists.denx.de
---
V2: New patch
V3: Drop sandbox from subject
---
 drivers/i2c/i2c-uclass.c | 39 ++++++++++++++-------------------------
 include/i2c.h            | 13 -------------
 2 files changed, 14 insertions(+), 38 deletions(-)

diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
index 380a9f8f3ad..97466597d77 100644
--- a/drivers/i2c/i2c-uclass.c
+++ b/drivers/i2c/i2c-uclass.c
@@ -701,26 +701,6 @@ int i2c_deblock(struct udevice *bus)
 	return ops->deblock(bus);
 }
 
-#if CONFIG_IS_ENABLED(OF_REAL)
-int i2c_chip_of_to_plat(struct udevice *dev, struct dm_i2c_chip *chip)
-{
-	int addr;
-
-	chip->offset_len = dev_read_u32_default(dev, "u-boot,i2c-offset-len",
-						1);
-	chip->flags = 0;
-	addr = dev_read_u32_default(dev, "reg", -1);
-	if (addr == -1) {
-		debug("%s: I2C Node '%s' has no 'reg' property %s\n", __func__,
-		      dev_read_name(dev), dev->name);
-		return log_ret(-EINVAL);
-	}
-	chip->chip_addr = addr;
-
-	return 0;
-}
-#endif
-
 static int i2c_pre_probe(struct udevice *dev)
 {
 #if CONFIG_IS_ENABLED(OF_REAL)
@@ -760,15 +740,24 @@ static int i2c_post_probe(struct udevice *dev)
 
 static int i2c_child_post_bind(struct udevice *dev)
 {
-#if CONFIG_IS_ENABLED(OF_REAL)
-	struct dm_i2c_chip *plat = dev_get_parent_plat(dev);
+	struct dm_i2c_chip *chip = dev_get_parent_plat(dev);
+	int addr;
 
 	if (!dev_has_ofnode(dev))
 		return 0;
-	return i2c_chip_of_to_plat(dev, plat);
-#else
+
+	chip->offset_len = dev_read_u32_default(dev, "u-boot,i2c-offset-len",
+						1);
+	chip->flags = 0;
+	addr = dev_read_u32_default(dev, "reg", -1);
+	if (addr == -1) {
+		debug("%s: I2C Node '%s' has no 'reg' property %s\n", __func__,
+		      dev_read_name(dev), dev->name);
+		return log_ret(-EINVAL);
+	}
+	chip->chip_addr = addr;
+
 	return 0;
-#endif
 }
 
 static int i2c_post_bind(struct udevice *dev)
diff --git a/include/i2c.h b/include/i2c.h
index 91917f54be9..b2572076236 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -549,19 +549,6 @@ int i2c_get_chip_for_busnum(int busnum, int chip_addr, uint offset_len,
 int i2c_get_chip_by_phandle(const struct udevice *parent, const char *prop_name,
 			    struct udevice **devp);
 
-/**
- * i2c_chip_of_to_plat() - Decode standard I2C platform data
- *
- * This decodes the chip address from a device tree node and puts it into
- * its dm_i2c_chip structure. This should be called in your driver's
- * of_to_plat() method.
- *
- * @blob:	Device tree blob
- * @node:	Node offset to read from
- * @spi:	Place to put the decoded information
- */
-int i2c_chip_of_to_plat(struct udevice *dev, struct dm_i2c_chip *chip);
-
 /**
  * i2c_dump_msgs() - Dump a list of I2C messages
  *
-- 
2.51.0



More information about the U-Boot mailing list