[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