]> git.ipfire.org Git - people/ms/u-boot.git/blame - arch/arm/mach-uniphier/init.h
ARM: uniphier: make BCU init into void function
[people/ms/u-boot.git] / arch / arm / mach-uniphier / init.h
CommitLineData
323d1f9d 1/*
a74c28a0
MY
2 * Copyright (C) 2015-2016 Socionext Inc.
3 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
323d1f9d
MY
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#ifndef __MACH_INIT_H
9#define __MACH_INIT_H
10
4021b438
MY
11#include <linux/types.h>
12
46abfcc9
MY
13#define UNIPHIER_MAX_NR_DRAM_CH 3
14
15struct uniphier_dram_ch {
16 unsigned long base;
17 unsigned long size;
18 unsigned int width;
19};
20
323d1f9d 21struct uniphier_board_data {
46abfcc9
MY
22 unsigned int dram_freq;
23 unsigned int dram_nr_ch;
24 struct uniphier_dram_ch dram_ch[UNIPHIER_MAX_NR_DRAM_CH];
a74c28a0 25 unsigned int flags;
f6bbec3d
MY
26
27#define UNIPHIER_BD_DDR3PLUS BIT(2)
28
b8909976 29#define UNIPHIER_BD_BOARD_GET_TYPE(f) ((f) & 0x7)
f6bbec3d
MY
30#define UNIPHIER_BD_BOARD_LD20_REF 0 /* LD20 reference */
31#define UNIPHIER_BD_BOARD_LD20_GLOBAL 1 /* LD20 TV Set */
b8909976
MY
32#define UNIPHIER_BD_BOARD_LD20_C1 2 /* LD20 TV Set C1 */
33#define UNIPHIER_BD_BOARD_LD21_REF 3 /* LD21 reference */
34#define UNIPHIER_BD_BOARD_LD21_GLOBAL 4 /* LD21 TV Set */
323d1f9d
MY
35};
36
6ba60faf 37const struct uniphier_board_data *uniphier_get_board_param(void);
323d1f9d 38
5b660066
MY
39int uniphier_sld3_init(const struct uniphier_board_data *bd);
40int uniphier_ld4_init(const struct uniphier_board_data *bd);
41int uniphier_pro4_init(const struct uniphier_board_data *bd);
42int uniphier_sld8_init(const struct uniphier_board_data *bd);
43int uniphier_pro5_init(const struct uniphier_board_data *bd);
44int uniphier_pxs2_init(const struct uniphier_board_data *bd);
667dbcd0 45int uniphier_ld11_init(const struct uniphier_board_data *bd);
9d0c2ceb 46int uniphier_ld20_init(const struct uniphier_board_data *bd);
323d1f9d
MY
47
48#if defined(CONFIG_MICRO_SUPPORT_CARD)
9e3bb84b
MY
49void uniphier_sbc_init_admulti(void);
50void uniphier_sbc_init_savepin(void);
51void uniphier_ld4_sbc_init(void);
52void uniphier_pxs2_sbc_init(void);
53void uniphier_ld11_sbc_init(void);
323d1f9d 54#else
9e3bb84b 55static inline void uniphier_sbc_init_admulti(void)
323d1f9d 56{
323d1f9d
MY
57}
58
9e3bb84b 59static inline void uniphier_sbc_init_savepin(void)
323d1f9d 60{
323d1f9d
MY
61}
62
9e3bb84b 63static inline void uniphier_ld4_sbc_init(void)
5d0607c5 64{
5d0607c5
MY
65}
66
9e3bb84b
MY
67static inline void uniphier_pxs2_sbc_init(void)
68{
69}
70
71static inline void uniphier_ld11_sbc_init(void)
019df879 72{
019df879 73}
323d1f9d
MY
74#endif
75
e94842fa
MY
76void uniphier_sld3_bcu_init(const struct uniphier_board_data *bd);
77void uniphier_ld4_bcu_init(const struct uniphier_board_data *bd);
323d1f9d 78
8d6c99c6
MY
79int uniphier_memconf_2ch_init(const struct uniphier_board_data *bd);
80int uniphier_memconf_3ch_no_disbit_init(const struct uniphier_board_data *bd);
81int uniphier_memconf_3ch_init(const struct uniphier_board_data *bd);
5b660066 82
6a3e4274
MY
83int uniphier_sld3_dpll_init(const struct uniphier_board_data *bd);
84int uniphier_ld4_dpll_init(const struct uniphier_board_data *bd);
85int uniphier_pro4_dpll_init(const struct uniphier_board_data *bd);
86int uniphier_sld8_dpll_init(const struct uniphier_board_data *bd);
c72f4d4c 87int uniphier_ld11_dpll_init(const struct uniphier_board_data *bd);
682e09ff 88int uniphier_ld20_dpll_init(const struct uniphier_board_data *bd);
5b660066 89
78c627cf
MY
90void uniphier_sld3_early_clk_init(void);
91void uniphier_ld11_early_clk_init(void);
92
93void uniphier_sld3_dram_clk_init(void);
94void uniphier_pro5_dram_clk_init(void);
95void uniphier_pxs2_dram_clk_init(void);
96void uniphier_ld11_dram_clk_init(void);
97void uniphier_ld20_dram_clk_init(void);
5b660066 98
5b660066
MY
99int uniphier_ld4_umc_init(const struct uniphier_board_data *bd);
100int uniphier_pro4_umc_init(const struct uniphier_board_data *bd);
101int uniphier_sld8_umc_init(const struct uniphier_board_data *bd);
102int uniphier_pxs2_umc_init(const struct uniphier_board_data *bd);
9d0c2ceb 103int uniphier_ld20_umc_init(const struct uniphier_board_data *bd);
667dbcd0 104int uniphier_ld11_umc_init(const struct uniphier_board_data *bd);
5b660066 105
6a3e4274
MY
106void uniphier_sld3_pll_init(void);
107void uniphier_ld4_pll_init(void);
108void uniphier_pro4_pll_init(void);
c72f4d4c 109void uniphier_ld11_pll_init(void);
a314a245 110void uniphier_ld20_pll_init(void);
6a3e4274 111
5b660066
MY
112void uniphier_ld4_clk_init(void);
113void uniphier_pro4_clk_init(void);
114void uniphier_pro5_clk_init(void);
115void uniphier_pxs2_clk_init(void);
667dbcd0 116void uniphier_ld11_clk_init(void);
9d0c2ceb
MY
117void uniphier_ld20_clk_init(void);
118
5ac9dfbe 119int uniphier_pin_init(const char *pinconfig_name);
b2916712 120void uniphier_smp_kick_all_cpus(void);
9d0c2ceb 121void cci500_init(int nr_slaves);
323d1f9d
MY
122
123#define pr_err(fmt, args...) printf(fmt, ##args)
124
125#endif /* __MACH_INIT_H */