xref: /rk3399_ARM-atf/include/drivers/nxp/ddr/regs.h (revision 87311b4c16730b884c7e4ff01e3faea83f2731be)
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