xref: /rk3399_rockchip-uboot/include/synopsys/dwcddr21mctl.h (revision 326ea986ac150acdc7656d57fca647db80b50158)
12ba5b1d3SMacpaul Lin /*
22ba5b1d3SMacpaul Lin  * (C) Copyright 2011 Andes Technology Corp
32ba5b1d3SMacpaul Lin  * Macpaul Lin <macpaul@andestech.com>
42ba5b1d3SMacpaul Lin  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
62ba5b1d3SMacpaul Lin  */
72ba5b1d3SMacpaul Lin 
82ba5b1d3SMacpaul Lin /*
92ba5b1d3SMacpaul Lin  * DWCDDR21MCTL - Synopsys DWC DDR2/DDR1 Memory Controller
102ba5b1d3SMacpaul Lin  */
112ba5b1d3SMacpaul Lin #ifndef __DWCDDR21MCTL_H
122ba5b1d3SMacpaul Lin #define __DWCDDR21MCTL_H
132ba5b1d3SMacpaul Lin 
142ba5b1d3SMacpaul Lin #ifndef __ASSEMBLY__
152ba5b1d3SMacpaul Lin struct dwcddr21mctl {
162ba5b1d3SMacpaul Lin 	unsigned int	ccr;		/* Controller Configuration */
172ba5b1d3SMacpaul Lin 	unsigned int	dcr;		/* DRAM Configuration */
182ba5b1d3SMacpaul Lin 	unsigned int	iocr;		/* I/O Configuration */
192ba5b1d3SMacpaul Lin 	unsigned int	csr;		/* Controller Status */
202ba5b1d3SMacpaul Lin 	unsigned int	drr;		/* DRAM refresh */
212ba5b1d3SMacpaul Lin 	unsigned int	tpr0;		/* SDRAM Timing Parameters 0 */
222ba5b1d3SMacpaul Lin 	unsigned int	tpr1;		/* SDRAM Timing Parameters 1 */
232ba5b1d3SMacpaul Lin 	unsigned int	tpr2;		/* SDRAM Timing Parameters 2 */
242ba5b1d3SMacpaul Lin 	unsigned int	gdllcr;		/* Global DLL Control */
252ba5b1d3SMacpaul Lin 	unsigned int	dllcr[10];	/* DLL Control */
262ba5b1d3SMacpaul Lin 	unsigned int	rslr[4];	/* Rank System Lantency */
272ba5b1d3SMacpaul Lin 	unsigned int	rdgr[4];	/* Rank DQS Gating */
282ba5b1d3SMacpaul Lin 	unsigned int	dqtr[9];	/* DQ Timing */
292ba5b1d3SMacpaul Lin 	unsigned int	dqstr;		/* DQS Timing */
302ba5b1d3SMacpaul Lin 	unsigned int	dqsbtr;		/* DQS_b Timing */
312ba5b1d3SMacpaul Lin 	unsigned int	odtcr;		/* ODT Configuration */
322ba5b1d3SMacpaul Lin 	unsigned int	dtr[2];		/* Data Training */
332ba5b1d3SMacpaul Lin 	unsigned int	dtar;		/* Data Training Address */
342ba5b1d3SMacpaul Lin 	unsigned int	rsved[82];	/* Reserved */
352ba5b1d3SMacpaul Lin 	unsigned int	mr;		/* Mode Register */
362ba5b1d3SMacpaul Lin 	unsigned int	emr;		/* Extended Mode Register */
372ba5b1d3SMacpaul Lin 	unsigned int	emr2;		/* Extended Mode Register 2 */
382ba5b1d3SMacpaul Lin 	unsigned int	emr3;		/* Extended Mode Register 3 */
392ba5b1d3SMacpaul Lin 	unsigned int	hpcr[32];	/* Host Port Configurarion */
402ba5b1d3SMacpaul Lin 	unsigned int	pqcr[8];	/* Priority Queue Configuration */
412ba5b1d3SMacpaul Lin 	unsigned int	mmgcr;		/* Memory Manager General Config */
422ba5b1d3SMacpaul Lin };
432ba5b1d3SMacpaul Lin #endif /* __ASSEMBLY__ */
442ba5b1d3SMacpaul Lin 
452ba5b1d3SMacpaul Lin /*
462ba5b1d3SMacpaul Lin  * Control Configuration Register
472ba5b1d3SMacpaul Lin  */
482ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_ECCEN(x)	((x) << 0)
492ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_NOMRWR(x)	((x) << 1)
502ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_HOSTEN(x)	((x) << 2)
512ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_XBISC(x)	((x) << 3)
522ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_NOAPD(x)	((x) << 4)
532ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_RRB(x)		((x) << 13)
542ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_DQSCFG(x)	((x) << 14)
552ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_DFTLM(x)	(((x) & 0x3) << 15)
562ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_DFTCMP(x)	((x) << 17)
572ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_FLUSH(x)	((x) << 27)
582ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_ITMRST(x)	((x) << 28)
592ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_IB(x)		((x) << 29)
602ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_DTT(x)		((x) << 30)
612ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CCR_IT(x)		((x) << 31)
622ba5b1d3SMacpaul Lin 
632ba5b1d3SMacpaul Lin /*
642ba5b1d3SMacpaul Lin  * DRAM Configuration Register
652ba5b1d3SMacpaul Lin  */
662ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_DDRMD(x)	((x) << 0)
672ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_DIO(x)		(((x) & 0x3) << 1)
682ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_DSIZE(x)	(((x) & 0x7) << 3)
692ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_SIO(x)		(((x) & 0x7) << 6)
702ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_PIO(x)		((x) << 9)
712ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_RANKS(x)	(((x) & 0x3) << 10)
722ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_RNKALL(x)	((x) << 12)
732ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_AMAP(x)	(((x) & 0x3) << 13)
742ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_RANK(x)	(((x) & 0x3) << 25)
752ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_CMD(x)		(((x) & 0xf) << 27)
762ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DCR_EXE(x)		((x) << 31)
772ba5b1d3SMacpaul Lin 
782ba5b1d3SMacpaul Lin /*
792ba5b1d3SMacpaul Lin  * I/O Configuration Register
802ba5b1d3SMacpaul Lin  */
812ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_RTT(x)	(((x) & 0xf) << 0)
822ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_DS(x)		(((x) & 0xf) << 4)
832ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_TESTEN(x)	((x) << 0x8)
842ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_RTTOH(x)	(((x) & 0x7) << 26)
852ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_RTTOE(x)	((x) << 29)
862ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_DQRTT(x)	((x) << 30)
872ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_IOCR_DQSRTT(x)	((x) << 31)
882ba5b1d3SMacpaul Lin 
892ba5b1d3SMacpaul Lin /*
902ba5b1d3SMacpaul Lin  * Controller Status Register
912ba5b1d3SMacpaul Lin  */
922ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_DRIFT(x)	(((x) & 0x3ff) << 0)
932ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_DFTERR(x)	((x) << 18)
942ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_ECCERR(x)	((x) << 19)
952ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_DTERR(x)	((x) << 20)
962ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_DTIERR(x)	((x) << 21)
972ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_CSR_ECCSEC(x)	((x) << 22)
982ba5b1d3SMacpaul Lin 
992ba5b1d3SMacpaul Lin /*
1002ba5b1d3SMacpaul Lin  * DRAM Refresh Register
1012ba5b1d3SMacpaul Lin  */
1022ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DRR_TRFC(x)	(((x) & 0xff) << 0)
1032ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DRR_TRFPRD(x)	(((x) & 0xffff) << 8)
1042ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DRR_RFBURST(x)	(((x) & 0xf) << 24)
1052ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DRR_RD(x)		((x) << 31)
1062ba5b1d3SMacpaul Lin 
1072ba5b1d3SMacpaul Lin /*
1082ba5b1d3SMacpaul Lin  * SDRAM Timing Parameters Register 0
1092ba5b1d3SMacpaul Lin  */
1102ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TMRD(x)	(((x) & 0x3) << 0)
1112ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRTP(x)	(((x) & 0x7) << 2)
1122ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TWTR(x)	(((x) & 0x7) << 5)
1132ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRP(x)	(((x) & 0xf) << 8)
1142ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRCD(x)	(((x) & 0xf) << 12)
1152ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRAS(x)	(((x) & 0x1f) << 16)
1162ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRRD(x)	(((x) & 0xf) << 21)
1172ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TRC(x)	(((x) & 0x3f) << 25)
1182ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR0_TCCD(x)	((x) << 31)
1192ba5b1d3SMacpaul Lin 
1202ba5b1d3SMacpaul Lin /*
1212ba5b1d3SMacpaul Lin  * SDRAM Timing Parameters Register 1
1222ba5b1d3SMacpaul Lin  */
1232ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_TAOND(x)	(((x) & 0x3) << 0)
1242ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_TRTW(x)	((x) << 2)
1252ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_TFAW(x)	(((x) & 0x3f) << 3)
1262ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_TRNKRTR(x)	(((x) & 0x3) << 12)
1272ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_TRNKWTW(x)	(((x) & 0x3) << 14)
1282ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_XCL(x)	(((x) & 0xf) << 23)
1292ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_XWR(x)	(((x) & 0xf) << 27)
1302ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR1_XTP(x)	((x) << 31)
1312ba5b1d3SMacpaul Lin 
1322ba5b1d3SMacpaul Lin /*
1332ba5b1d3SMacpaul Lin  * SDRAM Timing Parameters Register 2
1342ba5b1d3SMacpaul Lin  */
1352ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR2_TXS(x)	(((x) & 0x3ff) << 0)
1362ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR2_TXP(x)	(((x) & 0x1f) << 10)
1372ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_TPR2_TCKE(x)	(((x) & 0xf) << 15)
1382ba5b1d3SMacpaul Lin 
1392ba5b1d3SMacpaul Lin /*
1402ba5b1d3SMacpaul Lin  * Global DLL Control Register
1412ba5b1d3SMacpaul Lin  */
1422ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_DRES(x)	(((x) & 0x3) << 0)
1432ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_IPUMP(x)	(((x) & 0x7) << 2)
1442ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_TESTEN(x)	((x) << 5)
1452ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_DTC(x)	(((x) & 0x7) << 6)
1462ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_ATC(x)	(((x) & 0x3) << 9)
1472ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_TESTSW(x)	((x) << 11)
1482ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_MBIAS(x)	(((x) & 0xff) << 12)
1492ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_SBIAS(x)	(((x) & 0xff) << 20)
1502ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_GDLLCR_LOCKDET(x)	((x) << 29)
1512ba5b1d3SMacpaul Lin 
1522ba5b1d3SMacpaul Lin /*
1532ba5b1d3SMacpaul Lin  * DLL Control Register 0-9
1542ba5b1d3SMacpaul Lin  */
1552ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_SFBDLY(x)	(((x) & 0x7) << 0)
1562ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_SFWDLY(x)	(((x) & 0x7) << 3)
1572ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_MFBDLY(x)	(((x) & 0x7) << 6)
1582ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_MFWDLY(x)	(((x) & 0x7) << 9)
1592ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_SSTART(x)	(((x) & 0x3) << 12)
1602ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_PHASE(x)	(((x) & 0xf) << 14)
1612ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_ATESTEN(x)	((x) << 18)
1622ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_DRSVD(x)	((x) << 19)
1632ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DLLCR_DD(x)	((x) << 31)
1642ba5b1d3SMacpaul Lin 
1652ba5b1d3SMacpaul Lin /*
1662ba5b1d3SMacpaul Lin  * Rank System Lantency Register
1672ba5b1d3SMacpaul Lin  */
1682ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL0(x)	(((x) & 0x7) << 0)
1692ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL1(x)	(((x) & 0x7) << 3)
1702ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL2(x)	(((x) & 0x7) << 6)
1712ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL3(x)	(((x) & 0x7) << 9)
1722ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL4(x)	(((x) & 0x7) << 12)
1732ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL5(x)	(((x) & 0x7) << 15)
1742ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL6(x)	(((x) & 0x7) << 18)
1752ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL7(x)	(((x) & 0x7) << 21)
1762ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RSLR_SL8(x)	(((x) & 0x7) << 24)
1772ba5b1d3SMacpaul Lin 
1782ba5b1d3SMacpaul Lin /*
1792ba5b1d3SMacpaul Lin  * Rank DQS Gating Register
1802ba5b1d3SMacpaul Lin  */
1812ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL0(x)	(((x) & 0x3) << 0)
1822ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL1(x)	(((x) & 0x3) << 2)
1832ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL2(x)	(((x) & 0x3) << 4)
1842ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL3(x)	(((x) & 0x3) << 6)
1852ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL4(x)	(((x) & 0x3) << 8)
1862ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL5(x)	(((x) & 0x3) << 10)
1872ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL6(x)	(((x) & 0x3) << 12)
1882ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL7(x)	(((x) & 0x3) << 14)
1892ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_RDGR_DQSSEL8(x)	(((x) & 0x3) << 16)
1902ba5b1d3SMacpaul Lin 
1912ba5b1d3SMacpaul Lin /*
1922ba5b1d3SMacpaul Lin  * DQ Timing Register
1932ba5b1d3SMacpaul Lin  */
1942ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY0(x)	(((x) & 0xf) << 0)
1952ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY1(x)	(((x) & 0xf) << 4)
1962ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY2(x)	(((x) & 0xf) << 8)
1972ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY3(x)	(((x) & 0xf) << 12)
1982ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY4(x)	(((x) & 0xf) << 16)
1992ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY5(x)	(((x) & 0xf) << 20)
2002ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY6(x)	(((x) & 0xf) << 24)
2012ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQTR_DQDLY7(x)	(((x) & 0xf) << 28)
2022ba5b1d3SMacpaul Lin 
2032ba5b1d3SMacpaul Lin /*
2042ba5b1d3SMacpaul Lin  * DQS Timing Register
2052ba5b1d3SMacpaul Lin  */
2062ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY0(x)	(((x) & 0x7) << 0)
2072ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY1(x)	(((x) & 0x7) << 3)
2082ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY2(x)	(((x) & 0x7) << 6)
2092ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY3(x)	(((x) & 0x7) << 9)
2102ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY4(x)	(((x) & 0x7) << 12)
2112ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY5(x)	(((x) & 0x7) << 15)
2122ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY6(x)	(((x) & 0x7) << 18)
2132ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY7(x)	(((x) & 0x7) << 21)
2142ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSTR_DQSDLY8(x)	(((x) & 0x7) << 24)
2152ba5b1d3SMacpaul Lin 
2162ba5b1d3SMacpaul Lin /*
2172ba5b1d3SMacpaul Lin  * DQS_b (DQSBTR) Timing Register
2182ba5b1d3SMacpaul Lin  */
2192ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY0(x)	(((x) & 0x7) << 0)
2202ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY1(x)	(((x) & 0x7) << 3)
2212ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY2(x)	(((x) & 0x7) << 6)
2222ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY3(x)	(((x) & 0x7) << 9)
2232ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY4(x)	(((x) & 0x7) << 12)
2242ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY5(x)	(((x) & 0x7) << 15)
2252ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY6(x)	(((x) & 0x7) << 18)
2262ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY7(x)	(((x) & 0x7) << 21)
2272ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DQSBTR_DQSDLY8(x)	(((x) & 0x7) << 24)
2282ba5b1d3SMacpaul Lin 
2292ba5b1d3SMacpaul Lin /*
2302ba5b1d3SMacpaul Lin  * ODT Configuration Register
2312ba5b1d3SMacpaul Lin  */
2322ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_RDODT0(x)	(((x) & 0xf) << 0)
2332ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_RDODT1(x)	(((x) & 0xf) << 4)
2342ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_RDODT2(x)	(((x) & 0xf) << 8)
2352ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_RDODT3(x)	(((x) & 0xf) << 12)
2362ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_WDODT0(x)	(((x) & 0xf) << 16)
2372ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_WDODT1(x)	(((x) & 0xf) << 20)
2382ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_WDODT2(x)	(((x) & 0xf) << 24)
2392ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_ODTCR_WDODT3(x)	(((x) & 0xf) << 28)
2402ba5b1d3SMacpaul Lin 
2412ba5b1d3SMacpaul Lin /*
2422ba5b1d3SMacpaul Lin  * Data Training Register
2432ba5b1d3SMacpaul Lin  */
2442ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR0_DTBYTE0(x)	(((x) & 0xff) << 0)	/* def: 0x11 */
2452ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR0_DTBYTE1(x)	(((x) & 0xff) << 8)	/* def: 0xee */
2462ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR0_DTBYTE2(x)	(((x) & 0xff) << 16)	/* def: 0x22 */
2472ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR0_DTBYTE3(x)	(((x) & 0xff) << 24)	/* def: 0xdd */
2482ba5b1d3SMacpaul Lin 
2492ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR1_DTBYTE4(x)	(((x) & 0xff) << 0)	/* def: 0x44 */
2502ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR1_DTBYTE5(x)	(((x) & 0xff) << 8)	/* def: 0xbb */
2512ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR1_DTBYTE6(x)	(((x) & 0xff) << 16)	/* def: 0x88 */
2522ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTR1_DTBYTE7(x)	(((x) & 0xff) << 24)	/* def: 0x77 */
2532ba5b1d3SMacpaul Lin 
2542ba5b1d3SMacpaul Lin /*
2552ba5b1d3SMacpaul Lin  * Data Training Address Register
2562ba5b1d3SMacpaul Lin  */
2572ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTAR_DTCOL(x)	(((x) & 0xfff) << 0)
2582ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTAR_DTROW(x)	(((x) & 0xffff) << 12)
2592ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_DTAR_DTBANK(x)	(((x) & 0x7) << 28)
2602ba5b1d3SMacpaul Lin 
2612ba5b1d3SMacpaul Lin /*
2622ba5b1d3SMacpaul Lin  * Mode Register
2632ba5b1d3SMacpaul Lin  */
2642ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_BL(x)		(((x) & 0x7) << 0)
2652ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_BT(x)		((x) << 3)
2662ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_CL(x)		(((x) & 0x7) << 4)
2672ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_TM(x)		((x) << 7)
2682ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_DR(x)		((x) << 8)
2692ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_WR(x)		(((x) & 0x7) << 9)
2702ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MR_PD(x)		((x) << 12)
2712ba5b1d3SMacpaul Lin 
2722ba5b1d3SMacpaul Lin /*
2732ba5b1d3SMacpaul Lin  * Extended Mode register
2742ba5b1d3SMacpaul Lin  */
2752ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_DE(x)		((x) << 0)
2762ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_ODS(x)		((x) << 1)
2772ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT2(x)	((x) << 2)
2782ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_AL(x)		(((x) & 0x7) << 3)
2792ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT6(x)	((x) << 6)
2802ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_OCD(x)		(((x) & 0x7) << 7)
2812ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_DQS(x)		((x) << 10)
2822ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RDQS(x)	((x) << 11)
2832ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_OE(x)		((x) << 12)
2842ba5b1d3SMacpaul Lin 
2852ba5b1d3SMacpaul Lin #define EMR_RTT2(x)			DWCDDR21MCTL_EMR_RTT2(x)
2862ba5b1d3SMacpaul Lin #define EMR_RTT6(x)			DWCDDR21MCTL_EMR_RTT6(x)
2872ba5b1d3SMacpaul Lin 
2882ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT_DISABLED	(EMR_RTT6(0) | EMR_RTT2(0))
2892ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT_75		(EMR_RTT6(0) | EMR_RTT2(1))
2902ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT_150	(EMR_RTT6(1) | EMR_RTT2(0))
2912ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR_RTT_50		(EMR_RTT6(1) | EMR_RTT2(1))
2922ba5b1d3SMacpaul Lin 
2932ba5b1d3SMacpaul Lin /*
2942ba5b1d3SMacpaul Lin  * Extended Mode register 2
2952ba5b1d3SMacpaul Lin  */
2962ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR2_PASR(x)	(((x) & 0x7) << 0)
2972ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR2_DCC(x)	((x) << 3)
2982ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_EMR2_SRF(x)	((x) << 7)
2992ba5b1d3SMacpaul Lin 
3002ba5b1d3SMacpaul Lin /*
3012ba5b1d3SMacpaul Lin  * Extended Mode register 3: [15:0] reserved for JEDEC.
3022ba5b1d3SMacpaul Lin  */
3032ba5b1d3SMacpaul Lin 
3042ba5b1d3SMacpaul Lin /*
3052ba5b1d3SMacpaul Lin  * Host port Configuration register 0-31
3062ba5b1d3SMacpaul Lin  */
3072ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_HPBL(x)	(((x) & 0xf) << 0)
3082ba5b1d3SMacpaul Lin 
3092ba5b1d3SMacpaul Lin /*
3102ba5b1d3SMacpaul Lin  * Priority Queue Configuration register 0-7
3112ba5b1d3SMacpaul Lin  */
3122ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_TOUT(x)	(((x) & 0xf) << 0)
3132ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_TOUTX(x)	(((x) & 0x3) << 8)
3142ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_LPQS(x)	(((x) & 0x3) << 10)
3152ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_PQBL(x)	(((x) & 0xff) << 12)
3162ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_SWAIT(x)	(((x) & 0x1f) << 20)
3172ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_INTRPT(x)	(((x) & 0x7) << 25)
3182ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_HPCR_APQS(x)	((x) << 28)
3192ba5b1d3SMacpaul Lin 
3202ba5b1d3SMacpaul Lin /*
3212ba5b1d3SMacpaul Lin  * Memory Manager General Configuration register
3222ba5b1d3SMacpaul Lin  */
3232ba5b1d3SMacpaul Lin #define DWCDDR21MCTL_MMGCR_UHPP(x)	(((x) & 0x3) << 0)
3242ba5b1d3SMacpaul Lin 
3252ba5b1d3SMacpaul Lin #endif	/* __DWCDDR21MCTL_H */
326