aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatolij Gustschin <agust@denx.de>2024-07-19 23:51:23 +0200
committerTom Rini <trini@konsulko.com>2024-07-23 10:36:46 -0600
commit3efd925d701065bde609a622c3a011088c439237 (patch)
tree7eb43c7e6347fc02c1e2dc09cbdb18c08a2a6403
parent123f6f75dfcb5f88d821e4eb91ddedfb7718d601 (diff)
downloadu-boot-3efd925d701065bde609a622c3a011088c439237.zip
u-boot-3efd925d701065bde609a622c3a011088c439237.tar.gz
u-boot-3efd925d701065bde609a622c3a011088c439237.tar.bz2
board: beagle: convert to CONFIG_DM_I2C
Rework to remove use of legacy I2C API. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Tom Rini <trini@konsulko.com>
-rw-r--r--board/beagle/beagle/beagle.c41
-rw-r--r--configs/omap3_beagle_defconfig2
-rw-r--r--include/configs/omap3_beagle.h3
3 files changed, 26 insertions, 20 deletions
diff --git a/board/beagle/beagle/beagle.c b/board/beagle/beagle/beagle.c
index ac2f89c..ae25881 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 8a70924..f767093 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 af7cb35..b616dd2 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 */