board: cm_fx6: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C to fix board
removal warning. Convert EEPROM access to use DM_I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
This commit is contained in:
Anatolij Gustschin 2024-08-07 15:09:33 +02:00 committed by Heiko Schocher
parent f1aacad168
commit 3b3421771e
5 changed files with 16 additions and 13 deletions

View file

@ -14,6 +14,7 @@
#include <env.h> #include <env.h>
#include <fsl_esdhc_imx.h> #include <fsl_esdhc_imx.h>
#include <init.h> #include <init.h>
#include <i2c.h>
#include <miiphy.h> #include <miiphy.h>
#include <mtd_node.h> #include <mtd_node.h>
#include <net.h> #include <net.h>
@ -256,7 +257,7 @@ static int cm_fx6_setup_one_i2c(int busnum, struct i2c_pads_info *pads)
{ {
int ret; int ret;
ret = setup_i2c(busnum, CONFIG_SYS_I2C_SPEED, 0x7f, pads); ret = setup_i2c(busnum, I2C_SPEED_STANDARD_RATE, 0x7f, pads);
if (ret) if (ret)
printf("Warning: I2C%d setup failed: %d\n", busnum, ret); printf("Warning: I2C%d setup failed: %d\n", busnum, ret);

View file

@ -4,6 +4,12 @@
# #
# Author: Igor Grinberg <grinberg@compulab.co.il> # Author: Igor Grinberg <grinberg@compulab.co.il>
CL_EEPROM=y
ifdef CONFIG_TARGET_TRIMSLICE
CL_EEPROM=
endif
obj-y += common.o obj-y += common.o
obj-$(CONFIG_$(SPL_)SYS_I2C_LEGACY) += eeprom.o obj-$(CL_EEPROM) += eeprom.o
obj-$(CONFIG_SMC911X) += omap3_smc911x.o obj-$(CONFIG_SMC911X) += omap3_smc911x.o

View file

@ -34,19 +34,15 @@ static int cl_eeprom_layout; /* Implicitly LAYOUT_INVALID */
static int cl_eeprom_read(uint offset, uchar *buf, int len) static int cl_eeprom_read(uint offset, uchar *buf, int len)
{ {
struct udevice *eeprom;
int res; int res;
unsigned int current_i2c_bus = i2c_get_bus_num();
res = i2c_set_bus_num(cl_eeprom_bus); res = i2c_get_chip_for_busnum(cl_eeprom_bus, CONFIG_SYS_I2C_EEPROM_ADDR,
if (res < 0) CONFIG_SYS_I2C_EEPROM_ADDR_LEN, &eeprom);
if (res)
return res; return res;
res = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, offset, return dm_i2c_read(eeprom, offset, (uint8_t *)buf, len);
CONFIG_SYS_I2C_EEPROM_ADDR_LEN, buf, len);
i2c_set_bus_num(current_i2c_bus);
return res;
} }
static int cl_eeprom_setup(uint eeprom_bus) static int cl_eeprom_setup(uint eeprom_bus)

View file

@ -10,7 +10,7 @@
#define _EEPROM_ #define _EEPROM_
#include <errno.h> #include <errno.h>
#if CONFIG_IS_ENABLED(SYS_I2C_LEGACY) #if !CONFIG_IS_ENABLED(TARGET_TRIMSLICE)
int cl_eeprom_read_mac_addr(uchar *buf, uint eeprom_bus); int cl_eeprom_read_mac_addr(uchar *buf, uint eeprom_bus);
u32 cl_eeprom_get_board_rev(uint eeprom_bus); u32 cl_eeprom_get_board_rev(uint eeprom_bus);
int cl_eeprom_get_product_name(uchar *buf, uint eeprom_bus); int cl_eeprom_get_product_name(uchar *buf, uint eeprom_bus);

View file

@ -80,7 +80,7 @@ CONFIG_BOUNCE_BUFFER=y
CONFIG_DWC_AHSATA=y CONFIG_DWC_AHSATA=y
# CONFIG_DWC_AHSATA_AHCI is not set # CONFIG_DWC_AHSATA_AHCI is not set
CONFIG_LBA48=y CONFIG_LBA48=y
CONFIG_SYS_I2C_LEGACY=y CONFIG_DM_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y CONFIG_SPL_SYS_I2C_LEGACY=y
CONFIG_SYS_I2C_MXC=y CONFIG_SYS_I2C_MXC=y
CONFIG_SYS_MXC_I2C3_SPEED=400000 CONFIG_SYS_MXC_I2C3_SPEED=400000