#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>
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;
}