|
|
@ -42,7 +42,7 @@ int __weak board_vdd_drop_compensation(void) |
|
|
|
* The IR chip can show up under the following addresses: |
|
|
|
* The IR chip can show up under the following addresses: |
|
|
|
* 0x08 (Verified on T1040RDB-PA,T4240RDB-PB,X-T4240RDB-16GPA) |
|
|
|
* 0x08 (Verified on T1040RDB-PA,T4240RDB-PB,X-T4240RDB-16GPA) |
|
|
|
* 0x09 (Verified on T1040RDB-PA) |
|
|
|
* 0x09 (Verified on T1040RDB-PA) |
|
|
|
* 0x38 (Verified on T2080QDS, T2081QDS) |
|
|
|
* 0x38 (Verified on T2080QDS, T2081QDS, T4240RDB) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
static int find_ir_chip_on_i2c(void) |
|
|
|
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); |
|
|
|
(void __iomem *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
u32 fusesr; |
|
|
|
u32 fusesr; |
|
|
|
u8 vid; |
|
|
|
u8 vid, buf; |
|
|
|
int vdd_target, vdd_current, vdd_last; |
|
|
|
int vdd_target, vdd_current, vdd_last; |
|
|
|
int ret, i2caddress; |
|
|
|
int ret, i2caddress; |
|
|
|
unsigned long vdd_string_override; |
|
|
|
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); |
|
|
|
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 */ |
|
|
|
/* get the voltage ID from fuse status register */ |
|
|
|
fusesr = in_be32(&gur->dcfg_fusesr); |
|
|
|
fusesr = in_be32(&gur->dcfg_fusesr); |
|
|
|
/*
|
|
|
|
/*
|
|
|
|