1254721Semaste// SPDX-License-Identifier: GPL-2.0+ 2254721Semaste/* 3254721Semaste * (C) Copyright 2016 Rockchip Electronics Co., Ltd 4254721Semaste */ 5254721Semaste 6254721Semaste#include <common.h> 7254721Semaste#include <dm.h> 8254721Semaste#include <eeprom.h> 9254721Semaste#include <env.h> 10254721Semaste#include <i2c_eeprom.h> 11254721Semaste#include <init.h> 12254721Semaste#include <net.h> 13254721Semaste#include <netdev.h> 14254721Semaste 15254721Semastestatic int get_ethaddr_from_eeprom(u8 *addr) 16254721Semaste{ 17254721Semaste int ret; 18254721Semaste struct udevice *dev; 19254721Semaste 20254721Semaste ret = uclass_first_device_err(UCLASS_I2C_EEPROM, &dev); 21254721Semaste if (ret) 22254721Semaste return ret; 23254721Semaste 24254721Semaste return i2c_eeprom_read(dev, 0, addr, 6); 25254721Semaste} 26254721Semaste 27254721Semasteint rk3288_board_late_init(void) 28254721Semaste{ 29254721Semaste u8 ethaddr[6]; 30254721Semaste 31254721Semaste if (get_ethaddr_from_eeprom(ethaddr)) 32254721Semaste return 0; 33254721Semaste 34254721Semaste if (is_valid_ethaddr(ethaddr)) 35254721Semaste eth_env_set_enetaddr("ethaddr", ethaddr); 36254721Semaste 37254721Semaste return 0; 38254721Semaste} 39269024Semaste