init.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef __MACH_INIT_H
  7. #define __MACH_INIT_H
  8. #include <linux/types.h>
  9. #define UNIPHIER_MAX_NR_DRAM_CH 3
  10. struct uniphier_dram_ch {
  11. unsigned long base;
  12. unsigned long size;
  13. unsigned int width;
  14. };
  15. struct uniphier_board_data {
  16. unsigned int dram_freq;
  17. unsigned int dram_nr_ch;
  18. bool dram_ddr3plus;
  19. struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH];
  20. };
  21. const struct uniphier_board_data *uniphier_get_board_param(void);
  22. int ph1_sld3_init(const struct uniphier_board_data *bd);
  23. int ph1_ld4_init(const struct uniphier_board_data *bd);
  24. int ph1_pro4_init(const struct uniphier_board_data *bd);
  25. int ph1_sld8_init(const struct uniphier_board_data *bd);
  26. int ph1_pro5_init(const struct uniphier_board_data *bd);
  27. int proxstream2_init(const struct uniphier_board_data *bd);
  28. #if defined(CONFIG_MICRO_SUPPORT_CARD)
  29. int ph1_sld3_sbc_init(const struct uniphier_board_data *bd);
  30. int ph1_ld4_sbc_init(const struct uniphier_board_data *bd);
  31. int ph1_pro4_sbc_init(const struct uniphier_board_data *bd);
  32. int proxstream2_sbc_init(const struct uniphier_board_data *bd);
  33. #else
  34. static inline int ph1_sld3_sbc_init(const struct uniphier_board_data *bd)
  35. {
  36. return 0;
  37. }
  38. static inline int ph1_ld4_sbc_init(const struct uniphier_board_data *bd)
  39. {
  40. return 0;
  41. }
  42. static inline int ph1_pro4_sbc_init(const struct uniphier_board_data *bd)
  43. {
  44. return 0;
  45. }
  46. static inline int proxstream2_sbc_init(const struct uniphier_board_data *bd)
  47. {
  48. return 0;
  49. }
  50. #endif
  51. int ph1_sld3_bcu_init(const struct uniphier_board_data *bd);
  52. int ph1_ld4_bcu_init(const struct uniphier_board_data *bd);
  53. int memconf_init(const struct uniphier_board_data *bd);
  54. int ph1_sld3_memconf_init(const struct uniphier_board_data *bd);
  55. int proxstream2_memconf_init(const struct uniphier_board_data *bd);
  56. int ph1_sld3_pll_init(const struct uniphier_board_data *bd);
  57. int ph1_ld4_pll_init(const struct uniphier_board_data *bd);
  58. int ph1_pro4_pll_init(const struct uniphier_board_data *bd);
  59. int ph1_sld8_pll_init(const struct uniphier_board_data *bd);
  60. int ph1_sld3_enable_dpll_ssc(const struct uniphier_board_data *bd);
  61. int ph1_ld4_enable_dpll_ssc(const struct uniphier_board_data *bd);
  62. int ph1_ld4_early_clk_init(const struct uniphier_board_data *bd);
  63. int ph1_pro5_early_clk_init(const struct uniphier_board_data *bd);
  64. int proxstream2_early_clk_init(const struct uniphier_board_data *bd);
  65. int ph1_sld3_early_pin_init(const struct uniphier_board_data *bd);
  66. int ph1_ld4_umc_init(const struct uniphier_board_data *bd);
  67. int ph1_pro4_umc_init(const struct uniphier_board_data *bd);
  68. int ph1_sld8_umc_init(const struct uniphier_board_data *bd);
  69. int proxstream2_umc_init(const struct uniphier_board_data *bd);
  70. void ph1_sld3_pin_init(void);
  71. void ph1_ld4_pin_init(void);
  72. void ph1_pro4_pin_init(void);
  73. void ph1_sld8_pin_init(void);
  74. void ph1_pro5_pin_init(void);
  75. void proxstream2_pin_init(void);
  76. void ph1_ld6b_pin_init(void);
  77. void ph1_ld4_clk_init(void);
  78. void ph1_pro4_clk_init(void);
  79. void ph1_pro5_clk_init(void);
  80. void proxstream2_clk_init(void);
  81. #define pr_err(fmt, args...) printf(fmt, ##args)
  82. #endif /* __MACH_INIT_H */