phycore-imx8mm.c 876 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. #include <common.h>
  7. #include <asm/arch/sys_proto.h>
  8. #include <asm/io.h>
  9. #include <asm/mach-imx/boot_mode.h>
  10. #include <env.h>
  11. #include <miiphy.h>
  12. DECLARE_GLOBAL_DATA_PTR;
  13. static int setup_fec(void)
  14. {
  15. struct iomuxc_gpr_base_regs *gpr =
  16. (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
  17. /* Use 125M anatop REF_CLK1 for ENET1, not from external */
  18. clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
  19. return 0;
  20. }
  21. int board_init(void)
  22. {
  23. setup_fec();
  24. return 0;
  25. }
  26. int board_mmc_get_env_dev(int devno)
  27. {
  28. return devno;
  29. }
  30. int board_late_init(void)
  31. {
  32. switch (get_boot_device()) {
  33. case SD2_BOOT:
  34. env_set_ulong("mmcdev", 1);
  35. break;
  36. case MMC3_BOOT:
  37. env_set_ulong("mmcdev", 2);
  38. break;
  39. default:
  40. break;
  41. }
  42. return 0;
  43. }