Use the SOM model to adjust PMIC settings on SOM's. Signed-off-by: Tim Harvey <thar...@gateworks.com> --- board/gateworks/venice/eeprom.c | 7 +++++++ board/gateworks/venice/eeprom.h | 1 + board/gateworks/venice/spl.c | 6 ++---- 3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/board/gateworks/venice/eeprom.c b/board/gateworks/venice/eeprom.c index 351d18886f14..41f620c90e72 100644 --- a/board/gateworks/venice/eeprom.c +++ b/board/gateworks/venice/eeprom.c @@ -19,6 +19,7 @@ struct venice_board_info som_info; struct venice_board_info base_info; char venice_model[32]; +char venice_som_model[32]; char venice_baseboard_model[32]; u32 venice_serial; @@ -315,6 +316,7 @@ int venice_eeprom_init(int quiet) memset(&som_info, 0, sizeof(som_info)); return 0; } + strlcpy(venice_som_model, som_info.model, sizeof(venice_som_model)); /* read optional baseboard EEPROM */ eeprom_read(BASEBOARD_EEPROM_BUSNO, BASEBOARD_EEPROM_ADDR, 2, &base_info); @@ -368,6 +370,11 @@ const char *eeprom_get_model(void) return venice_model; } +const char *eeprom_get_som_model(void) +{ + return venice_som_model; +} + const char *eeprom_get_baseboard_model(void) { return venice_baseboard_model; diff --git a/board/gateworks/venice/eeprom.h b/board/gateworks/venice/eeprom.h index bb7a5fa9ad1f..30cd347d9453 100644 --- a/board/gateworks/venice/eeprom.h +++ b/board/gateworks/venice/eeprom.h @@ -26,6 +26,7 @@ struct venice_board_info { int venice_eeprom_init(int quiet); const char *eeprom_get_model(void); +const char *eeprom_get_som_model(void); const char *eeprom_get_baseboard_model(void); const char *eeprom_get_dtb_name(int level, char *buf, int len); int eeprom_getmac(int index, uint8_t *enetaddr); diff --git a/board/gateworks/venice/spl.c b/board/gateworks/venice/spl.c index 275f9d3453ea..f14ab1497d70 100644 --- a/board/gateworks/venice/spl.c +++ b/board/gateworks/venice/spl.c @@ -57,6 +57,7 @@ static int dm_i2c_clrsetbits(struct udevice *dev, uint reg, uint clr, uint set) static int power_init_board(const char *model, struct udevice *gsc) { + const char *som = eeprom_get_som_model(); struct udevice *bus; struct udevice *dev; int ret; @@ -77,10 +78,7 @@ static int power_init_board(const char *model, struct udevice *gsc) } } - if ((!strncmp(model, "GW71", 4)) || - (!strncmp(model, "GW72", 4)) || - (!strncmp(model, "GW73", 4)) || - (!strncmp(model, "GW75", 4))) { + if (!strncmp(som, "GW70", 4)) { ret = uclass_get_device_by_seq(UCLASS_I2C, 0, &bus); if (ret) { printf("PMIC : failed I2C1 probe: %d\n", ret); -- 2.25.1