123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * Copyright (C) 2015
- * Toradex, Inc.
- *
- * Authors: Stefan Agner
- * Sanchayan Maity
- */
- #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
|