mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
board: atmel: Create board/$(VENDOR)/common folder
Create board/$(VENDOR)/common folder to accommodate the common code shared by other atmel boards, now put the code to set ethernet mac address from eeprom, which uses the i2c eeprom driver. Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
08318317af
commit
d9b23e26f0
4 changed files with 61 additions and 0 deletions
|
@ -36,4 +36,6 @@ void matrix_init(void);
|
|||
void redirect_int_from_saic_to_aic(void);
|
||||
void configure_2nd_sram_as_l2_cache(void);
|
||||
|
||||
int at91_set_ethaddr(int offset);
|
||||
|
||||
#endif /* AT91_COMMON_H */
|
||||
|
|
11
board/atmel/common/Makefile
Normal file
11
board/atmel/common/Makefile
Normal file
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# Copyright (C) 2017 Microchip
|
||||
# Wenyou Yang <wenyou.yang@microchip.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y += board.o
|
||||
ifndef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_I2C_EEPROM) += mac_eeprom.o
|
||||
endif
|
12
board/atmel/common/board.c
Normal file
12
board/atmel/common/board.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (C) 2017 Microchip
|
||||
* Wenyou Yang <wenyou.yang@microchip.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
||||
void dummy(void)
|
||||
{
|
||||
}
|
36
board/atmel/common/mac_eeprom.c
Normal file
36
board/atmel/common/mac_eeprom.c
Normal file
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* Copyright (C) 2017 Microchip
|
||||
* Wenyou Yang <wenyou.yang@microchip.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <i2c_eeprom.h>
|
||||
#include <netdev.h>
|
||||
|
||||
int at91_set_ethaddr(int offset)
|
||||
{
|
||||
const int ETH_ADDR_LEN = 6;
|
||||
unsigned char ethaddr[ETH_ADDR_LEN];
|
||||
const char *ETHADDR_NAME = "ethaddr";
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
if (env_get(ETHADDR_NAME))
|
||||
return 0;
|
||||
|
||||
ret = uclass_first_device_err(UCLASS_I2C_EEPROM, &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = i2c_eeprom_read(dev, offset, ethaddr, 6);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (is_valid_ethaddr(ethaddr))
|
||||
eth_env_set_enetaddr(ETHADDR_NAME, ethaddr);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue