1 /* 2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #ifndef __MACH_INIT_H 8 #define __MACH_INIT_H 9 10 #include <linux/types.h> 11 12 #define UNIPHIER_MAX_NR_DRAM_CH 3 13 14 struct uniphier_dram_ch { 15 unsigned long base; 16 unsigned long size; 17 unsigned int width; 18 }; 19 20 struct uniphier_board_data { 21 unsigned int dram_freq; 22 unsigned int dram_nr_ch; 23 bool dram_ddr3plus; 24 struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH]; 25 }; 26 27 const struct uniphier_board_data *uniphier_get_board_param(void); 28 29 int uniphier_sld3_init(const struct uniphier_board_data *bd); 30 int uniphier_ld4_init(const struct uniphier_board_data *bd); 31 int uniphier_pro4_init(const struct uniphier_board_data *bd); 32 int uniphier_sld8_init(const struct uniphier_board_data *bd); 33 int uniphier_pro5_init(const struct uniphier_board_data *bd); 34 int uniphier_pxs2_init(const struct uniphier_board_data *bd); 35 int uniphier_ld11_init(const struct uniphier_board_data *bd); 36 int uniphier_ld20_init(const struct uniphier_board_data *bd); 37 38 #if defined(CONFIG_MICRO_SUPPORT_CARD) 39 int uniphier_sbc_init_admulti(const struct uniphier_board_data *bd); 40 int uniphier_sbc_init_savepin(const struct uniphier_board_data *bd); 41 int uniphier_ld4_sbc_init(const struct uniphier_board_data *bd); 42 int uniphier_pxs2_sbc_init(const struct uniphier_board_data *bd); 43 #else 44 static inline int uniphier_sbc_init_admulti( 45 const struct uniphier_board_data *bd) 46 { 47 return 0; 48 } 49 50 static inline int uniphier_sbc_init_savepin( 51 const struct uniphier_board_data *bd) 52 { 53 return 0; 54 } 55 56 static inline int uniphier_ld4_sbc_init(const struct uniphier_board_data *bd) 57 { 58 return 0; 59 } 60 61 static inline int uniphier_pxs2_sbc_init(const struct uniphier_board_data *bd) 62 { 63 return 0; 64 } 65 #endif 66 67 int uniphier_sld3_bcu_init(const struct uniphier_board_data *bd); 68 int uniphier_ld4_bcu_init(const struct uniphier_board_data *bd); 69 70 int memconf_init(const struct uniphier_board_data *bd); 71 int uniphier_sld3_memconf_init(const struct uniphier_board_data *bd); 72 int uniphier_pxs2_memconf_init(const struct uniphier_board_data *bd); 73 74 int uniphier_sld3_pll_init(const struct uniphier_board_data *bd); 75 int uniphier_ld4_pll_init(const struct uniphier_board_data *bd); 76 int uniphier_pro4_pll_init(const struct uniphier_board_data *bd); 77 int uniphier_sld8_pll_init(const struct uniphier_board_data *bd); 78 79 int uniphier_sld3_enable_dpll_ssc(const struct uniphier_board_data *bd); 80 int uniphier_ld4_enable_dpll_ssc(const struct uniphier_board_data *bd); 81 82 int uniphier_ld4_early_clk_init(const struct uniphier_board_data *bd); 83 int uniphier_pro5_early_clk_init(const struct uniphier_board_data *bd); 84 int uniphier_pxs2_early_clk_init(const struct uniphier_board_data *bd); 85 int uniphier_ld11_early_clk_init(const struct uniphier_board_data *bd); 86 int uniphier_ld20_early_clk_init(const struct uniphier_board_data *bd); 87 88 int uniphier_sld3_early_pin_init(const struct uniphier_board_data *bd); 89 int uniphier_ld20_early_pin_init(const struct uniphier_board_data *bd); 90 91 int uniphier_ld4_umc_init(const struct uniphier_board_data *bd); 92 int uniphier_pro4_umc_init(const struct uniphier_board_data *bd); 93 int uniphier_sld8_umc_init(const struct uniphier_board_data *bd); 94 int uniphier_pxs2_umc_init(const struct uniphier_board_data *bd); 95 int uniphier_ld20_umc_init(const struct uniphier_board_data *bd); 96 int uniphier_ld11_umc_init(const struct uniphier_board_data *bd); 97 98 void uniphier_sld3_pin_init(void); 99 void uniphier_ld4_pin_init(void); 100 void uniphier_pro4_pin_init(void); 101 void uniphier_sld8_pin_init(void); 102 void uniphier_pro5_pin_init(void); 103 void uniphier_pxs2_pin_init(void); 104 void uniphier_ld6b_pin_init(void); 105 void uniphier_ld20_pin_init(void); 106 107 void uniphier_ld4_clk_init(void); 108 void uniphier_pro4_clk_init(void); 109 void uniphier_pro5_clk_init(void); 110 void uniphier_pxs2_clk_init(void); 111 void uniphier_ld11_clk_init(void); 112 void uniphier_ld20_clk_init(void); 113 114 void cci500_init(int nr_slaves); 115 116 #define pr_err(fmt, args...) printf(fmt, ##args) 117 118 #endif /* __MACH_INIT_H */ 119