1*050a99a6SPankaj Gupta /* 2*050a99a6SPankaj Gupta * Copyright 2021 NXP 3*050a99a6SPankaj Gupta * 4*050a99a6SPankaj Gupta * SPDX-License-Identifier: BSD-3-Clause 5*050a99a6SPankaj Gupta * 6*050a99a6SPankaj Gupta */ 7*050a99a6SPankaj Gupta 8*050a99a6SPankaj Gupta #ifndef DDR_REG_H 9*050a99a6SPankaj Gupta #define DDR_REG_H 10*050a99a6SPankaj Gupta 11*050a99a6SPankaj Gupta #define SDRAM_CS_CONFIG_EN 0x80000000 12*050a99a6SPankaj Gupta 13*050a99a6SPankaj Gupta /* DDR_SDRAM_CFG - DDR SDRAM Control Configuration 14*050a99a6SPankaj Gupta */ 15*050a99a6SPankaj Gupta #define SDRAM_CFG_MEM_EN 0x80000000 16*050a99a6SPankaj Gupta #define SDRAM_CFG_SREN 0x40000000 17*050a99a6SPankaj Gupta #define SDRAM_CFG_ECC_EN 0x20000000 18*050a99a6SPankaj Gupta #define SDRAM_CFG_RD_EN 0x10000000 19*050a99a6SPankaj Gupta #define SDRAM_CFG_SDRAM_TYPE_MASK 0x07000000 20*050a99a6SPankaj Gupta #define SDRAM_CFG_SDRAM_TYPE_SHIFT 24 21*050a99a6SPankaj Gupta #define SDRAM_CFG_DYN_PWR 0x00200000 22*050a99a6SPankaj Gupta #define SDRAM_CFG_DBW_MASK 0x00180000 23*050a99a6SPankaj Gupta #define SDRAM_CFG_DBW_SHIFT 19 24*050a99a6SPankaj Gupta #define SDRAM_CFG_32_BW 0x00080000 25*050a99a6SPankaj Gupta #define SDRAM_CFG_16_BW 0x00100000 26*050a99a6SPankaj Gupta #define SDRAM_CFG_8_BW 0x00180000 27*050a99a6SPankaj Gupta #define SDRAM_CFG_8_BE 0x00040000 28*050a99a6SPankaj Gupta #define SDRAM_CFG_2T_EN 0x00008000 29*050a99a6SPankaj Gupta #define SDRAM_CFG_MEM_HLT 0x00000002 30*050a99a6SPankaj Gupta #define SDRAM_CFG_BI 0x00000001 31*050a99a6SPankaj Gupta 32*050a99a6SPankaj Gupta #define SDRAM_CFG2_FRC_SR 0x80000000 33*050a99a6SPankaj Gupta #define SDRAM_CFG2_FRC_SR_CLEAR ~(SDRAM_CFG2_FRC_SR) 34*050a99a6SPankaj Gupta #define SDRAM_CFG2_D_INIT 0x00000010 35*050a99a6SPankaj Gupta #define SDRAM_CFG2_AP_EN 0x00000020 36*050a99a6SPankaj Gupta #define SDRAM_CFG2_ODT_ONLY_READ 2 37*050a99a6SPankaj Gupta 38*050a99a6SPankaj Gupta #define SDRAM_CFG3_DDRC_RST 0x80000000 39*050a99a6SPankaj Gupta 40*050a99a6SPankaj Gupta #define SDRAM_INTERVAL_REFINT 0xFFFF0000 41*050a99a6SPankaj Gupta #define SDRAM_INTERVAL_REFINT_CLEAR ~(SDRAM_INTERVAL_REFINT) 42*050a99a6SPankaj Gupta #define SDRAM_INTERVAL_BSTOPRE 0x3FFF 43*050a99a6SPankaj Gupta 44*050a99a6SPankaj Gupta /* DDR_MD_CNTL */ 45*050a99a6SPankaj Gupta #define MD_CNTL_MD_EN 0x80000000 46*050a99a6SPankaj Gupta #define MD_CNTL_CS_SEL(x) (((x) & 0x7) << 28) 47*050a99a6SPankaj Gupta #define MD_CNTL_MD_SEL(x) (((x) & 0xf) << 24) 48*050a99a6SPankaj Gupta #define MD_CNTL_CKE(x) (((x) & 0x3) << 20) 49*050a99a6SPankaj Gupta 50*050a99a6SPankaj Gupta /* DDR_CDR1 */ 51*050a99a6SPankaj Gupta #define DDR_CDR1_DHC_EN 0x80000000 52*050a99a6SPankaj Gupta #define DDR_CDR1_ODT_SHIFT 17 53*050a99a6SPankaj Gupta #define DDR_CDR1_ODT_MASK 0x6 54*050a99a6SPankaj Gupta #define DDR_CDR2_ODT_MASK 0x1 55*050a99a6SPankaj Gupta #define DDR_CDR1_ODT(x) ((x & DDR_CDR1_ODT_MASK) << DDR_CDR1_ODT_SHIFT) 56*050a99a6SPankaj Gupta #define DDR_CDR2_ODT(x) (x & DDR_CDR2_ODT_MASK) 57*050a99a6SPankaj Gupta #define DDR_CDR2_VREF_OVRD(x) (0x00008080 | ((((x) - 37) & 0x3F) << 8)) 58*050a99a6SPankaj Gupta #define DDR_CDR2_VREF_TRAIN_EN 0x00000080 59*050a99a6SPankaj Gupta #define DDR_CDR2_VREF_RANGE_2 0x00000040 60*050a99a6SPankaj Gupta #define DDR_CDR_ODT_OFF 0x0 61*050a99a6SPankaj Gupta #define DDR_CDR_ODT_100ohm 0x1 62*050a99a6SPankaj Gupta #define DDR_CDR_ODT_120OHM 0x2 63*050a99a6SPankaj Gupta #define DDR_CDR_ODT_80ohm 0x3 64*050a99a6SPankaj Gupta #define DDR_CDR_ODT_60ohm 0x4 65*050a99a6SPankaj Gupta #define DDR_CDR_ODT_40ohm 0x5 66*050a99a6SPankaj Gupta #define DDR_CDR_ODT_50ohm 0x6 67*050a99a6SPankaj Gupta #define DDR_CDR_ODT_30ohm 0x7 68*050a99a6SPankaj Gupta 69*050a99a6SPankaj Gupta 70*050a99a6SPankaj Gupta /* DDR ERR_DISABLE */ 71*050a99a6SPankaj Gupta #define DDR_ERR_DISABLE_APED (1 << 8) /* Address parity error disable */ 72*050a99a6SPankaj Gupta #define DDR_ERR_DISABLE_SBED (1 << 2) /* Address parity error disable */ 73*050a99a6SPankaj Gupta #define DDR_ERR_DISABLE_MBED (1 << 3) /* Address parity error disable */ 74*050a99a6SPankaj Gupta 75*050a99a6SPankaj Gupta /* Mode Registers */ 76*050a99a6SPankaj Gupta #define DDR_MR5_CA_PARITY_LAT_4_CLK 0x1 /* for DDR4-1600/1866/2133 */ 77*050a99a6SPankaj Gupta #define DDR_MR5_CA_PARITY_LAT_5_CLK 0x2 /* for DDR4-2400 */ 78*050a99a6SPankaj Gupta 79*050a99a6SPankaj Gupta /* DDR DSR2 register */ 80*050a99a6SPankaj Gupta #define DDR_DSR_2_PHY_INIT_CMPLT 0x4 81*050a99a6SPankaj Gupta 82*050a99a6SPankaj Gupta /* SDRAM TIMING_CFG_10 register */ 83*050a99a6SPankaj Gupta #define DDR_TIMING_CFG_10_T_STAB 0x7FFF 84*050a99a6SPankaj Gupta 85*050a99a6SPankaj Gupta /* DEBUG 2 register */ 86*050a99a6SPankaj Gupta #define DDR_DBG_2_MEM_IDLE 0x00000002 87*050a99a6SPankaj Gupta 88*050a99a6SPankaj Gupta /* DEBUG 26 register */ 89*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_6 (0x1 << 6) 90*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_7 (0x1 << 7) 91*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_12 (0x1 << 12) 92*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_13 (0x1 << 13) 93*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_14 (0x1 << 14) 94*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_15 (0x1 << 15) 95*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_16 (0x1 << 16) 96*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_17 (0x1 << 17) 97*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_18 (0x1 << 18) 98*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_19 (0x1 << 19) 99*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_24 (0x1 << 24) 100*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_25 (0x1 << 25) 101*050a99a6SPankaj Gupta 102*050a99a6SPankaj Gupta #define DDR_DEBUG_26_BIT_24_CLEAR ~(DDR_DEBUG_26_BIT_24) 103*050a99a6SPankaj Gupta 104*050a99a6SPankaj Gupta /* DEBUG_29 register */ 105*050a99a6SPankaj Gupta #define DDR_TX_BD_DIS (1 << 10) /* Transmit Bit Deskew Disable */ 106*050a99a6SPankaj Gupta 107*050a99a6SPankaj Gupta #define DDR_INIT_ADDR_EXT_UIA (1 << 31) 108*050a99a6SPankaj Gupta 109*050a99a6SPankaj Gupta #endif /* DDR_REG_H */ 110