summaryrefslogtreecommitdiff
path: root/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-mem.h
blob: 6e6ca1f3d326f835a2ccb629bf365f8e0e09f5e8 (plain)
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
/* -*- linux-c -*-
 *
 * arch/arm/mach-s3c2410/include/mach/regs-s3c2443-mem.h
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * S3C2443 memory register definitions
 *
 * Copyright (c) 2009 Digi International
 *
 * Author: Luis Galdos <luis.galdos@digi.com>
 *
 */

#ifndef __ASM_ARM_REGS_S3C2443_MEM
#define __ASM_ARM_REGS_S3C2443_MEM

#include <plat/map.h>
#include <mach/map.h>

#define S3C2443_MEMREG(x)               (S3C24XX_VA_MEMCTRL + (x))

/*
 * @XXX: Add the SSMC registers to the minimal IO mapping table of [1]
 * [1] arch/arm/plat-s3c24xx/cpu.c
 *
 * Luis Galdos
 */
#if 0
#define S3C2443_SSMCREG(x)          (S3C2443_VA_SSMC + (x))
#else
#define S3C2443_SSMCREG(x)          (x)
#endif

#define S3C2443_BANKCFG             S3C2443_MEMREG(0x0000)
#define S3C2443_BANKCON1            S3C2443_MEMREG(0x0004)
#define S3C2443_BANKCON2            S3C2443_MEMREG(0x0008)
#define S3C2443_BANKCON3            S3C2443_MEMREG(0x000C)
#define S3C2443_REFRESH             S3C2443_MEMREG(0x0010)
#define S3C2443_TIMEOUT             S3C2443_MEMREG(0x0014)

/* Bank Idle Cycle Control Registers 0-5 */
#define S3C2443_SSMC_SMBIDCYR0	    S3C2443_SSMCREG(0x0000)
#define S3C2443_SSMC_SMBIDCYR1	    S3C2443_SSMCREG(0x0020)
#define S3C2443_SSMC_SMBIDCYR2	    S3C2443_SSMCREG(0x0040)
#define S3C2443_SSMC_SMBIDCYR3	    S3C2443_SSMCREG(0x0060)
#define S3C2443_SSMC_SMBIDCYR4	    S3C2443_SSMCREG(0x0080)
#define S3C2443_SSMC_SMBIDCYR5	    S3C2443_SSMCREG(0x00A0)
#define S3C2443_SSMC_SMBIDCYR6	    S3C2443_SSMCREG(0x00C0)
#define S3C2443_SSMC_SMBIDCYR7	    S3C2443_SSMCREG(0x00E0)

/* Bank Read Wait State Contro, Registers 0-5 */
#define S3C2443_SSMC_SMBWSTRDR0	    S3C2443_SSMCREG(0x0004)
#define S3C2443_SSMC_SMBWSTRDR1	    S3C2443_SSMCREG(0x0024)
#define S3C2443_SSMC_SMBWSTRDR2	    S3C2443_SSMCREG(0x0044)
#define S3C2443_SSMC_SMBWSTRDR3	    S3C2443_SSMCREG(0x0064)
#define S3C2443_SSMC_SMBWSTRDR4	    S3C2443_SSMCREG(0x0084)
#define S3C2443_SSMC_SMBWSTRDR5	    S3C2443_SSMCREG(0x00A4)
#define S3C2443_SSMC_SMBWSTRDR6	    S3C2443_SSMCREG(0x00C4)
#define S3C2443_SSMC_SMBWSTRDR7	    S3C2443_SSMCREG(0x00E4)

/* Bank Write Wait State Control, Registers 0-5 */
#define S3C2443_SSMC_SMBWSTWRR0	    S3C2443_SSMCREG(0x0008)
#define S3C2443_SSMC_SMBWSTWRR1	    S3C2443_SSMCREG(0x0028)
#define S3C2443_SSMC_SMBWSTWRR2	    S3C2443_SSMCREG(0x0048)
#define S3C2443_SSMC_SMBWSTWRR3	    S3C2443_SSMCREG(0x0068)
#define S3C2443_SSMC_SMBWSTWRR4	    S3C2443_SSMCREG(0x0088)
#define S3C2443_SSMC_SMBWSTWRR5	    S3C2443_SSMCREG(0x00A8)
#define S3C2443_SSMC_SMBWSTWRR6	    S3C2443_SSMCREG(0x00C8)
#define S3C2443_SSMC_SMBWSTWRR7	    S3C2443_SSMCREG(0x00E8)

/* Bank OutPut enable Assertion Delay Control Registers 0-5 */
#define S3C2443_SSMC_SMBWSTOENR0    S3C2443_SSMCREG(0x000C)
#define S3C2443_SSMC_SMBWSTOENR1    S3C2443_SSMCREG(0x002C)
#define S3C2443_SSMC_SMBWSTOENR2    S3C2443_SSMCREG(0x004C)
#define S3C2443_SSMC_SMBWSTOENR3    S3C2443_SSMCREG(0x006C)
#define S3C2443_SSMC_SMBWSTOENR4    S3C2443_SSMCREG(0x008C)
#define S3C2443_SSMC_SMBWSTOENR5    S3C2443_SSMCREG(0x00AC)
#define S3C2443_SSMC_SMBWSTOENR6    S3C2443_SSMCREG(0x00CC)
#define S3C2443_SSMC_SMBWSTOENR7    S3C2443_SSMCREG(0x00EC)

/* Bank Write enable Assertion Delay Control Registers 0-5 */
#define S3C2443_SSMC_SMBWSTWENR0    S3C2443_SSMCREG(0x0010)
#define S3C2443_SSMC_SMBWSTWENR1    S3C2443_SSMCREG(0x0030)
#define S3C2443_SSMC_SMBWSTWENR2    S3C2443_SSMCREG(0x0050)
#define S3C2443_SSMC_SMBWSTWENR3    S3C2443_SSMCREG(0x0070)
#define S3C2443_SSMC_SMBWSTWENR4    S3C2443_SSMCREG(0x0090)
#define S3C2443_SSMC_SMBWSTWENR5    S3C2443_SSMCREG(0x00B0)
#define S3C2443_SSMC_SMBWSTWENR6    S3C2443_SSMCREG(0x00D0)
#define S3C2443_SSMC_SMBWSTWENR7    S3C2443_SSMCREG(0x00F0)

/* Bank Control Registers 0-5 */
#define S3C2443_SSMC_SMBCR0	    S3C2443_SSMCREG(0x0014)
#define S3C2443_SSMC_SMBCR1	    S3C2443_SSMCREG(0x0034)
#define S3C2443_SSMC_SMBCR2	    S3C2443_SSMCREG(0x0054)
#define S3C2443_SSMC_SMBCR3	    S3C2443_SSMCREG(0x0074)
#define S3C2443_SSMC_SMBCR4	    S3C2443_SSMCREG(0x0094)
#define S3C2443_SSMC_SMBCR5	    S3C2443_SSMCREG(0x00B4)
#define S3C2443_SSMC_SMBCR6	    S3C2443_SSMCREG(0x00D4)
#define S3C2443_SSMC_SMBCR7	    S3C2443_SSMCREG(0x00F4)

/* Bank Control bitfields */
#define S3C2443_SSMC_SMBC_AVWE		1 << 20
#define S3C2443_SSMC_SMBC_BLW_8		1 << 18
#define S3C2443_SSMC_SMBC_BLW_CONT	3 << 18
#define S3C2443_SSMC_SMBC_BMW		1 << 16
#define S3C2443_SSMC_SMBC_DROWE		1 << 15
#define S3C2443_SSMC_SMBC_WR		1 << 14
#define S3C2443_SSMC_SMBC_AVRE		1 << 12
#define S3C2443_SSMC_SMBC_BLR_8		1 << 10
#define S3C2443_SSMC_SMBC_BLR_16	2 << 10
#define S3C2443_SSMC_SMBC_BLR_CONT	3 << 10
#define S3C2443_SSMC_SMBC_SRD		1 << 9
#define S3C2443_SSMC_SMBC_BMR		1 << 8
#define S3C2443_SSMC_SMBC_DRCS		1 << 7
#define S3C2443_SSMC_SMBC_SMBLSPOL	1 << 6
#define S3C2443_SSMC_SMBC_MW_16		1 << 4
#define S3C2443_SSMC_SMBC_WP		1 << 3
#define S3C2443_SSMC_SMBC_WAIT		1 << 2
#define S3C2443_SSMC_SMBC_WPOL		1 << 1
#define S3C2443_SSMC_SMBC_RBLE		1 << 0

/* Bank Status Registers 0-5 */
#define S3C2443_SSMC_SMBSR0	    S3C2443_SSMCREG(0x0018)
#define S3C2443_SSMC_SMBSR1	    S3C2443_SSMCREG(0x0038)
#define S3C2443_SSMC_SMBSR2	    S3C2443_SSMCREG(0x0058)
#define S3C2443_SSMC_SMBSR3	    S3C2443_SSMCREG(0x0078)
#define S3C2443_SSMC_SMBSR4	    S3C2443_SSMCREG(0x0098)
#define S3C2443_SSMC_SMBSR5	    S3C2443_SSMCREG(0x00B8)
#define S3C2443_SSMC_SMBSR6	    S3C2443_SSMCREG(0x00D8)
#define S3C2443_SSMC_SMBSR7	    S3C2443_SSMCREG(0x00F8)

/* Bank Burst Read Wait delay Control Registers 0-5 */
#define S3C2443_SSMC_SMBWSTBRDR0    S3C2443_SSMCREG(0x001C)
#define S3C2443_SSMC_SMBWSTBRDR1    S3C2443_SSMCREG(0x003C)
#define S3C2443_SSMC_SMBWSTBRDR2    S3C2443_SSMCREG(0x005C)
#define S3C2443_SSMC_SMBWSTBRDR3    S3C2443_SSMCREG(0x007C)
#define S3C2443_SSMC_SMBWSTBRDR4    S3C2443_SSMCREG(0x009C)
#define S3C2443_SSMC_SMBWSTBRDR5    S3C2443_SSMCREG(0x00BC)
#define S3C2443_SSMC_SMBWSTBRDR6    S3C2443_SSMCREG(0x00DC)
#define S3C2443_SSMC_SMBWSTBRDR7    S3C2443_SSMCREG(0x00FC)

/* SROMC status register  */
#define S3C2443_SSMC_SSMCSR	    S3C2443_SSMCREG(0x0200)
/* SROMC control register  */
#define S3C2443_SSMC_SSMCCR	    S3C2443_SSMCREG(0x0204)

#endif /*  __ASM_ARM_REGS_S3C2443_MEM */