init.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2015-2016 Socionext Inc.
  4. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  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 size;
  12. unsigned int width;
  13. };
  14. struct uniphier_board_data {
  15. unsigned int dram_freq;
  16. struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH];
  17. unsigned int flags;
  18. #define UNIPHIER_BD_DRAM_SPARSE BIT(9)
  19. #define UNIPHIER_BD_DDR3PLUS BIT(8)
  20. };
  21. const struct uniphier_board_data *uniphier_get_board_param(void);
  22. int uniphier_ld4_init(const struct uniphier_board_data *bd);
  23. int uniphier_pro4_init(const struct uniphier_board_data *bd);
  24. int uniphier_sld8_init(const struct uniphier_board_data *bd);
  25. int uniphier_pro5_init(const struct uniphier_board_data *bd);
  26. int uniphier_pxs2_init(const struct uniphier_board_data *bd);
  27. #if defined(CONFIG_MICRO_SUPPORT_CARD)
  28. void uniphier_sbc_init_admulti(void);
  29. void uniphier_sbc_init_savepin(void);
  30. void uniphier_ld4_sbc_init(void);
  31. void uniphier_pxs2_sbc_init(void);
  32. void uniphier_ld11_sbc_init(void);
  33. #else
  34. static inline void uniphier_sbc_init_admulti(void)
  35. {
  36. }
  37. static inline void uniphier_sbc_init_savepin(void)
  38. {
  39. }
  40. static inline void uniphier_ld4_sbc_init(void)
  41. {
  42. }
  43. static inline void uniphier_pxs2_sbc_init(void)
  44. {
  45. }
  46. static inline void uniphier_ld11_sbc_init(void)
  47. {
  48. }
  49. #endif
  50. void uniphier_ld4_bcu_init(const struct uniphier_board_data *bd);
  51. int uniphier_memconf_2ch_init(const struct uniphier_board_data *bd);
  52. int uniphier_memconf_3ch_init(const struct uniphier_board_data *bd);
  53. int uniphier_ld4_dpll_init(const struct uniphier_board_data *bd);
  54. int uniphier_pro4_dpll_init(const struct uniphier_board_data *bd);
  55. int uniphier_sld8_dpll_init(const struct uniphier_board_data *bd);
  56. int uniphier_pro5_dpll_init(const struct uniphier_board_data *bd);
  57. int uniphier_pxs2_dpll_init(const struct uniphier_board_data *bd);
  58. void uniphier_ld4_early_clk_init(void);
  59. void uniphier_ld4_dram_clk_init(void);
  60. void uniphier_pro5_dram_clk_init(void);
  61. void uniphier_pxs2_dram_clk_init(void);
  62. int uniphier_ld4_umc_init(const struct uniphier_board_data *bd);
  63. int uniphier_pro4_umc_init(const struct uniphier_board_data *bd);
  64. int uniphier_sld8_umc_init(const struct uniphier_board_data *bd);
  65. int uniphier_pro5_umc_init(const struct uniphier_board_data *bd);
  66. int uniphier_pxs2_umc_init(const struct uniphier_board_data *bd);
  67. void uniphier_ld4_pll_init(void);
  68. void uniphier_pro4_pll_init(void);
  69. void uniphier_ld11_pll_init(void);
  70. void uniphier_ld20_pll_init(void);
  71. void uniphier_pxs3_pll_init(void);
  72. void uniphier_pro4_clk_init(void);
  73. void uniphier_pro5_clk_init(void);
  74. void uniphier_pxs2_clk_init(void);
  75. void uniphier_ld11_clk_init(void);
  76. void uniphier_ld20_clk_init(void);
  77. void uniphier_pxs3_clk_init(void);
  78. unsigned int uniphier_boot_device_raw(void);
  79. int uniphier_have_internal_stm(void);
  80. int uniphier_boot_from_backend(void);
  81. int uniphier_pin_init(const char *pinconfig_name);
  82. #ifdef CONFIG_NAND_DENALI
  83. void uniphier_nand_reset_assert(void);
  84. #else
  85. static inline void uniphier_nand_reset_assert(void)
  86. {
  87. }
  88. #endif
  89. #ifdef CONFIG_ARM64
  90. void uniphier_mem_map_init(unsigned long dram_base, unsigned long dram_size);
  91. #else
  92. static inline void uniphier_mem_map_init(unsigned long dram_base,
  93. unsigned long dram_size)
  94. {
  95. }
  96. #endif
  97. #endif /* __MACH_INIT_H */