1107b3fb4SMasahiro Yamada /* 2107b3fb4SMasahiro Yamada * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 3107b3fb4SMasahiro Yamada * 4107b3fb4SMasahiro Yamada * SPDX-License-Identifier: GPL-2.0+ 5107b3fb4SMasahiro Yamada */ 6107b3fb4SMasahiro Yamada 7107b3fb4SMasahiro Yamada #ifndef __MACH_INIT_H 8107b3fb4SMasahiro Yamada #define __MACH_INIT_H 9107b3fb4SMasahiro Yamada 104021b438SMasahiro Yamada #include <linux/types.h> 114021b438SMasahiro Yamada 1246abfcc9SMasahiro Yamada #define UNIPHIER_MAX_NR_DRAM_CH 3 1346abfcc9SMasahiro Yamada 1446abfcc9SMasahiro Yamada struct uniphier_dram_ch { 1546abfcc9SMasahiro Yamada unsigned long base; 1646abfcc9SMasahiro Yamada unsigned long size; 1746abfcc9SMasahiro Yamada unsigned int width; 1846abfcc9SMasahiro Yamada }; 1946abfcc9SMasahiro Yamada 20107b3fb4SMasahiro Yamada struct uniphier_board_data { 21107b3fb4SMasahiro Yamada unsigned int dram_freq; 2246abfcc9SMasahiro Yamada unsigned int dram_nr_ch; 234021b438SMasahiro Yamada bool dram_ddr3plus; 2446abfcc9SMasahiro Yamada struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH]; 25107b3fb4SMasahiro Yamada }; 26107b3fb4SMasahiro Yamada 27107b3fb4SMasahiro Yamada const struct uniphier_board_data *uniphier_get_board_param(void); 28107b3fb4SMasahiro Yamada 295b660066SMasahiro Yamada int uniphier_sld3_init(const struct uniphier_board_data *bd); 305b660066SMasahiro Yamada int uniphier_ld4_init(const struct uniphier_board_data *bd); 315b660066SMasahiro Yamada int uniphier_pro4_init(const struct uniphier_board_data *bd); 325b660066SMasahiro Yamada int uniphier_sld8_init(const struct uniphier_board_data *bd); 335b660066SMasahiro Yamada int uniphier_pro5_init(const struct uniphier_board_data *bd); 345b660066SMasahiro Yamada int uniphier_pxs2_init(const struct uniphier_board_data *bd); 35*667dbcd0SMasahiro Yamada int uniphier_ld11_init(const struct uniphier_board_data *bd); 369d0c2cebSMasahiro Yamada int uniphier_ld20_init(const struct uniphier_board_data *bd); 37107b3fb4SMasahiro Yamada 38107b3fb4SMasahiro Yamada #if defined(CONFIG_MICRO_SUPPORT_CARD) 395b660066SMasahiro Yamada int uniphier_sbc_init_admulti(const struct uniphier_board_data *bd); 405b660066SMasahiro Yamada int uniphier_sbc_init_savepin(const struct uniphier_board_data *bd); 415d0607c5SMasahiro Yamada int uniphier_ld4_sbc_init(const struct uniphier_board_data *bd); 425d0607c5SMasahiro Yamada int uniphier_pxs2_sbc_init(const struct uniphier_board_data *bd); 43107b3fb4SMasahiro Yamada #else 445b660066SMasahiro Yamada static inline int uniphier_sbc_init_admulti( 455b660066SMasahiro Yamada const struct uniphier_board_data *bd) 46107b3fb4SMasahiro Yamada { 47107b3fb4SMasahiro Yamada return 0; 48107b3fb4SMasahiro Yamada } 49107b3fb4SMasahiro Yamada 505b660066SMasahiro Yamada static inline int uniphier_sbc_init_savepin( 515b660066SMasahiro Yamada const struct uniphier_board_data *bd) 52107b3fb4SMasahiro Yamada { 53107b3fb4SMasahiro Yamada return 0; 54107b3fb4SMasahiro Yamada } 55107b3fb4SMasahiro Yamada 565d0607c5SMasahiro Yamada static inline int uniphier_ld4_sbc_init(const struct uniphier_board_data *bd) 575d0607c5SMasahiro Yamada { 585d0607c5SMasahiro Yamada return 0; 595d0607c5SMasahiro Yamada } 605d0607c5SMasahiro Yamada 615d0607c5SMasahiro Yamada static inline int uniphier_pxs2_sbc_init(const struct uniphier_board_data *bd) 62107b3fb4SMasahiro Yamada { 63107b3fb4SMasahiro Yamada return 0; 64107b3fb4SMasahiro Yamada } 65107b3fb4SMasahiro Yamada #endif 66107b3fb4SMasahiro Yamada 675b660066SMasahiro Yamada int uniphier_sld3_bcu_init(const struct uniphier_board_data *bd); 685b660066SMasahiro Yamada int uniphier_ld4_bcu_init(const struct uniphier_board_data *bd); 69107b3fb4SMasahiro Yamada 70107b3fb4SMasahiro Yamada int memconf_init(const struct uniphier_board_data *bd); 715b660066SMasahiro Yamada int uniphier_sld3_memconf_init(const struct uniphier_board_data *bd); 725b660066SMasahiro Yamada int uniphier_pxs2_memconf_init(const struct uniphier_board_data *bd); 73107b3fb4SMasahiro Yamada 745b660066SMasahiro Yamada int uniphier_sld3_pll_init(const struct uniphier_board_data *bd); 755b660066SMasahiro Yamada int uniphier_ld4_pll_init(const struct uniphier_board_data *bd); 765b660066SMasahiro Yamada int uniphier_pro4_pll_init(const struct uniphier_board_data *bd); 775b660066SMasahiro Yamada int uniphier_sld8_pll_init(const struct uniphier_board_data *bd); 78107b3fb4SMasahiro Yamada 795b660066SMasahiro Yamada int uniphier_sld3_enable_dpll_ssc(const struct uniphier_board_data *bd); 805b660066SMasahiro Yamada int uniphier_ld4_enable_dpll_ssc(const struct uniphier_board_data *bd); 81107b3fb4SMasahiro Yamada 825b660066SMasahiro Yamada int uniphier_ld4_early_clk_init(const struct uniphier_board_data *bd); 835b660066SMasahiro Yamada int uniphier_pro5_early_clk_init(const struct uniphier_board_data *bd); 845b660066SMasahiro Yamada int uniphier_pxs2_early_clk_init(const struct uniphier_board_data *bd); 85*667dbcd0SMasahiro Yamada int uniphier_ld11_early_clk_init(const struct uniphier_board_data *bd); 869d0c2cebSMasahiro Yamada int uniphier_ld20_early_clk_init(const struct uniphier_board_data *bd); 87107b3fb4SMasahiro Yamada 885b660066SMasahiro Yamada int uniphier_sld3_early_pin_init(const struct uniphier_board_data *bd); 895eb4150eSMasahiro Yamada int uniphier_ld20_early_pin_init(const struct uniphier_board_data *bd); 90107b3fb4SMasahiro Yamada 915b660066SMasahiro Yamada int uniphier_ld4_umc_init(const struct uniphier_board_data *bd); 925b660066SMasahiro Yamada int uniphier_pro4_umc_init(const struct uniphier_board_data *bd); 935b660066SMasahiro Yamada int uniphier_sld8_umc_init(const struct uniphier_board_data *bd); 945b660066SMasahiro Yamada int uniphier_pxs2_umc_init(const struct uniphier_board_data *bd); 959d0c2cebSMasahiro Yamada int uniphier_ld20_umc_init(const struct uniphier_board_data *bd); 96*667dbcd0SMasahiro Yamada int uniphier_ld11_umc_init(const struct uniphier_board_data *bd); 97107b3fb4SMasahiro Yamada 985b660066SMasahiro Yamada void uniphier_sld3_pin_init(void); 995b660066SMasahiro Yamada void uniphier_ld4_pin_init(void); 1005b660066SMasahiro Yamada void uniphier_pro4_pin_init(void); 1015b660066SMasahiro Yamada void uniphier_sld8_pin_init(void); 1025b660066SMasahiro Yamada void uniphier_pro5_pin_init(void); 1035b660066SMasahiro Yamada void uniphier_pxs2_pin_init(void); 1045b660066SMasahiro Yamada void uniphier_ld6b_pin_init(void); 1059d0c2cebSMasahiro Yamada void uniphier_ld20_pin_init(void); 106107b3fb4SMasahiro Yamada 1075b660066SMasahiro Yamada void uniphier_ld4_clk_init(void); 1085b660066SMasahiro Yamada void uniphier_pro4_clk_init(void); 1095b660066SMasahiro Yamada void uniphier_pro5_clk_init(void); 1105b660066SMasahiro Yamada void uniphier_pxs2_clk_init(void); 111*667dbcd0SMasahiro Yamada void uniphier_ld11_clk_init(void); 1129d0c2cebSMasahiro Yamada void uniphier_ld20_clk_init(void); 1139d0c2cebSMasahiro Yamada 1149d0c2cebSMasahiro Yamada void cci500_init(int nr_slaves); 115107b3fb4SMasahiro Yamada 116107b3fb4SMasahiro Yamada #define pr_err(fmt, args...) printf(fmt, ##args) 117107b3fb4SMasahiro Yamada 118107b3fb4SMasahiro Yamada #endif /* __MACH_INIT_H */ 119