Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / board / beacon / imx8mm / imx8mm_beacon.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright 2020 Compass Electronics Group, LLC
4  */
5
6 #include <common.h>
7 #include <miiphy.h>
8 #include <netdev.h>
9
10 #include <asm/arch/clock.h>
11 #include <asm/arch/sys_proto.h>
12 #include <asm/io.h>
13
14 DECLARE_GLOBAL_DATA_PTR;
15
16 int dram_init(void)
17 {
18         /* rom_pointer[1] contains the size of TEE occupies */
19         if (rom_pointer[1])
20                 gd->ram_size = PHYS_SDRAM_SIZE - rom_pointer[1];
21         else
22                 gd->ram_size = PHYS_SDRAM_SIZE;
23
24         return 0;
25 }
26
27 #if IS_ENABLED(CONFIG_FEC_MXC)
28 static int setup_fec(void)
29 {
30         struct iomuxc_gpr_base_regs *gpr =
31                 (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
32
33         /* Use 125M anatop REF_CLK1 for ENET1, not from external */
34         clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
35
36         return 0;
37 }
38
39 int board_phy_config(struct phy_device *phydev)
40 {
41         /* enable rgmii rxc skew and phy mode select to RGMII copper */
42         phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
43         phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
44
45         phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
46         phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
47         phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
48         phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
49
50         if (phydev->drv->config)
51                 phydev->drv->config(phydev);
52         return 0;
53 }
54 #endif
55
56 int board_init(void)
57 {
58         if (IS_ENABLED(CONFIG_FEC_MXC))
59                 setup_fec();
60
61         return 0;
62 }
63
64 int board_mmc_get_env_dev(int devno)
65 {
66         return devno;
67 }