mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
mvebu: turris_omnia: Fix PEX vs SATA detection for board topology
The I2C reading in the PEX vs SATA detection code often fails on the first try. Try three times, as the code for EEPROM reading does. Signed-off-by: Marek Behun <marek.behun@nic.cz> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
eaa90e5df2
commit
8daa3468b5
1 changed files with 8 additions and 3 deletions
|
@ -90,7 +90,7 @@ static struct serdes_map board_serdes_map_sata[] = {
|
|||
static bool omnia_detect_sata(void)
|
||||
{
|
||||
struct udevice *bus, *dev;
|
||||
int ret;
|
||||
int ret, retry = 3;
|
||||
u16 mode;
|
||||
|
||||
puts("SERDES0 card detect: ");
|
||||
|
@ -106,8 +106,13 @@ static bool omnia_detect_sata(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
ret = dm_i2c_read(dev, OMNIA_I2C_MCU_ADDR_STATUS, (uchar *) &mode, 2);
|
||||
if (ret) {
|
||||
for (; retry > 0; --retry) {
|
||||
ret = dm_i2c_read(dev, OMNIA_I2C_MCU_ADDR_STATUS, (uchar *) &mode, 2);
|
||||
if (!ret)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!retry) {
|
||||
puts("I2C read failed! Default PEX\n");
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue