[PATCH 4/6] legoev3: Migrate to DM_I2C

Tom Rini trini at konsulko.com
Mon Jun 27 19:35:49 CEST 2022


Perform a basic migration of the calls in setup_serial_number() to DM so
that we can switch to using DM_I2C on this platform.

Cc: David Lechner <david at lechnology.com>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
 board/lego/ev3/legoev3.c  | 15 +++++++++++++--
 configs/legoev3_defconfig |  2 +-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/board/lego/ev3/legoev3.c b/board/lego/ev3/legoev3.c
index 980ffef4cdfd..834926013101 100644
--- a/board/lego/ev3/legoev3.c
+++ b/board/lego/ev3/legoev3.c
@@ -27,6 +27,7 @@
 #include <hwconfig.h>
 #include <asm/mach-types.h>
 #include <asm/setup.h>
+#include <dm/uclass.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -57,6 +58,8 @@ const int lpsc_size = ARRAY_SIZE(lpsc);
  */
 static void setup_serial_number(void)
 {
+	struct udevice *idev, *ibus;
+	int ret;
 	u32 offset;
 	char serial_number[13];
 	u8 buf[6];
@@ -65,7 +68,15 @@ static void setup_serial_number(void)
 	if (env_get("serial#"))
 		return;
 
-	if (i2c_read(EEPROM_I2C_ADDR, EEPROM_REV_OFFSET, 2, buf, 2)) {
+	ret = uclass_get_device_by_seq(UCLASS_I2C, 0, &ibus);
+	if (ret)
+		return;
+
+	ret = dm_i2c_probe(ibus, EEPROM_I2C_ADDR, 0, &idev);
+	if (ret)
+		return;
+
+	if (dm_i2c_read(idev, EEPROM_REV_OFFSET, buf, 2)) {
 		printf("\nEEPROM revision read failed!\n");
 		return;
 	}
@@ -83,7 +94,7 @@ static void setup_serial_number(void)
 	/* EEPROM rev 3 has Bluetooth address where rev should be */
 	offset = (eeprom_rev == 3) ? EEPROM_REV_OFFSET : EEPROM_BDADDR_OFFSET;
 
-	if (i2c_read(EEPROM_I2C_ADDR, offset, 2, buf, 6)) {
+	if (dm_i2c_read(idev, offset, buf, 6)) {
 		printf("\nEEPROM serial read failed!\n");
 		return;
 	}
diff --git a/configs/legoev3_defconfig b/configs/legoev3_defconfig
index 3612afb463c2..36e3d7069238 100644
--- a/configs/legoev3_defconfig
+++ b/configs/legoev3_defconfig
@@ -46,7 +46,7 @@ CONFIG_VERSION_VARIABLE=y
 # CONFIG_NET is not set
 CONFIG_DM=y
 # CONFIG_DM_DEVICE_REMOVE is not set
-CONFIG_SYS_I2C_LEGACY=y
+CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DAVINCI=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
-- 
2.25.1



More information about the U-Boot mailing list