xref: /openbmc/u-boot/arch/arm/include/asm/arch-imx8m/lpddr4_define.h (revision 522e035441ca04d99de2fc13b614ad896691e9c9)
1*389023ceSPeng Fan /* SPDX-License-Identifier: GPL-2.0+ */
2*389023ceSPeng Fan /*
3*389023ceSPeng Fan  * Copyright 2018 NXP
4*389023ceSPeng Fan  */
5*389023ceSPeng Fan 
6*389023ceSPeng Fan #ifndef __LPDDR4_DEFINE_H_
7*389023ceSPeng Fan #define __LPDDR4_DEFINE_H_
8*389023ceSPeng Fan 
9*389023ceSPeng Fan #define LPDDR4_DVFS_DBI
10*389023ceSPeng Fan #define DDR_ONE_RANK
11*389023ceSPeng Fan /* #define LPDDR4_DBI_ON */
12*389023ceSPeng Fan #define DFI_BUG_WR
13*389023ceSPeng Fan #define M845S_4GBx2
14*389023ceSPeng Fan #define PRETRAIN
15*389023ceSPeng Fan 
16*389023ceSPeng Fan /* DRAM MR setting */
17*389023ceSPeng Fan #ifdef LPDDR4_DBI_ON
18*389023ceSPeng Fan #define LPDDR4_MR3			0xf1
19*389023ceSPeng Fan #define LPDDR4_PHY_DMIPinPresent	0x1
20*389023ceSPeng Fan #else
21*389023ceSPeng Fan #define LPDDR4_MR3			0x31
22*389023ceSPeng Fan #define LPDDR4_PHY_DMIPinPresent	0x0
23*389023ceSPeng Fan #endif
24*389023ceSPeng Fan 
25*389023ceSPeng Fan #ifdef DDR_ONE_RANK
26*389023ceSPeng Fan #define LPDDR4_CS			0x1
27*389023ceSPeng Fan #else
28*389023ceSPeng Fan #define LPDDR4_CS			0x3
29*389023ceSPeng Fan #endif
30*389023ceSPeng Fan 
31*389023ceSPeng Fan /* PHY training feature */
32*389023ceSPeng Fan #define LPDDR4_HDT_CTL_2D		0xC8
33*389023ceSPeng Fan #define LPDDR4_HDT_CTL_3200_1D		0xC8
34*389023ceSPeng Fan #define LPDDR4_HDT_CTL_400_1D		0xC8
35*389023ceSPeng Fan #define LPDDR4_HDT_CTL_100_1D		0xC8
36*389023ceSPeng Fan 
37*389023ceSPeng Fan /* 400/100 training seq */
38*389023ceSPeng Fan #define LPDDR4_TRAIN_SEQ_P2		0x121f
39*389023ceSPeng Fan #define LPDDR4_TRAIN_SEQ_P1		0x121f
40*389023ceSPeng Fan #define LPDDR4_TRAIN_SEQ_P0		0x121f
41*389023ceSPeng Fan #define LPDDR4_TRAIN_SEQ_100		0x121f
42*389023ceSPeng Fan #define LPDDR4_TRAIN_SEQ_400		0x121f
43*389023ceSPeng Fan 
44*389023ceSPeng Fan /* 2D share & weight */
45*389023ceSPeng Fan #define LPDDR4_2D_WEIGHT		0x1f7f
46*389023ceSPeng Fan #define LPDDR4_2D_SHARE			1
47*389023ceSPeng Fan #define LPDDR4_CATRAIN_3200_1d		0
48*389023ceSPeng Fan #define LPDDR4_CATRAIN_400		0
49*389023ceSPeng Fan #define LPDDR4_CATRAIN_100		0
50*389023ceSPeng Fan #define LPDDR4_CATRAIN_3200_2d		0
51*389023ceSPeng Fan 
52*389023ceSPeng Fan /* MRS parameter */
53*389023ceSPeng Fan /* for LPDDR4 Rtt */
54*389023ceSPeng Fan #define LPDDR4_RTT40			6
55*389023ceSPeng Fan #define LPDDR4_RTT48			5
56*389023ceSPeng Fan #define LPDDR4_RTT60			4
57*389023ceSPeng Fan #define LPDDR4_RTT80			3
58*389023ceSPeng Fan #define LPDDR4_RTT120			2
59*389023ceSPeng Fan #define LPDDR4_RTT240			1
60*389023ceSPeng Fan #define LPDDR4_RTT_DIS			0
61*389023ceSPeng Fan 
62*389023ceSPeng Fan /* for LPDDR4 Ron */
63*389023ceSPeng Fan #define LPDDR4_RON34			7
64*389023ceSPeng Fan #define LPDDR4_RON40			6
65*389023ceSPeng Fan #define LPDDR4_RON48			5
66*389023ceSPeng Fan #define LPDDR4_RON60			4
67*389023ceSPeng Fan #define LPDDR4_RON80			3
68*389023ceSPeng Fan 
69*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON60		0x1
70*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON40		0x3
71*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON30		0x7
72*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON24		0xf
73*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON20		0x1f
74*389023ceSPeng Fan 
75*389023ceSPeng Fan /* for read channel */
76*389023ceSPeng Fan #define LPDDR4_RON			LPDDR4_RON40
77*389023ceSPeng Fan #define LPDDR4_PHY_RTT			30
78*389023ceSPeng Fan #define LPDDR4_PHY_VREF_VALUE		17
79*389023ceSPeng Fan 
80*389023ceSPeng Fan /* for write channel */
81*389023ceSPeng Fan #define LPDDR4_PHY_RON			30
82*389023ceSPeng Fan #define LPDDR4_PHY_ADDR_RON		LPDDR4_PHY_ADDR_RON40
83*389023ceSPeng Fan #define LPDDR4_RTT_DQ			LPDDR4_RTT40
84*389023ceSPeng Fan #define LPDDR4_RTT_CA			LPDDR4_RTT40
85*389023ceSPeng Fan #define LPDDR4_RTT_CA_BANK0		LPDDR4_RTT40
86*389023ceSPeng Fan #define LPDDR4_RTT_CA_BANK1		LPDDR4_RTT40
87*389023ceSPeng Fan #define LPDDR4_VREF_VALUE_CA		((1 << 6) | (0xd))
88*389023ceSPeng Fan #define LPDDR4_VREF_VALUE_DQ_RANK0	((1 << 6) | (0xd))
89*389023ceSPeng Fan #define LPDDR4_VREF_VALUE_DQ_RANK1	((1 << 6) | (0xd))
90*389023ceSPeng Fan #define LPDDR4_MR22_RANK0		((0 << 5) | (1 << 4) | (0 << 3) | \
91*389023ceSPeng Fan 					(LPDDR4_RTT40))
92*389023ceSPeng Fan #define LPDDR4_MR22_RANK1		((1 << 5) | (1 << 4) | (1 << 3) | \
93*389023ceSPeng Fan 					(LPDDR4_RTT40))
94*389023ceSPeng Fan 
95*389023ceSPeng Fan #define LPDDR4_MR3_PU_CAL		1
96*389023ceSPeng Fan 
97*389023ceSPeng Fan #endif /* __LPDDR4_DEFINE_H__ */
98