Merge tag 'u-boot-rockchip-20200501' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / arch / mips / mach-mtmips / include / mach / ddr.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2020 MediaTek Inc.
4  *
5  * Author:  Weijie Gao <weijie.gao@mediatek.com>
6  */
7
8 #ifndef _MTMIPS_DDR_H_
9 #define _MTMIPS_DDR_H_
10
11 #include <linux/io.h>
12 #include <linux/types.h>
13
14 enum mc_dram_size {
15         DRAM_8MB,
16         DRAM_16MB,
17         DRAM_32MB,
18         DRAM_64MB,
19         DRAM_128MB,
20         DRAM_256MB,
21
22         __DRAM_SZ_MAX
23 };
24
25 struct mc_ddr_cfg {
26         u32 cfg0;
27         u32 cfg1;
28         u32 cfg2;
29         u32 cfg3;
30         u32 cfg4;
31 };
32
33 typedef void (*mc_reset_t)(int assert);
34
35 struct mc_ddr_init_param {
36         void __iomem *memc;
37
38         u32 dq_dly;
39         u32 dqs_dly;
40
41         const struct mc_ddr_cfg *cfgs;
42         mc_reset_t mc_reset;
43
44         u32 memsize;
45         u32 bus_width;
46 };
47
48 void ddr1_init(struct mc_ddr_init_param *param);
49 void ddr2_init(struct mc_ddr_init_param *param);
50 void ddr_calibrate(void __iomem *memc, u32 memsize, u32 bw);
51
52 #endif /* _MTMIPS_DDR_H_ */