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

Reply via email to