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