[PATCH 6/9] arm: mvebu: axp/high_speed_env_lib: Switch to DM_I2C API

Stefan Roese sr at denx.de
Sat Dec 18 14:44:19 CET 2021


On 11/18/21 09:19, Stefan Roese wrote:
> After all Armada XP boards have been switched over from legacy I2C
> support to DM I2C, let's now also convert this serdes code to use
> the DM I2C API.
> 
> Signed-off-by: Stefan Roese <sr at denx.de>

Applied to u-boot-marvell/next

Thanks,
Stefan

> ---
>   .../mach-mvebu/serdes/axp/high_speed_env_lib.c  | 17 +++++++++++++----
>   1 file changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
> index ea3b4c7d5b72..0b63664dd8be 100644
> --- a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
> +++ b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
> @@ -77,6 +77,7 @@ static u32 board_id_get(void)
>   
>   __weak u8 board_sat_r_get(u8 dev_num, u8 reg)
>   {
> +	struct udevice *udev;
>   	u8 data;
>   	u8 *dev;
>   	u32 board_id = board_id_get();
> @@ -107,8 +108,11 @@ __weak u8 board_sat_r_get(u8 dev_num, u8 reg)
>   	}
>   
>   	/* Read MPP module ID */
> -	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
> -	ret = i2c_read(dev[dev_num], 0, 1, (u8 *)&data, 1);
> +	ret = i2c_get_chip_for_busnum(0, dev[dev_num], 1, &udev);
> +	if (ret)
> +		return MV_ERROR;
> +
> +	ret = dm_i2c_read(udev, 0, &data, 1);
>   	if (ret)
>   		return MV_ERROR;
>   
> @@ -124,13 +128,18 @@ static int board_modules_scan(void)
>   	/* Perform scan only for DB board */
>   	if ((board_id == DB_88F78XX0_BP_ID) ||
>   	    (board_id == DB_88F78XX0_BP_REV2_ID)) {
> +		struct udevice *udev;
> +
>   		/* reset modules flags */
>   		config_module = 0;
>   
> -		i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
> +		ret = i2c_get_chip_for_busnum(0, MV_BOARD_PEX_MODULE_ADDR,
> +					      1, &udev);
> +		if (ret)
> +			return MV_ERROR;
>   
>   		/* SERDES module (only PEX model is supported now) */
> -		ret = i2c_read(MV_BOARD_PEX_MODULE_ADDR, 0, 1, (u8 *)&val, 1);
> +		ret = dm_i2c_read(udev, 0, &val, 1);
>   		if (ret)
>   			return MV_ERROR;
>   
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list