board: sama5d2_xplained: Replace code to set mac address
authorWenyou Yang <wenyou.yang@microchip.com>
Fri, 1 Sep 2017 08:26:17 +0000 (16:26 +0800)
committerTom Rini <trini@konsulko.com>
Mon, 11 Sep 2017 20:23:07 +0000 (16:23 -0400)
Replace the code to set the ethernet mac address with the code from
the common folder.

Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/dts/at91-sama5d2_xplained.dts
board/atmel/sama5d2_xplained/sama5d2_xplained.c
configs/sama5d2_xplained_mmc_defconfig
configs/sama5d2_xplained_spiflash_defconfig
include/configs/sama5d2_xplained.h

index 3e624f1..b00aaa2 100644 (file)
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_i2c1_default>;
                                status = "okay";
+
+                               i2c_eeprom: i2c_eeprom@5c {
+                                       compatible = "atmel,24mac402";
+                                       reg = <0x5c>;
+                               };
                        };
 
                        pioA: gpio@fc038000 {
index 3f0860c..7e0cb42 100644 (file)
@@ -8,8 +8,6 @@
 #include <common.h>
 #include <atmel_hlcdc.h>
 #include <debug_uart.h>
-#include <dm.h>
-#include <i2c.h>
 #include <lcd.h>
 #include <version.h>
 #include <asm/io.h>
@@ -161,50 +159,14 @@ int dram_init(void)
        return 0;
 }
 
-#ifdef CONFIG_CMD_I2C
-static int set_ethaddr_from_eeprom(void)
-{
-       const int ETH_ADDR_LEN = 6;
-       unsigned char ethaddr[ETH_ADDR_LEN];
-       const char *ETHADDR_NAME = "ethaddr";
-       struct udevice *bus, *dev;
-
-       if (env_get(ETHADDR_NAME))
-               return 0;
-
-       if (uclass_get_device_by_seq(UCLASS_I2C, 1, &bus)) {
-               printf("Cannot find I2C bus 1\n");
-               return -1;
-       }
-
-       if (dm_i2c_probe(bus, AT24MAC_ADDR, 0, &dev)) {
-               printf("Failed to probe I2C chip\n");
-               return -1;
-       }
-
-       if (dm_i2c_read(dev, AT24MAC_REG, ethaddr, ETH_ADDR_LEN)) {
-               printf("Failed to read ethernet address from EEPROM\n");
-               return -1;
-       }
-
-       if (!is_valid_ethaddr(ethaddr)) {
-               printf("The ethernet address read from EEPROM is not valid!\n");
-               return -1;
-       }
-
-       return eth_env_set_enetaddr(ETHADDR_NAME, ethaddr);
-}
-#else
-static int set_ethaddr_from_eeprom(void)
-{
-       return 0;
-}
-#endif
+#define AT24MAC_MAC_OFFSET     0x9a
 
 #ifdef CONFIG_MISC_INIT_R
 int misc_init_r(void)
 {
-       set_ethaddr_from_eeprom();
+#ifdef CONFIG_I2C_EEPROM
+       at91_set_ethaddr(AT24MAC_MAC_OFFSET);
+#endif
 
        return 0;
 }
index dc4d991..01c60e8 100644 (file)
@@ -51,6 +51,7 @@ CONFIG_DM_GPIO=y
 CONFIG_ATMEL_PIO4=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_AT91=y
+CONFIG_I2C_EEPROM=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_ATMEL=y
index c64b8b8..2ecedd9 100644 (file)
@@ -49,6 +49,7 @@ CONFIG_DM_GPIO=y
 CONFIG_ATMEL_PIO4=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_AT91=y
+CONFIG_I2C_EEPROM=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_ATMEL=y
index 9ceb919..891218d 100644 (file)
 #define CONFIG_SF_DEFAULT_SPEED                30000000
 #endif
 
-/* I2C */
-#define AT24MAC_ADDR           0x5c
-#define AT24MAC_REG            0x9a
-
 /* LCD */
 
 #ifdef CONFIG_LCD