maix.c 775 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com>
  4. */
  5. #include <common.h>
  6. #include <clk.h>
  7. #include <dm.h>
  8. #include <fdt_support.h>
  9. #include <asm/io.h>
  10. phys_size_t get_effective_memsize(void)
  11. {
  12. return CONFIG_SYS_SDRAM_SIZE;
  13. }
  14. int board_init(void)
  15. {
  16. int ret, i;
  17. const char * const banks[] = { "sram0", "sram1", "airam" };
  18. ofnode memory;
  19. struct clk clk;
  20. /* Enable RAM clocks */
  21. memory = ofnode_by_compatible(ofnode_null(), "kendryte,k210-sram");
  22. if (ofnode_equal(memory, ofnode_null()))
  23. return -ENOENT;
  24. for (i = 0; i < ARRAY_SIZE(banks); i++) {
  25. ret = clk_get_by_name_nodev(memory, banks[i], &clk);
  26. if (ret)
  27. continue;
  28. ret = clk_enable(&clk);
  29. clk_free(&clk);
  30. if (ret)
  31. return ret;
  32. }
  33. return 0;
  34. }