hc
2023-02-14 796a7ef0befd21e25c2b9e42f53a6d7a4421941d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
/*
 * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd
 * Author: Chris Zhong <zyw@rock-chips.com>
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 */
 
#ifndef __MACH_ROCKCHIP_RK3288_DDR_H
#define __MACH_ROCKCHIP_RK3288_DDR_H
 
/* DDR pctl register */
#define DDR_PCTL_SCFG            0x0000
#define DDR_PCTL_SCTL            0x0004
#define DDR_PCTL_STAT            0x0008
#define DDR_PCTL_MCMD            0x0040
#define DDR_PCTL_POWCTL            0x0044
#define DDR_PCTL_POWSTAT        0x0048
#define DDR_PCTL_CMDTSTATEN        0x0050
#define DDR_PCTL_MRRCFG0        0x0060
#define DDR_PCTL_MRRSTAT0        0x0064
#define DDR_PCTL_MRRSTAT1        0x0068
#define DDR_PCTL_MCFG1            0x007c
#define DDR_PCTL_MCFG            0x0080
#define DDR_PCTL_PPCFG            0x0084
#define DDR_PCTL_TOGCNT1U        0x00c0
#define DDR_PCTL_TINIT            0x00c4
#define DDR_PCTL_TRSTH            0x00c8
#define DDR_PCTL_TOGCNT100N        0x00cc
#define DDR_PCTL_TREFI            0x00d0
#define DDR_PCTL_TMRD            0x00d4
#define DDR_PCTL_TRFC            0x00d8
#define DDR_PCTL_TRP            0x00dc
#define DDR_PCTL_TRTW            0x00e0
#define DDR_PCTL_TAL            0x00e4
#define DDR_PCTL_TCL            0x00e8
#define DDR_PCTL_TCWL            0x00ec
#define DDR_PCTL_TRAS            0x00f0
#define DDR_PCTL_TRC            0x00f4
#define DDR_PCTL_TRCD            0x00f8
#define DDR_PCTL_TRRD            0x00fc
#define DDR_PCTL_TRTP            0x0100
#define DDR_PCTL_TWR            0x0104
#define DDR_PCTL_TWTR            0x0108
#define DDR_PCTL_TEXSR            0x010c
#define DDR_PCTL_TXP            0x0110
#define DDR_PCTL_TXPDLL            0x0114
#define DDR_PCTL_TZQCS            0x0118
#define DDR_PCTL_TZQCSI            0x011c
#define DDR_PCTL_TDQS            0x0120
#define DDR_PCTL_TCKSRE            0x0124
#define DDR_PCTL_TCKSRX            0x0128
#define DDR_PCTL_TCKE            0x012c
#define DDR_PCTL_TMOD            0x0130
#define DDR_PCTL_TRSTL            0x0134
#define DDR_PCTL_TZQCL            0x0138
#define DDR_PCTL_TMRR            0x013c
#define DDR_PCTL_TCKESR            0x0140
#define DDR_PCTL_TDPD            0x0144
#define DDR_PCTL_DFITCTRLDELAY        0x0240
#define DDR_PCTL_DFIODTCFG        0x0244
#define DDR_PCTL_DFIODTCFG1        0x0248
#define DDR_PCTL_DFIODTRANKMAP        0x024c
#define DDR_PCTL_DFITPHYWRDATA        0x0250
#define DDR_PCTL_DFITPHYWRLAT        0x0254
#define DDR_PCTL_DFITRDDATAEN        0x0260
#define DDR_PCTL_DFITPHYRDLAT           0x0264
#define DDR_PCTL_DFITPHYUPDTYPE0        0x0270
#define DDR_PCTL_DFITPHYUPDTYPE1        0x0274
#define DDR_PCTL_DFITPHYUPDTYPE2        0x0278
#define DDR_PCTL_DFITPHYUPDTYPE3        0x027c
#define DDR_PCTL_DFITCTRLUPDMIN         0x0280
#define DDR_PCTL_DFITCTRLUPDMAX         0x0284
#define DDR_PCTL_DFITCTRLUPDDLY         0x0288
#define DDR_PCTL_DFIUPDCFG        0x0290
#define DDR_PCTL_DFITREFMSKI            0x0294
#define DDR_PCTL_DFITCTRLUPDI           0x0298
#define DDR_PCTL_DFISTCFG0        0x02c4
#define DDR_PCTL_DFISTCFG1        0x02c8
#define DDR_PCTL_DFITDRAMCLKEN          0x02d0
#define DDR_PCTL_DFITDRAMCLKDIS         0x02d4
#define DDR_PCTL_DFISTCFG2        0x02d8
#define DDR_PCTL_DFILPCFG0        0x02f0
 
/* DDR phy register */
#define DDR_PUBL_RIDR        0x0000
#define DDR_PUBL_PIR        0x0004
#define DDR_PUBL_PGCR        0x0008
#define DDR_PUBL_PGSR        0x000c
#define DDR_PUBL_DLLGCR        0x0010
#define DDR_PUBL_ACDLLCR    0x0014
#define DDR_PUBL_PTR0        0x0018
#define DDR_PUBL_PTR1        0x001c
#define DDR_PUBL_PTR2        0x0020
#define DDR_PUBL_ACIOCR        0x0024
#define DDR_PUBL_DXCCR        0x0028
#define DDR_PUBL_DSGCR        0x002c
#define DDR_PUBL_DCR        0x0030
#define DDR_PUBL_DTPR0        0x0034
#define DDR_PUBL_DTPR1        0x0038
#define DDR_PUBL_DTPR2        0x003c
#define DDR_PUBL_MR0        0x0040
#define DDR_PUBL_MR1        0x0044
#define DDR_PUBL_MR2        0x0048
#define DDR_PUBL_MR3        0x004c
#define DDR_PUBL_ODTCR        0x0050
#define DDR_PUBL_DTAR        0x0054
#define DDR_PUBL_ZQ0CR0        0x0180
#define DDR_PUBL_ZQ0CR1        0x0184
#define DDR_PUBL_ZQ1CR0        0x0190
#define DDR_PUBL_DX0GCR        0x01c0
#define DDR_PUBL_DX0GSR0    0x01c4
#define DDR_PUBL_DX0GSR1    0x01c8
#define DDR_PUBL_DX0DLLCR    0x01cc
#define DDR_PUBL_DX0DQTR    0x01d0
#define DDR_PUBL_DX0DQSTR    0x01d4
#define DDR_PUBL_DX1GCR        0x0200
#define DDR_PUBL_DX1GSR0    0x0204
#define DDR_PUBL_DX1GSR1    0x0208
#define DDR_PUBL_DX1DLLCR    0x020c
#define DDR_PUBL_DX1DQTR    0x0210
#define DDR_PUBL_DX1DQSTR    0x0214
#define DDR_PUBL_DX2GCR        0x0240
#define DDR_PUBL_DX2GSR0    0x0244
#define DDR_PUBL_DX2GSR1    0x0248
#define DDR_PUBL_DX2DLLCR    0x024c
#define DDR_PUBL_DX2DQTR    0x0250
#define DDR_PUBL_DX2DQSTR    0x0254
#define DDR_PUBL_DX3GCR        0x0280
#define DDR_PUBL_DX3GSR0    0x0284
#define DDR_PUBL_DX3GSR1    0x0288
#define DDR_PUBL_DX3DLLCR    0x028c
#define DDR_PUBL_DX3DQTR    0x0290
#define DDR_PUBL_DX3DQSTR    0x0294
 
/* DDR msch register */
#define DDR_MSCH_DDRCONF    0x0008
#define DDR_MSCH_DDRTIMING    0x000c
#define DDR_MSCH_DDRMODE    0x0010
#define DDR_MSCH_READLATENCY    0x0014
#define DDR_MSCH_ACTIVATE    0x0038
#define DDR_MSCH_DEVTODEV    0x003c
 
#define DLLSRST            BIT(30)
#define POWER_UP_START        BIT(0)
#define POWER_UP_DONE        BIT(0)
#define DDR0IO_RET_DE_REQ    BIT(21)
#define DDR0I1_RET_DE_REQ    BIT(22)
 
#define PCTL_STAT_MSK            (7)
#define LP_TRIG_VAL(n)            (((n) >> 4) & 7)
 
/* SCTL */
#define INIT_STATE            (0)
#define CFG_STATE            (1)
#define GO_STATE            (2)
#define SLEEP_STATE            (3)
#define WAKEUP_STATE            (4)
 
/* STAT */
#define LP_TRIG_VAL(n)            (((n) >> 4) & 7)
#define PCTL_STAT_MSK            (7)
#define INIT_MEM            (0)
#define CONFIG                (1)
#define CONFIG_REQ            (2)
#define ACCESS                (3)
#define ACCESS_REQ            (4)
#define LOW_POWER            (5)
#define LOW_POWER_ENTRY_REQ        (6)
#define LOW_POWER_EXIT_REQ        (7)
 
/* PGSR */
#define PGSR_IDONE            (1 << 0)
#define PGSR_DLDONE            (1 << 1)
#define PGSR_ZCDONE            (1 << 2)
#define PGSR_DIDONE            (1 << 3)
#define PGSR_DTDONE            (1 << 4)
#define PGSR_DTERR            (1 << 5)
#define PGSR_DTIERR            (1 << 6)
#define PGSR_DFTERR            (1 << 7)
#define PGSR_RVERR            (1 << 8)
#define PGSR_RVEIRR            (1 << 9)
 
/* PIR */
#define PIR_INIT            (1 << 0)
#define PIR_DLLSRST            (1 << 1)
#define PIR_DLLLOCK            (1 << 2)
#define PIR_ZCAL            (1 << 3)
#define PIR_ITMSRST            (1 << 4)
#define PIR_DRAMRST            (1 << 5)
#define PIR_DRAMINIT            (1 << 6)
#define PIR_QSTRN            (1 << 7)
#define PIR_RVTRN            (1 << 8)
#define PIR_ICPC            (1 << 16)
#define PIR_DLLBYP            (1 << 17)
#define PIR_CTLDINIT            (1 << 18)
#define PIR_CLRSR            (1 << 28)
#define PIR_LOCKBYP            (1 << 29)
#define PIR_ZCALBYP            (1 << 30)
#define PIR_INITBYP            (1u << 31)
 
#endif /* __MACH_ROCKCHIP_RK3288_DDR_H */