mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 18:09:03 +09:00
![Albert ARIBAUD \\(3ADEV\\)](/assets/img/avatar_default.png)
The VF610 DDRMC driver code contains settings which are board-specific. Move these out to boards so that new boards can define their own without having to modify the driver. Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
83 lines
1.3 KiB
C
83 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2015
|
|
* Toradex, Inc.
|
|
*
|
|
* Authors: Stefan Agner
|
|
* Sanchayan Maity
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_VF610_DDRMC_H
|
|
#define __ASM_ARCH_VF610_DDRMC_H
|
|
|
|
struct ddr3_jedec_timings {
|
|
u8 tinit;
|
|
u32 trst_pwron;
|
|
u32 cke_inactive;
|
|
u8 wrlat;
|
|
u8 caslat_lin;
|
|
u8 trc;
|
|
u8 trrd;
|
|
u8 tccd;
|
|
u8 tbst_int_interval;
|
|
u8 tfaw;
|
|
u8 trp;
|
|
u8 twtr;
|
|
u8 tras_min;
|
|
u8 tmrd;
|
|
u8 trtp;
|
|
u32 tras_max;
|
|
u8 tmod;
|
|
u8 tckesr;
|
|
u8 tcke;
|
|
u8 trcd_int;
|
|
u8 tras_lockout;
|
|
u8 tdal;
|
|
u8 bstlen;
|
|
u16 tdll;
|
|
u8 trp_ab;
|
|
u16 tref;
|
|
u8 trfc;
|
|
u16 tref_int;
|
|
u8 tpdex;
|
|
u8 txpdll;
|
|
u8 txsnr;
|
|
u16 txsr;
|
|
u8 cksrx;
|
|
u8 cksre;
|
|
u8 freq_chg_en;
|
|
u16 zqcl;
|
|
u16 zqinit;
|
|
u8 zqcs;
|
|
u8 ref_per_zq;
|
|
u8 zqcs_rotate;
|
|
u8 aprebit;
|
|
u8 cmd_age_cnt;
|
|
u8 age_cnt;
|
|
u8 q_fullness;
|
|
u8 odt_rd_mapcs0;
|
|
u8 odt_wr_mapcs0;
|
|
u8 wlmrd;
|
|
u8 wldqsen;
|
|
};
|
|
|
|
struct ddrmc_cr_setting {
|
|
u32 setting;
|
|
int cr_rnum; /* CR register ; -1 for last entry */
|
|
};
|
|
|
|
struct ddrmc_phy_setting {
|
|
u32 setting;
|
|
int phy_rnum; /* PHY register ; -1 for last entry */
|
|
};
|
|
|
|
void ddrmc_setup_iomux(const iomux_v3_cfg_t *pads, int pads_count);
|
|
void ddrmc_phy_init(void);
|
|
void ddrmc_ctrl_init_ddr3(struct ddr3_jedec_timings const *timings,
|
|
struct ddrmc_cr_setting *board_cr_settings,
|
|
struct ddrmc_phy_setting *board_phy_settings,
|
|
int col_diff, int row_diff);
|
|
|
|
#endif
|