diff options
author | Tim Harvey <tharvey@gateworks.com> | 2025-05-23 10:20:12 -0700 |
---|---|---|
committer | Fabio Estevam <festevam@gmail.com> | 2025-05-30 19:10:56 -0300 |
commit | b1ead5a2240002f880e6560bc7715eb6b250dd6d (patch) | |
tree | d5e072112518614d21ab83e0d69291fb0f8bbce6 | |
parent | ea04f7261ef84eb1b5cecb60e5e45c75c760626c (diff) |
board: venice: use SOM model for PMIC adjustment on SOM
Use the SOM model to adjust PMIC settings on SOM's.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
-rw-r--r-- | board/gateworks/venice/eeprom.c | 7 | ||||
-rw-r--r-- | board/gateworks/venice/eeprom.h | 1 | ||||
-rw-r--r-- | 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 351d18886f1..41f620c90e7 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 bb7a5fa9ad1..30cd347d945 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 275f9d3453e..f14ab1497d7 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); |