Re: [PATCH v4 2/4] ARM: imx6: DH: Use common MAC address functions

2022-08-12 Thread Tom Rini
On Tue, Jul 26, 2022 at 03:04:51PM +0200, Philip Oberfichtner wrote:

> To reduce code duplication, let the imx6 based DH boards use the common
> code for setting up their MAC addresses.
> 
> Signed-off-by: Philip Oberfichtner 
> Tested-by: Marek Vasut 
> Reviewed-by: Marek Vasut 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH v4 2/4] ARM: imx6: DH: Use common MAC address functions

2022-07-26 Thread Philip Oberfichtner
To reduce code duplication, let the imx6 based DH boards use the common
code for setting up their MAC addresses.

Signed-off-by: Philip Oberfichtner 
Tested-by: Marek Vasut 
Reviewed-by: Marek Vasut 
---

(no changes since v3)

Changes in v3:
- Reviewed by Marek

Changes in v2:
- Tested-by Marek

 board/dhelectronics/dh_imx6/dh_imx6.c | 47 ---
 1 file changed, 14 insertions(+), 33 deletions(-)

diff --git a/board/dhelectronics/dh_imx6/dh_imx6.c 
b/board/dhelectronics/dh_imx6/dh_imx6.c
index e8aba83e1a..07fc9b1fe6 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6.c
@@ -36,6 +36,9 @@
 #include 
 #include 
 
+#include "../common/dh_common.h"
+#include "../common/dh_imx.h"
+
 DECLARE_GLOBAL_DATA_PTR;
 
 int dram_init(void)
@@ -82,46 +85,24 @@ int board_usb_phy_mode(int port)
 }
 #endif
 
-static int setup_dhcom_mac_from_fuse(void)
+int dh_setup_mac_address(void)
 {
-   struct udevice *dev;
-   ofnode eeprom;
unsigned char enetaddr[6];
-   int ret;
 
-   ret = eth_env_get_enetaddr("ethaddr", enetaddr);
-   if (ret)/* ethaddr is already set */
+   if (dh_mac_is_in_env("ethaddr"))
return 0;
 
-   imx_get_mac_from_fuse(0, enetaddr);
-
-   if (is_valid_ethaddr(enetaddr)) {
-   eth_env_set_enetaddr("ethaddr", enetaddr);
-   return 0;
-   }
-
-   eeprom = ofnode_get_aliases_node("eeprom0");
-   if (!ofnode_valid(eeprom)) {
-   printf("Can't find eeprom0 alias!\n");
-   return -ENODEV;
-   }
+   if (!dh_imx_get_mac_from_fuse(enetaddr))
+   goto out;
 
-   ret = uclass_get_device_by_ofnode(UCLASS_I2C_EEPROM, eeprom, );
-   if (ret) {
-   printf("Cannot find EEPROM!\n");
-   return ret;
-   }
+   if (!dh_get_mac_from_eeprom(enetaddr, "eeprom0"))
+   goto out;
 
-   ret = i2c_eeprom_read(dev, 0xfa, enetaddr, 0x6);
-   if (ret) {
-   printf("Error reading configuration EEPROM!\n");
-   return ret;
-   }
+   printf("%s: Unable to get MAC address!\n", __func__);
+   return -ENXIO;
 
-   if (is_valid_ethaddr(enetaddr))
-   eth_env_set_enetaddr("ethaddr", enetaddr);
-
-   return 0;
+out:
+   return eth_env_set_enetaddr("ethaddr", enetaddr);
 }
 
 int board_early_init_f(void)
@@ -188,7 +169,7 @@ int board_late_init(void)
u32 hw_code;
char buf[16];
 
-   setup_dhcom_mac_from_fuse();
+   dh_setup_mac_address();
 
hw_code = board_get_hwcode();
 
-- 
2.37.1