[U-Boot] [PATCH v2] board/t4240rdb: VID support

york sun york.sun at nxp.com
Thu Jan 21 17:43:11 CET 2016


On 01/20/2016 11:31 PM, ying.zhang at freescale.com wrote:
> From: Ying Zhang <b40530 at freescale.com>
> 
> The fuse status register provides the values from on-chip
> voltage ID efuses programmed at the factory.
> These values define the voltage requirements for
> the chip. u-boot reads FUSESR and translates the values
> into the appropriate commands to set the voltage output
> value of an external voltage regulator.
> 
> Signed-off-by: Ying Zhang <b40530 at freescale.com>
> ---
> Changed from v1:
>     - Not support IR chip is used in AMD mode
> ---
>  board/freescale/common/vid.c     | 19 +++++++++++++++++--
>  board/freescale/common/vid.h     |  4 ++++
>  board/freescale/t4rdb/t4240rdb.c |  7 +++++++
>  include/configs/T4240RDB.h       | 10 ++++++++++
>  4 files changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c
> index f1bed51..1bd65a8 100644
> --- a/board/freescale/common/vid.c
> +++ b/board/freescale/common/vid.c
> @@ -42,7 +42,7 @@ int __weak board_vdd_drop_compensation(void)
>   * The IR chip can show up under the following addresses:
>   * 0x08 (Verified on T1040RDB-PA,T4240RDB-PB,X-T4240RDB-16GPA)
>   * 0x09 (Verified on T1040RDB-PA)
> - * 0x38 (Verified on T2080QDS, T2081QDS)
> + * 0x38 (Verified on T2080QDS, T2081QDS, T4240RDB)
>   */
>  static int find_ir_chip_on_i2c(void)
>  {
> @@ -292,7 +292,7 @@ int adjust_vdd(ulong vdd_override)
>  		(void __iomem *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
>  #endif
>  	u32 fusesr;
> -	u8 vid;
> +	u8 vid, buf;
>  	int vdd_target, vdd_current, vdd_last;
>  	int ret, i2caddress;
>  	unsigned long vdd_string_override;
> @@ -346,6 +346,21 @@ int adjust_vdd(ulong vdd_override)
>  		debug("VID: IR Chip found on I2C address 0x%02x\n", i2caddress);
>  	}
>  
> +	/* check IR chip work on Intel mode*/
> +	ret = i2c_read(i2caddress,
> +		       IR36021_INTEL_MODE_OOFSET,
> +		       1, (void *)&buf, 1);
> +	if (ret) {
> +		printf("VID: failed to read IR chip mode.\n");
> +		ret = -1;
> +		goto exit;
> +	}
> +	if ((buf & IR36021_MODE_MASK) != IR36021_INTEL_MODE) {
> +		printf("VID: IR Chip is not used in Intel mode.\n");
> +		ret = -1;
> +		goto exit;
> +	}
> +
>  	/* get the voltage ID from fuse status register */
>  	fusesr = in_be32(&gur->dcfg_fusesr);
>  	/*

This change is not specifically for T4240RDB. Please separate IR change to
another patch.

York


More information about the U-Boot mailing list