1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (C) 2019-2020 PHYTEC Messtechnik GmbH
4  * Author: Teresa Remmet <t.remmet@phytec.de>
5  */
6 
7 #include <common.h>
8 #include <asm/arch/sys_proto.h>
9 #include <asm/global_data.h>
10 #include <asm/io.h>
11 #include <asm/mach-imx/boot_mode.h>
12 #include <env.h>
13 #include <miiphy.h>
14 
15 DECLARE_GLOBAL_DATA_PTR;
16 
setup_fec(void)17 static int setup_fec(void)
18 {
19 	struct iomuxc_gpr_base_regs *gpr =
20 		(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
21 
22 	/* Use 125M anatop REF_CLK1 for ENET1, not from external */
23 	clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
24 
25 	return 0;
26 }
27 
board_init(void)28 int board_init(void)
29 {
30 	setup_fec();
31 
32 	return 0;
33 }
34 
board_mmc_get_env_dev(int devno)35 int board_mmc_get_env_dev(int devno)
36 {
37 	return devno;
38 }
39 
board_late_init(void)40 int board_late_init(void)
41 {
42 	switch (get_boot_device()) {
43 	case SD2_BOOT:
44 		env_set_ulong("mmcdev", 1);
45 		break;
46 	case MMC3_BOOT:
47 		env_set_ulong("mmcdev", 2);
48 		break;
49 	default:
50 		break;
51 	}
52 
53 	return 0;
54 }
55