Merge tag 'efi-2020-07-rc6' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / arch / arm / include / asm / arch-vf610 / ddrmc-vf610.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2015
4  * Toradex, Inc.
5  *
6  * Authors: Stefan Agner
7  *          Sanchayan Maity
8  */
9
10 #ifndef __ASM_ARCH_VF610_DDRMC_H
11 #define __ASM_ARCH_VF610_DDRMC_H
12
13 #include <asm/arch/iomux-vf610.h>
14
15 struct ddr3_jedec_timings {
16         u8 tinit;
17         u32 trst_pwron;
18         u32 cke_inactive;
19         u8 wrlat;
20         u8 caslat_lin;
21         u8 trc;
22         u8 trrd;
23         u8 tccd;
24         u8 tbst_int_interval;
25         u8 tfaw;
26         u8 trp;
27         u8 twtr;
28         u8 tras_min;
29         u8 tmrd;
30         u8 trtp;
31         u32 tras_max;
32         u8 tmod;
33         u8 tckesr;
34         u8 tcke;
35         u8 trcd_int;
36         u8 tras_lockout;
37         u8 tdal;
38         u8 bstlen;
39         u16 tdll;
40         u8 trp_ab;
41         u16 tref;
42         u8 trfc;
43         u16 tref_int;
44         u8 tpdex;
45         u8 txpdll;
46         u8 txsnr;
47         u16 txsr;
48         u8 cksrx;
49         u8 cksre;
50         u8 freq_chg_en;
51         u16 zqcl;
52         u16 zqinit;
53         u8 zqcs;
54         u8 ref_per_zq;
55         u8 zqcs_rotate;
56         u8 aprebit;
57         u8 cmd_age_cnt;
58         u8 age_cnt;
59         u8 q_fullness;
60         u8 odt_rd_mapcs0;
61         u8 odt_wr_mapcs0;
62         u8 wlmrd;
63         u8 wldqsen;
64 };
65
66 struct ddrmc_cr_setting {
67         u32     setting;
68         int     cr_rnum; /* CR register ; -1 for last entry */
69 };
70
71 struct ddrmc_phy_setting {
72         u32     setting;
73         int     phy_rnum; /* PHY register ; -1 for last entry */
74 };
75
76 void ddrmc_setup_iomux(const iomux_v3_cfg_t *pads, int pads_count);
77 void ddrmc_phy_init(void);
78 void ddrmc_ctrl_init_ddr3(struct ddr3_jedec_timings const *timings,
79                           struct ddrmc_cr_setting *board_cr_settings,
80                           struct ddrmc_phy_setting *board_phy_settings,
81                           int col_diff, int row_diff);
82
83 #endif