mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
board: gateworks: venice: enable GSC supervisor for new board models
The Gateworks System Controller (GSC) has a voltage supervisor which is disabled by default. On older boards we want to maintian this but on newer boards we wish to enable the voltage supervisor. The Gateworks System Controller (GSC) can disable the board primary power supply by driving a pin to a FET high. On older board models the leakage of the GSC may exceed the leakage of the FET causing this signal slowly rise when the GSC battery is low and the board is in a powered down state resulting in the board being kept in a disabled state. Newer boards have a hardware fix to avoid this leakage and thus should enable the voltage supervisor. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
54fd3c16bd
commit
ef0b5b61f4
1 changed files with 18 additions and 2 deletions
|
@ -118,13 +118,29 @@ static int dm_i2c_clrsetbits(struct udevice *dev, uint reg, uint clr, uint set)
|
|||
return dm_i2c_write(dev, reg, &val, 1);
|
||||
}
|
||||
|
||||
static int power_init_board(void)
|
||||
static int power_init_board(struct udevice *gsc)
|
||||
{
|
||||
const char *model = eeprom_get_model();
|
||||
struct udevice *bus;
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
/* Enable GSC voltage supervisor for new board models */
|
||||
if ((!strncmp(model, "GW7100", 6) && model[10] > 'D') ||
|
||||
(!strncmp(model, "GW7101", 6) && model[10] > 'D') ||
|
||||
(!strncmp(model, "GW7200", 6) && model[10] > 'E') ||
|
||||
(!strncmp(model, "GW7201", 6) && model[10] > 'E') ||
|
||||
(!strncmp(model, "GW7300", 6) && model[10] > 'E') ||
|
||||
(!strncmp(model, "GW7301", 6) && model[10] > 'E') ||
|
||||
(!strncmp(model, "GW740", 5) && model[7] > 'B')) {
|
||||
u8 ver;
|
||||
|
||||
if (!dm_i2c_read(gsc, 14, &ver, 1) && ver > 62) {
|
||||
printf("GSC : enabling voltage supervisor\n");
|
||||
dm_i2c_clrsetbits(gsc, 25, 0, BIT(1));
|
||||
}
|
||||
}
|
||||
|
||||
if ((!strncmp(model, "GW71", 4)) ||
|
||||
(!strncmp(model, "GW72", 4)) ||
|
||||
(!strncmp(model, "GW73", 4)) ||
|
||||
|
@ -297,7 +313,7 @@ void board_init_f(ulong dummy)
|
|||
dram_sz = venice_eeprom_init(0);
|
||||
|
||||
/* PMIC */
|
||||
power_init_board();
|
||||
power_init_board(dev);
|
||||
|
||||
/* DDR initialization */
|
||||
spl_dram_init(dram_sz);
|
||||
|
|
Loading…
Add table
Reference in a new issue