All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatolij Gustschin <agust@denx.de>
To: u-boot@lists.denx.de
Cc: Tom Rini <trini@konsulko.com>
Subject: [PATCH] board: beagle: convert to CONFIG_DM_I2C
Date: Fri, 19 Jul 2024 23:51:23 +0200	[thread overview]
Message-ID: <20240719215123.3358410-1-agust@denx.de> (raw)

Rework to remove use of legacy I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Tom Rini <trini@konsulko.com>
---
 board/beagle/beagle/beagle.c   | 41 +++++++++++++++++++++-------------
 configs/omap3_beagle_defconfig |  2 +-
 include/configs/omap3_beagle.h |  3 ---
 3 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/board/beagle/beagle/beagle.c b/board/beagle/beagle/beagle.c
index ac2f89cf21..ae258817e9 100644
--- a/board/beagle/beagle/beagle.c
+++ b/board/beagle/beagle/beagle.c
@@ -41,7 +41,6 @@
 #include "beagle.h"
 #include <command.h>
 
-#define TWL4030_I2C_BUS			0
 #define EXPANSION_EEPROM_I2C_BUS	1
 #define EXPANSION_EEPROM_I2C_ADDRESS	0x50
 
@@ -213,27 +212,37 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)
  */
 static unsigned int get_expansion_id(void)
 {
-	i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS);
+	struct udevice *eeprom = NULL;
+	int ret;
 
-	/* return BEAGLE_NO_EEPROM if eeprom doesn't respond */
-	if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) {
-		i2c_set_bus_num(TWL4030_I2C_BUS);
+	ret = i2c_get_chip_for_busnum(EXPANSION_EEPROM_I2C_BUS,
+				      EXPANSION_EEPROM_I2C_ADDRESS, 1, &eeprom);
+	if (ret)
 		return BEAGLE_NO_EEPROM;
-	}
 
 	/* read configuration data */
-	i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
-		 sizeof(expansion_config));
+	ret = dm_i2c_read(eeprom, 0, (uint8_t *)&expansion_config,
+			  sizeof(expansion_config));
+	if (ret != 0) {
+		/* return BEAGLE_NO_EEPROM if eeprom doesn't respond */
+		return BEAGLE_NO_EEPROM;
+	}
 
-	/* retry reading configuration data with 16bit addressing */
 	if ((expansion_config.device_vendor == 0xFFFFFF00) ||
 	    (expansion_config.device_vendor == 0xFFFFFFFF)) {
 		printf("EEPROM is blank or 8bit addressing failed: retrying with 16bit:\n");
-		i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 2, (u8 *)&expansion_config,
-			 sizeof(expansion_config));
 	}
 
-	i2c_set_bus_num(TWL4030_I2C_BUS);
+	/* retry reading configuration data with 16bit addressing */
+	ret = i2c_get_chip_for_busnum(EXPANSION_EEPROM_I2C_BUS,
+				      EXPANSION_EEPROM_I2C_ADDRESS, 2, &eeprom);
+	if (ret)
+		return BEAGLE_NO_EEPROM;
+
+	ret = dm_i2c_read(eeprom, 0, (uint8_t *)&expansion_config,
+			  sizeof(expansion_config));
+	if (ret != 0)
+		return BEAGLE_NO_EEPROM;
 
 	return expansion_config.device_vendor;
 }
@@ -281,13 +290,13 @@ static void beagle_dvi_pup(void)
 		#define GPIODATADIR1 (TWL4030_BASEADD_GPIO+3)
 		#define GPIODATAOUT1 (TWL4030_BASEADD_GPIO+6)
 
-		i2c_read(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1);
+		twl4030_i2c_read_u8(TWL4030_CHIP_GPIO, GPIODATADIR1, &val);
 		val |= 4;
-		i2c_write(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1);
+		twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, GPIODATADIR1, val);
 
-		i2c_read(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1);
+		twl4030_i2c_read_u8(TWL4030_CHIP_GPIO, GPIODATAOUT1, &val);
 		val |= 4;
-		i2c_write(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1);
+		twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, GPIODATAOUT1, val);
 		break;
 	}
 }
diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig
index 8a709243a9..f76709389c 100644
--- a/configs/omap3_beagle_defconfig
+++ b/configs/omap3_beagle_defconfig
@@ -61,7 +61,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
-CONFIG_SYS_I2C_LEGACY=y
+CONFIG_DM_I2C=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_LED_STATUS=y
 CONFIG_LED_STATUS0=y
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index af7cb3513f..b616dd2608 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -28,9 +28,6 @@
 /* NAND: SPL falcon mode configs */
 #endif /* CONFIG_MTD_RAW_NAND */
 
-/* Enable Multi Bus support for I2C */
-#define CFG_I2C_MULTI_BUS
-
 /* DSS Support */
 
 /* TWL4030 LED Support */
-- 
2.25.1


             reply	other threads:[~2024-07-19 21:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-19 21:51 Anatolij Gustschin [this message]
2024-07-20 12:36 ` [PATCH] board: beagle: convert to CONFIG_DM_I2C Simon Glass
2024-07-20 13:09   ` Anatolij Gustschin
2024-07-20 18:08     ` Robert Nelson
2024-07-20 17:11 ` Tom Rini
2024-07-23 21:04 ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240719215123.3358410-1-agust@denx.de \
    --to=agust@denx.de \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.