board: dhelectronics: Move dh_add_item_number_and_serial_to_env() to common code
authorMarek Vasut <marek.vasut@mailbox.org>
Thu, 23 Oct 2025 21:48:24 +0000 (23:48 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 17 Nov 2025 16:45:11 +0000 (10:45 -0600)
Move dh_add_item_number_and_serial_to_env() to common code, so it
can be used by both STM32MP13xx and iMX8MP DHSOM. No functional
change.

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
board/dhelectronics/common/dh_common.c
board/dhelectronics/common/dh_common.h
board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c

index 6101ecc..e7ee23a 100644 (file)
@@ -246,3 +246,40 @@ __weak int dh_setup_mac_address(struct eeprom_id_page *eip)
        printf("%s: Unable to set mac address!\n", __func__);
        return -ENXIO;
 }
+
+void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip)
+{
+       char *item_number_env;
+       char item_number[8];    /* String with 7 characters + string termination */
+       char *serial_env;
+       char serial[10];        /* String with 9 characters + string termination */
+       int ret;
+
+       ret = dh_get_value_from_eeprom_buffer(DH_ITEM_NUMBER, item_number, sizeof(item_number),
+                                             eip);
+       if (ret) {
+               printf("%s: Unable to get DHSOM item number from EEPROM ID page! ret = %d\n",
+                      __func__, ret);
+       } else {
+               item_number_env = env_get("dh_som_item_number");
+               if (!item_number_env)
+                       env_set("dh_som_item_number", item_number);
+               else if (strcmp(item_number_env, item_number))
+                       printf("Warning: Environment dh_som_item_number differs from EEPROM ID page value (%s != %s)\n",
+                              item_number_env, item_number);
+       }
+
+       ret = dh_get_value_from_eeprom_buffer(DH_SERIAL_NUMBER, serial, sizeof(serial),
+                                             eip);
+       if (ret) {
+               printf("%s: Unable to get DHSOM serial number from EEPROM ID page! ret = %d\n",
+                      __func__, ret);
+       } else {
+               serial_env = env_get("dh_som_serial_number");
+               if (!serial_env)
+                       env_set("dh_som_serial_number", serial);
+               else if (strcmp(serial_env, serial))
+                       printf("Warning: Environment dh_som_serial_number differs from EEPROM ID page value (%s != %s)\n",
+                              serial_env, serial);
+       }
+}
index c4693c6..b4f31bd 100644 (file)
@@ -107,7 +107,16 @@ int dh_get_value_from_eeprom_buffer(enum eip_request_values request, u8 *data, i
 
 /*
  * dh_setup_mac_address - Try to get MAC address from various locations and write it to env
+ * @eip: ID EEPROM buffer
  *
  * Return: 0 if OK, other value on error
  */
 int dh_setup_mac_address(struct eeprom_id_page *eip);
+
+/*
+ * dh_add_item_number_and_serial_to_env - Try to get DH IDs from WLP write them to env
+ * @eip: ID EEPROM buffer
+ *
+ * Return: 0 if OK, other value on error
+ */
+void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip);
index 3a890c5..5c35a5b 100644 (file)
@@ -116,43 +116,6 @@ int dh_setup_mac_address(struct eeprom_id_page *eip)
        return ret;
 }
 
-void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip)
-{
-       char *item_number_env;
-       char item_number[8];    /* String with 7 characters + string termination */
-       char *serial_env;
-       char serial[10];        /* String with 9 characters + string termination */
-       int ret;
-
-       ret = dh_get_value_from_eeprom_buffer(DH_ITEM_NUMBER, item_number, sizeof(item_number),
-                                             eip);
-       if (ret) {
-               printf("%s: Unable to get DHSOM item number from EEPROM ID page! ret = %d\n",
-                      __func__, ret);
-       } else {
-               item_number_env = env_get("dh_som_item_number");
-               if (!item_number_env)
-                       env_set("dh_som_item_number", item_number);
-               else if (strcmp(item_number_env, item_number))
-                       printf("Warning: Environment dh_som_item_number differs from EEPROM ID page value (%s != %s)\n",
-                              item_number_env, item_number);
-       }
-
-       ret = dh_get_value_from_eeprom_buffer(DH_SERIAL_NUMBER, serial, sizeof(serial),
-                                             eip);
-       if (ret) {
-               printf("%s: Unable to get DHSOM serial number from EEPROM ID page! ret = %d\n",
-                      __func__, ret);
-       } else {
-               serial_env = env_get("dh_som_serial_number");
-               if (!serial_env)
-                       env_set("dh_som_serial_number", serial);
-               else if (strcmp(serial_env, serial))
-                       printf("Warning: Environment dh_som_serial_number differs from EEPROM ID page value (%s != %s)\n",
-                              serial_env, serial);
-       }
-}
-
 int board_late_init(void)
 {
        u8 eeprom_buffer[DH_EEPROM_ID_PAGE_MAX_SIZE] = { 0 };