xref: /rk3399_rockchip-uboot/board/rockchip/tinker_rk3288/tinker-rk3288.c (revision fc9839356c37f899363d91086eea90aebd263ee8)
16f279764SEddie Cai /*
26f279764SEddie Cai  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
36f279764SEddie Cai  *
46f279764SEddie Cai  * SPDX-License-Identifier:     GPL-2.0+
56f279764SEddie Cai  */
66f279764SEddie Cai 
76f279764SEddie Cai #include <common.h>
8ecc3bd73SJonas Karlman #include <dm.h>
9ecc3bd73SJonas Karlman #include <i2c_eeprom.h>
10ecc3bd73SJonas Karlman #include <netdev.h>
11ecc3bd73SJonas Karlman 
get_ethaddr_from_eeprom(u8 * addr)12ecc3bd73SJonas Karlman static int get_ethaddr_from_eeprom(u8 *addr)
13ecc3bd73SJonas Karlman {
14ecc3bd73SJonas Karlman 	int ret;
15ecc3bd73SJonas Karlman 	struct udevice *dev;
16ecc3bd73SJonas Karlman 
17ecc3bd73SJonas Karlman 	ret = uclass_first_device_err(UCLASS_I2C_EEPROM, &dev);
18ecc3bd73SJonas Karlman 	if (ret)
19ecc3bd73SJonas Karlman 		return ret;
20ecc3bd73SJonas Karlman 
21ecc3bd73SJonas Karlman 	return i2c_eeprom_read(dev, 0, addr, 6);
22ecc3bd73SJonas Karlman }
23ecc3bd73SJonas Karlman 
rk3288_board_late_init(void)24*fc983935SKever Yang int rk3288_board_late_init(void)
25ecc3bd73SJonas Karlman {
26ecc3bd73SJonas Karlman 	u8 ethaddr[6];
27ecc3bd73SJonas Karlman 
28ecc3bd73SJonas Karlman 	if (get_ethaddr_from_eeprom(ethaddr))
29ecc3bd73SJonas Karlman 		return 0;
30ecc3bd73SJonas Karlman 
31ecc3bd73SJonas Karlman 	if (is_valid_ethaddr(ethaddr))
32fd1e959eSSimon Glass 		eth_env_set_enetaddr("ethaddr", ethaddr);
33ecc3bd73SJonas Karlman 
34ecc3bd73SJonas Karlman 	return 0;
35ecc3bd73SJonas Karlman }
36