board_k2g.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * K2G EVM : Board initialization
  3. *
  4. * (C) Copyright 2015
  5. * Texas Instruments Incorporated, <www.ti.com>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #include <common.h>
  10. #include <asm/arch/clock.h>
  11. #define SYS_CLK 24000000
  12. unsigned int external_clk[ext_clk_count] = {
  13. [sys_clk] = SYS_CLK,
  14. [pa_clk] = SYS_CLK,
  15. [tetris_clk] = SYS_CLK,
  16. [ddr3a_clk] = SYS_CLK,
  17. [uart_clk] = SYS_CLK,
  18. };
  19. static struct pll_init_data main_pll_config = {MAIN_PLL, 100, 1, 4};
  20. static struct pll_init_data tetris_pll_config = {TETRIS_PLL, 100, 1, 4};
  21. static struct pll_init_data uart_pll_config = {UART_PLL, 64, 1, 4};
  22. static struct pll_init_data nss_pll_config = {NSS_PLL, 250, 3, 2};
  23. static struct pll_init_data ddr3_pll_config = {DDR3_PLL, 250, 3, 10};
  24. struct pll_init_data *get_pll_init_data(int pll)
  25. {
  26. struct pll_init_data *data = NULL;
  27. switch (pll) {
  28. case MAIN_PLL:
  29. data = &main_pll_config;
  30. break;
  31. case TETRIS_PLL:
  32. data = &tetris_pll_config[speed];
  33. break;
  34. case NSS_PLL:
  35. data = &nss_pll_config;
  36. break;
  37. case UART_PLL:
  38. data = &uart_pll_config;
  39. break;
  40. case DDR3_PLL:
  41. data = &ddr_pll_config;
  42. break;
  43. default:
  44. data = NULL;
  45. }
  46. return data;
  47. }
  48. s16 divn_val[16] = {
  49. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
  50. };
  51. #ifdef CONFIG_BOARD_EARLY_INIT_F
  52. int board_early_init_f(void)
  53. {
  54. init_plls();
  55. return 0;
  56. }
  57. #endif
  58. #ifdef CONFIG_SPL_BUILD
  59. void spl_init_keystone_plls(void)
  60. {
  61. init_plls();
  62. }
  63. #endif